一、实验目的
掌握利用VHDL语言,进行基本时序元件的设计。
二、实验内容
利用VHDL语言设计含异步复位(RST)及使能端(EN)的4位D触发器,其中输入D及输出Q均为4位(STD_LOGIC_VECTOR),上升沿触发。通过编译、仿真验证功能正确性。
三、实验设计
1.依据D触发器的VHDL描述以及含异步复位和时钟使能的D触发器的VHDL描述相关知识。其描述如下。
2.利用VHDL语言设计含异步复位(RST)及使能端(EN)的4位D触发器,其中输入D及输出Q均为4位(STD_LOGIC_VECTOR),上升沿触发。代码及必要注释如下。
Library Ieee;
Use Ieee.Std_Logic_1164.All;
Entity dff4 isport(clk,rst,en: in Std_Logic;d: in Std_Logic_Vector(3 downto 0);q: out Std_Logic_Vector(3 downto 0));
End Entity dff4;
Architecture bhv of dff4 issignal q_s: Std_Logic_Vector(3 downto 0);beginprocess(clk)beginif rst = '1' then q_s <= "0000";elsif clk'event and clk='1' then if en='1' then q_s <= d;end if;end if;end process;q <= q_s;
End bhv;
四、实验结果及仿真
分别给ret、en、clk和d设置合适的信号进行仿真观察仿真结果,验证功能正确。仿真结果如下。
五、实验思考与总结
在VHDL表述的时序模块中有这样的规律:一般地,凡是独立于时钟的异步控制信号都放在以时钟边沿测试表述clock'EVENT AND clock='1'为条件语句的IF语句以外(或以上),凡是依赖于时钟有效的同步控制信号则放在边沿测试表述以内(或以下)。