实验二-异步清零和同步使能的4位计数器 下载本文

西南科技大学

实 验 报 告

FPGA现代数字系统设计

实验题目:含异步清零和同步使能的4位加法计数器 专业班级:

-可编辑修改-

学生姓名: 学生学号: 实验时间: 指导教师:

实验二 含异步清0和同步使能的4位加法计数器 一、实验目的:

学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL技术。

二、原理说明:

图2.1是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,例2.1是其VHDL描述。由图2-1所示,

4位锁存器;

rst是异步清0信号,高电平有效; clk是锁存信号;

D[3..0]是4位数据输入端。

ENA是使能信号,当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将\加载于锁存器。

-可编辑修改-

图2-1含计数使能、异步复位和计数值并行预置功能4位加法计数器

三、实验内容:

1、在QuartusII上对例2-1进行编辑、编译、综合、适配、仿真。说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。 【例2-1】

module CNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);//端口声明

input CLK,RST,ENA; output CLK_1,RST_1,ENA_1; output[3:0] OUTY; output COUT;

reg[3:0] OUTY;

reg COUT;//寄存器变量OUTY,位宽为1 wire CLK_1; wire RST_1; wire ENA_1; assign CLK_1 = CLK; assign RST_1 = RST; assign ENA_1 = ENA;

always@(posedge CLK or negedge RST) /*当CLK上升沿或者RST上升沿时,触发always模块执行*/ begin

if(!RST)

begin

-可编辑修改-

*/

OUTY<=4'b0000;

COUT<=1'b0;/*当复位信号等于0时,计数OUTY、COUT置0*/ end

else

if(ENA) /*当使能信号为1时,计数器计数工作*/

begin

OUTY<=OUTY+1;

COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3]; /*计数显示end

end endmodule

2保存计数器程序为CNT4B.vhd,进行功能仿真、全编译、时序仿真,如出现错误请按照错误提示进行修改,保证设计的正确性。 3锁定引脚

pin ENA CLK RST location PIN_N25 PIN_G26 PIN_N23 PIN_AC2OUTY[0] 1 PIN_AA1OUTY[1] 4 OUTY[2] PIN_Y13 PIN_AA1OUTY[3] 3 COUT PIN_Y12 DE2上的名称 SW[0] KEY0 KEY1 LEDR[7] LEDR[8] LEDR[9] LEDR[10] LEDG[8] -可编辑修改-

CLK_1 RST_1 PIN_AE22 LEDG[0] PIN_AF22 LEDG[1] PIN_AE2ENA_1 3 4 下载

采用JATG方式进行下载,通过ENA,CLK,RST输入,观察的LEDR[0],LEDR[7],LEDR[8],LEDR[9],LEDR[10],LEDG[0],LEDG[1],LEDG[8]亮灭验证计数器的逻辑功能。

5 使用SIGNALTAP II对CNT4B计数器中的COUT, OUTY进行实时测试。

四、实验结果与分析 功能仿真:

LEDR[0]

时序编译:

-可编辑修改-