谁能帮我提供一个链接,通过在 VHDL 中使用有限状态机来提供内存单元和控制单元的设计?
我需要设计电路的架构。
非常感谢!
有很多在线资源可以帮助您。例如这里:
architecture style_87 of memory is
begin
memory:
process (cs)
-----------------------
variable ram : ram_type;
-----------------------
variable address : natural;
begin
if rising_edge(cs) then
address := sulv_to_natural(add_in);
if (mwrite = '1') then
ram(address) := data_in;
end if;
data_out <= ram(address);
end if;
end process;
end style_87;
或在这里:
process(currentstate, a)
begin
b <= '1';
c <= '1';
case currentstate is
when s1 =>
if (a = '1') then
c <= '0';
end if;
nextstate <= s2;
when s2 =>
-- b doesnt change state from s1 to here, do I need to define what it is here?
if (a /= '1') then
c <= '0';
end if;
nextstate <= s3;
when s3 =>
if (a = '1') then
b <= '0';
c <= '0';
end if;
nextstate <= s1;
end case;
end process;
我相信你可以自己谷歌很多其他的例子。
第 10 章有限状态机:原理与实践 (PDF, 274KB) 出书,作者 Pong P.Chu,使用 VHDL 进行 RTL 硬件设计,编码效率、可移植性和可扩展性。
请参见图 10.3 内存控制器 FSM 的状态图。请注意,本章没有直接演示模型,它会教您设计模型所需的所有知识,而无需详述实现特定的设备时序或内存控制器。
在一些课程幻灯片、使用 VHDL 有限状态机 ECE 443 的硬件设计以及其他章节内容和一些实现内存控制器的 VHDL 源代码中可以找到相同的状态图。