有人能帮我提供一个链接,通过使用VHDL中的有限状态机来设计内存单元和控制单元吗?

有人能帮我提供一个链接,通过使用VHDL中的有限状态机来设计内存单元和控制单元吗?,vhdl,Vhdl,有谁能帮我提供一个链接,通过使用VHDL中的有限状态机提供内存单元和控制单元的设计 我需要设计一个电路的架构 非常感谢 有很多在线资源可以帮助你。例如: 内存的架构风格是 开始 内存: 过程(cs) ----------------------- 可变ram:ram_型; ----------------------- 可变地址:自然地址; 开始 如果上升沿(cs),则 地址:=sulv_to_natural(添加到中); 如果(mwrite='1'),则 ram(地址):=数据输入; 如果结束

有谁能帮我提供一个链接,通过使用VHDL中的有限状态机提供内存单元和控制单元的设计

我需要设计一个电路的架构


非常感谢

有很多在线资源可以帮助你。例如:

内存的架构风格是
开始
内存:
过程(cs)
-----------------------
可变ram:ram_型;
-----------------------
可变地址:自然地址;
开始
如果上升沿(cs),则
地址:=sulv_to_natural(添加到中);
如果(mwrite='1'),则
ram(地址):=数据输入;
如果结束;
Pong p.Chu的书中的数据(PDF,274KB),使用VHDL的RTL硬件设计,效率、可移植性和可扩展性编码

请参阅图10.3内存控制器FSM的状态图。请注意,本章并没有直接演示模型,它教给您设计模型所需的一切知识,而不涉及特定于实现的设备计时或特定于内存控制器

在一些课程幻灯片中可以找到相同的状态图,以及其他章节内容和一些实现内存控制器的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;