含异步清零和同步加载的十进制加法计数器的设计.doc
文本预览下载声明
实验二 设计含异步清零和同步使能的加法计数器
实验目的
学习计数器的设计、仿真和硬件测试,进一步熟悉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软件工作平台,新建工程设计文件名为CNT10.vhd。在新建的VHDL模型窗口下编写源程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY 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 CLKEVENT AND CLK=1 THEN
IF EN=1 THEN
IF (LOAD=0) THEN Q:=DATA;ELSE
IF Q9 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;
创建工程及全程编译。完成源代码输入后即可创建工程然后进入全程编译,检查设计是否正确。选择Tools-Netlist Viewers-RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:
仿真。建立波形编辑文件进行功能仿真,仿真结果如下图所示,在脉冲上升沿出现时,只要满足RST=1,EN=1,计数器就开始计数。
硬件测试。完成仿真实验后,若仿真结果无误,则进行锁脚,然后下载到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版 第四版 潘松 黄继业编著
显示全部