二十四进制计数器实验报告.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二十四进制计数器实验报告实验成员李仲哲周梓成硬件:DE2-70驱动板实验要求:使用Verilog硬件描述语言设计一个基本时序逻辑电路1位24进制计数器,并可控制加减。并利用驱动板自带晶振。实验步骤:首先创建新工程,编写Verilog HDL语言设计代码。代码如下:module qwe(iclk,rst_n,flag,q,overflow); input iclk,flag; --------------------------------输入端口声明。 input rst_n;--------------------------------------输出端口声明。 output reg [4:0] q; ---------------------------- 分配输出信号灯q0,q1,q2,q3,q4。integer i; output overflow; wire clk_1Hz;Divider50MHz (1'b1,iclk,i1hz); -----------------引用分频器代码Divider50MHz.v中的变量i1hz。always @(posedge i1hz or negedge rst_n) begin if(~rst_n) q <= 5'h0; else begin if(flag) i = 1; ----------------------------------当变量为1时计数器加。else i = -1; --------------------------------- 反之计数器减。 if(5'h17 == q) q <= 5'h0; else q <= q + i; endendassign overflow = 5'h17 == q;其中flag为控制加减开关变量,我们为其分配开关SW0引脚为PIN_AA23。由于不可使用外部时钟,而驱动板上的晶振输出信号为50MHz不可用,因此我们需要将其削减转化1Hz的秒脉冲。设计代码如下:module Divider50MHz(input CR,CLK_50M,------------------------输入端口声明。output reg CLK_1HzOut -----------------输出端口及变量的数据声明。);parameter CLK_Freq----------50MHz时钟输入。parameter OUT_Freq=1;--------------------输出1hz时钟信号。reg[24:0]Count_DIV;always@(posedge CLK_50M or negedge CR)beginif(!CR) beginCLK_1HzOut<=0;Count_DIV<=0;endelse beginif(Count_DIV<(CLK_Freq/2*OUT_Freq))Count_DIV<=Count_DIV+1 'b1;else beginCount_DIV <=0;----------------------------分频器输出清零CLK_1HzOut <= ~CLK_1HzOut;---------输出信号取反endendend Endmodule本次实验我们使用了5盏绿灯来反应输出信号q0到q4。引脚分配如下:模拟信号:完成上述试验后编译运行程序无误后,我们将程序下载到驱动板,同时将开关sw0拨上使其输出信号为1,让计数器处于加计数状态。便可见到计数器正常运转右下角绿灯开始闪烁,将sw0拨下计数器开始做减计数。

文档评论(0)

moon8888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档