含异步清零和同步加载的十进制加法计数器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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版第四版潘松黄继业编著

相关文档
最新文档