一、实验目的
掌握利用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 is port(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 is signal q_s: Std_Logic_Vector(3 downto 0); begin process(clk) begin if 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语句以外(或以上),凡是依赖于时钟有效的同步控制信号则放在边沿测试表述以内(或以下)。