- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4位二进制加的减法计数器
贵州大学实验报告
学院: 计算机科学与信息学院 专业:信息安全 班级:
姓名 学号 实验组 实验时间 2013-11-22 指导教师 栾凤 实验项目名称 4位二进制加减法计数器 实验目的 了解二进制加减法计数器的设计,进一步了解熟悉和掌握Quartus II的使用方法
学习Verilog HDL的编程方法
学习使用Vector Wave功能仿真
软件:Altera Quartus 11 9.0集成开发环境 实验原理 计数器是数字系统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。
计数器的种类很多.按脉冲方式可以分为同步计数器和异步计数器;按进制可以分为二进制计数器和非二进制计数器;按计数过程数字的增减,可分为加计数器、减计数器和可逆.
本实验就是设计一个4位二进制加减法计数器,数器时加计数还是减计数,另外,该计数器可以通过一个控制信号决定计该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预置数据;还有一个C的输出,用于计数器的级联。
1.新建工程,取名为counter4.
2.新建设计文件,选择“File I NewFile,单击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,DINinput load; //定义load接口为输入接口
input clk; //定义clk接口为接口
wire load; input clr; //定义接口clr为输入接口input up_down; //定义接口up_down为输入接口wire up_down; //定义up_down为线网类型input [3:0]DIN; //定义接口DIN为
wire [3:0] DIN; //定义DIN为线网类型
output c; //定义接口c为输出接口
reg c; //定义c为寄存器类型
output [3:0]DOUT; DOUT为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) //当clkclr,posedge上沿到来时执行一次一下过程 begin
if(clr) //如果clr输入为
data_r=0; //将0值赋给data_r
else if(load) //如果clr的输入为
data_r=DIN; //将DIN的值赋给data_r
else begin if (up_down)//如果clr的输入为0,up_down的输入为
begin
if(data_r==4b1111)begin //如果data_r的值为1111则执行一下过程
data_r=4b0000; //将
c=1;
end
文档评论(0)