文档详情

加法计数器eda.doc

发布:2018-10-10约2.07千字共5页下载文档
文本预览下载声明
PAGE 1 日期 2011年11月24日 实验名称 设计含异步清零和同步时钟使能的加法计数器 实验目的 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 实验步骤 【1】实验程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT12 IS PORT(CLK,RST,EN:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT12; ARCHITECTURE behav OF CNT12 IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=1THEN CQI:=(OTHERS=0); ELSIF CLKEVENT AND CLK=1THEN IF EN=1THEN IF CQI11 THEN CQI:=CQI+1; ELSE CQI:=(OTHERS=0); END IF; END IF; END IF; IF CQI=11 THEN COUT=1; ELSE COUT=0; END IF; CQ=CQI; END PROCESS; END behav; 【2】实验结构图 【3】在quartus II上对上述程序进行编辑、编译、综合、适配、仿真。 仿真测试得仿真波形如下: ?功能仿真波形 ?时序仿真波形 【4】引脚锁定以及硬件下载测试 ?管脚图 ?下载后选到电路模式5,按下键1,可以看到电路自动计数。 【5】使用SignalTap II对此计数器进行实时测试 ?按实验流程调试得采样波形: ?在CQI上单击右键,在下拉菜单中选择总线显示模式Bus Display Format为Unsigned Line Chart,获得模拟信号波形为: 【6】为此项设计加入一个可用于SignalTap II采样的独立的时钟输入端,并进行实时测试。 ?实验程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT12 IS PORT(CLK,RST,EN,clk_samp:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT12; ARCHITECTURE behav OF CNT12 IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=1THEN CQI:=(OTHERS=0); ELSIF CLKEVENT AND CLK=1THEN IF EN=1THEN IF CQI11 THEN CQI:=CQI+1; ELSE CQI:=(OTHERS=0); END IF; END IF; END IF; IF CQI=11 THEN COUT=1; ELSE COUT=0; END IF; CQ=CQI; END PROCESS; END behav; ?时钟端clk_samp接clock5. ?管脚图 ④模拟信号采样波形 【7】思考题:在程序中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,即 : CQ = CQ+ 1?为什么? 答:不可以,因为信号 CQ定义的端口模式是OUT,是单向输出模式,所以只能作为输出信号,不能在结构体内再用来作为输入信号;如果CQ定义的端口模式是BUFFER,就可以将计数器输出的计数信号回读来作为下一个计数值的初值。在本实验中,该信号是一个反馈信号。 实验心得 耐心调试程序,更好的熟悉quartusII的使用流程,加深了对quartusII的仿真的认识。学会了使用Signal
显示全部
相似文档