1、 日期 2011 年 11 月 24 日1实验名称 设计含异步清零和同步时钟使能的加法计数器 实验目的学习计数器的设计、仿真和硬件测试,进一步熟悉 VHDL 设计技术。 实验步骤【1】实验程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT12 ISPORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT12;ARCHITECTURE behav O
2、F CNT12 ISBEGINPROCESS(CLK,RST,EN)VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST=1THEN CQI:=(OTHERS=0);ELSIF CLKEVENT AND CLK=1THENIF EN=1THEN IF CQI0);END IF;END IF;END IF;IF CQI=11 THEN COUT0);ELSIF CLKEVENT AND CLK=1THENIF EN=1THEN IF CQI0);END IF;END IF;END IF;IF CQI=11 THEN COUT=1;ELSE
3、COUT=0;END IF;CQ=CQI;END PROCESS;END behav;时钟端 clk_samp 接 clock5.管脚图模拟信号采样波形【7】思考题:在程序中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,日期 2011 年 11 月 24 日5即 : CQ = CQ+ 1?为什么?答:不可以,因为信号 CQ 定义的端口模式是 OUT,是单向输出模式,所以只能作为输出信号,不能在结构体内再用来作为输入信号;如果 CQ 定义的端口模式是 BUFFER,就可以将计数器输出的计数信号回读来作为下一个计数值的初值。在本实验中,该信号是一个反馈信号。 实验心得耐心调试程序,更好的熟悉 quartusII 的使用流程,加深了对 quartusII 的仿真的认识。学会了使用 SignalTap II,进一步熟悉了 VHDL 设计技术。