含异步清零和同步加载的十进制加法计数器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二设计含异步清零和同步使能的加法计数器
1.实验目的
学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
2.实验内容或原理
在Quartus II 上对源程序进行编辑、编译、综合、适配、仿真。说明源程序各语句的作用,详细描述其功能特点,给出其所有信号的时序仿真波形。RST为异步清零信号,高电平有效;CLK是锁存信号;EN为计数使能信号,LOAD为加载控制信号,DATA为预置数。当时钟信号CLK、加载控制信号LOAD、复位信号RST或时钟使能信号EN中任一信号发生变化,都将启动进程语句PROCESS。此时如果RST为‘0’,将对计数器清零,即复位,这项操作是独立于CLK的,因而称异步。
3.实验仪器
(1)GW48系列SOPC/EDA实验开发系统
(2)配套计算机及Quartus II 软件
4.实验步骤
(1)完成含异步清零和同步使能的加法计数器的VHDL描述,并对其进行波形仿真,确定结果正确。
(2)建议选择实验电路模式5对该设计进行硬件验证。
5. VHDL仿真实验
(1)为此工程新建一个文件夹。启动QuartusII软件工作平台,新建工程设计文件名为。在新建的VHDL模型窗口下编写源程序代码如下:
LIBRARY IEEE;
USE CNT10 IS
PORT (CLK,EN,RST,LOAD: IN STD_LOGIC;
DATA: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT: OUT STD_LOGIC );
END;
ARCHITECTURE behav OF CNT10 IS
BEGIN
PROCESS(CLK,RST,EN,LOAD)
VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RST='0' THEN Q:=(OTHERS=>'0');
ELSIF CLK'EVENT AND CLK='1' THEN
IF EN='1' THEN
IF (LOAD='0') THEN Q:=DATA;ELSE
IF Q<9 THEN Q:=Q+1;
ELSE Q:=(others=>'0');
END IF;
END IF;
END IF;
END IF;
IF Q="1001" THEN COUT<='1';
ELSE COUT<='0';
END IF;
DOUT<=Q;
END PROCESS;
END behav;
(2)创建工程及全程编译。完成源代码输入后即可创建工程然后进入全程编译,检查设计是否正确。选择Tools->Netlist Viewers->RTL Viewers命令,即HDL 的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:
(3)仿真。建立波形编辑文件进行功能仿真,仿真结果如下图所示,在脉冲上升沿出现时,只要满足RST=1,EN=1,计数器就开始计数。
(4)硬件测试。完成仿真实验后,若仿真结果无误,则进行锁脚,然后下载到FPGA实验箱上进行硬件测试。
选择试验箱的模式为模式5,时钟CLK选择为CLOCK0(PIN_28脚),使能信号EN (PIN_234),复位信号RST(PIN_233),加载控制信号LOAD(PIN_235),预置数DATA (PIN_236,237,238,239),进位信号COUT(PIN_1),4位输出数据总线DOUT[3..0]可由数码1来显示,通过分别接PIO19、PIO18、PIO17、PIO16(它们对应的引脚编号分别为16、15、14、13)
6. 实验报告要求
将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。
参考资料:参考书:EDA技术实用教程——VHDL版第四版潘松黄继业编著