4位二进制加减法计数器4位二进制加减法计数器
贵州大学实验报告
学院: 计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 2013-11-22 指导教师 栾凤 成绩 实验项目
4位二进制加减法计数器
名称
实
1、 了解二进制加减法计数器的设计,进一步了解熟悉和掌握Quartus II的使用方法 验
2、 学习Verilog HDL的编程方法
目
3、 学习使用Vector Wave功能仿真
的
实
验硬件:FPGA2C35一?开发板、USB ByteBlaster下载线
仪软件:Altera Quartu...
4位二进制加减法计数器
贵州大学实验
学院: 计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 2013-11-22 指导教师 栾凤 成绩 实验项目
4位二进制加减法计数器
名称
实
1、 了解二进制加减法计数器的设计,进一步了解熟悉和掌握Quartus II的使用方法 验
2、 学习Verilog HDL的编程方法
目
3、 学习使用Vector Wave功能仿真
的
实
验硬件:FPGA2C35一?开发板、USB ByteBlaster下载线
仪软件:Altera Quartus 11 9.0集成开发环境
器
计数器是数字系统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定
时等功能。
计数器的种类很多.按脉冲方式可以分为同步计数器和异步计数器;按进制可以分为二进制计数器和非二
进制计数器;按计数过程数字的增减,可分为加计数器、减计数器和可逆.
本实验就是设计一个4位二进制加减法计数器,数器时加计数还是减计数,另外,该计数器可以通过一个实
控制信号决定计该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预验
置数据;还有一个C的输出,用于计数器的级联。
原
1.新建工程,取名为counter4.
理
2.新建设计文件,选择“File I New"File,单击OK,完成新建设计文件。在New对话框中选择Device Design
Files下的Verilog
3.为设计源码生成图形设计文件。在Quartusl冲点击「ile菜单,在Create/Update为这个设计源码生成
一个带外围接口的图形。中点击Create Symbol file for Current file。
4.在Quartus"新建图形设计文件.点击File菜单下的New
5.打开Project会出现一个counter4,修改名称与源码中端口名一致.
选择Block Diagram/Schematic File.在右侧栏同时会显示它的顶层图形。添加输入输出引脚, 6.管脚分配。 (为观察方便将CLk信号用实验板上一个按码开关替代),管脚分配结束,qsf文件保存关闭。 未使用的管脚设置三态.
编译Quartusil工程.结束后。下载生成的配置文件,观察结果。
module counter4(load,clr,c,DOUT,clk,up_down,DIN); //定义一个名为counter4的模块接口为
load,clr,c,DOUT,clk,up_down,DIN input load; //定义load接口为输入接口
input clk; //定义clk接口为输入接口
wire load; //定义load为线网类型
input clr; //定义接口clr为输入接口
input up_down; //定义接口up_down为输入接口
wire up_down; //定义up_down为线网类型
input [3:0]DIN; //定义接口DIN为4为输入接口
wire [3:0] DIN; //定义DIN为线网类型
output c; //定义接口c为输出接口
reg c; //定义c为寄存器类型
output [3:0]DOUT; //定义接口DOUT为4为输出接口
wire [3:0]DOUT; //定义DOUT为线网类型
reg [3:0]data_r; //定义data_r为寄存器类型
assign DOUT=data_r; 将DOUT接口和data_r接口相连
实always@(posedge clk or posedge clr or posedge load) //当clk,clr,posedge上沿到来时执行一次一下过程
begin 验
if(clr) //如果clr输入为1执行一下步骤
内 data_r<=0; //将0值赋给data_r
else if(load) //如果clr的输入为0,load输入为1 容
data_r<=DIN; //将DIN的值赋给data_r
else begin if (up_down)//如果clr的输入为0,load输入为0,up_down的输入为1则执行以下过程
begin
if(data_r==4'b1111)begin //如果data_r的值为1111则执行一下过程
data_r<=4'b0000; //将0000赋给data_r
c=1;
end
else begin //如果data_r的值不为1111则执行一下步骤
data_r<=data_r+1; //将data_r的值增大1
c=0;
end
end
else
begin//如果clr的输入为0,load输入为0,up_down的输入为0则执行以下过程
if(data_r==4'b0000)begin //如果data_r的值等于0000则执行以下步骤
data_r<=4'b1111; //将1111赋给data_r
c=1;
end
else begin //如果data_r的值不等于0000则执行以下步骤
data_r<=data_r-1; //将data_r-1的值赋给data_r
c=0;
end
end
end
end
endmodule //模块定义结束
实
验
数
据
从实验结果图可以看出当up_down=1时执行加法计数器,每当clk输入一个上升信号时计数器的值DOUT
增加1。当up_down=0时执行减法计数器,每当clk输入一个上升信号时计数器的值DOUT减少1。当load=1
是计数器载入预留值即DOUT=DIN。当clr输入为1是计数器执行清零操作。
实
验
实验过程顺利结果令人满意
总
结
指 导 教 师 意 见 签名: 年 月 日
注:各学院可根据教学需要对以上栏木进行增减。
格
可根据内容扩充。
本文档为【4位二进制加减法计数器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。