数字逻辑课程设计_第1页
数字逻辑课程设计_第2页
数字逻辑课程设计_第3页
数字逻辑课程设计_第4页
数字逻辑课程设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字逻辑课程设计 -24s倒计时设计学院:数学科学学院姓名:墨漓选课号:91、 设计目的利用组合逻辑电路和时序电路,通过Verilog语言编码设计篮球24s倒计时器。初始时间为24.0s,每隔0.1s减1计数,当计时达到00.0s时,计时器停止,点亮LED灯表示超时。并且在实现倒计时的功能的基础上,加上复位和暂停键。2、 课程设计说明1.时钟源为50MHz,计时器精确到0.1s2.数码管只使用后3位。3、 设计任务及要求1. 设计一个24s的倒计时计数器,使其每0.1s减一计数,并当计时达到00.0s时,计时器停止,点亮LED灯表示超时。2. 功能拓展a.增加复位(Reset)功能 当Rese

2、t按键按下或Reset=1时,计时器初始化为24.0s, 可开始新的一轮倒计时b.增加暂停/继续(Pause)功能当Pause=0时,计时器停止计时;Pause=1时,计时器恢复计时3.对设计出来的程序用七段译码器显示到开发板上4、 设计思路1. 先设计一个对BCD数的倒计时计数器,使其每隔0.1s就减1计数。初始值为24s,若最终倒计时到0s,就使一盏灯闪烁,证明倒计时终止了;当按下暂停键,倒计时中止,松开暂停键,则继续倒计时;再设计一个复位键,当reset=1时,计数器复位到24s。2. 设计一个暂停键的模块,实现暂停的功能。3. 设计把bcd数转化为七段译码器的模块,使得每次计时器变化的

3、值能够反映到开发板的数码管上。因为只用到3个数位,因此利用七段译码器把数码管的一直置为0.即一直不显示。4. 设计一个能够产生周期为0.1s的时钟。3.将四个七段译码器得到的编码加到一个4选1 的多路复用器上,并用一个2位的选择端来选择输出哪一路编码。因为输入的数据都在一根总线上,所以想不断改变选择信号,使4个LED灯交错显示。考虑利用一个2-4译码器,令信号的变化速度达到一个值,则人眼看到的就是4个LED灯一直显示所做的运算。从而达到24s倒计时的功能。5、 功能实现的具体代码5.1倒计时计数器模块timescale 1ns / 1psmodule count_backwards(clk,p

4、ause,reset,light,Q);input clk;input pause,reset;output reg light=0;output reg11:0 Q=12b001001000000;always (posedge clk)beginif(pause) Q=Q;else if(reset=1)beginQ=12b001001000000;light=0;endelsebeginif(Q=0)light=1;else if(Q3:0=0)beginQ3:0=9;if(Q7:4=0)beginQ7:4=9;Q11:8=Q11:8-1;endelseQ7:4=Q7:4-1;endel

5、seQ3:0=Q3:0-1;endendendmodule5.2暂停模块程序timescale 1ns / 1psmodule pause_mode(rco,reset,pausein,pauseout);input rco,reset,pausein;output wire pauseout;reg pause;assign pauseout=pause|pausein;always (posedge rco or posedge reset)if(rco) pause=1;else if(reset) pause=0;else pause=pause;endmodule5.3有小数点的第二

6、位的七段码译码器程序timescale 1ns / 1psmodule bcd_7seg_dp(en,bcd_in,seg_7);input en;input 3:0 bcd_in;output 7:0 seg_7;reg 7:0 seg_7;always (en, bcd_in)beginif (en)case (bcd_in)4h0:seg_7=8b00000010;4h1:seg_7=8b10011110;4h2:seg_7=8b00100100;4h3:seg_7=8b00001100;4h4:seg_7=8b10011000;4h5:seg_7=8b01001000;4h6:seg_

7、7=8b01000000;4h7:seg_7=8b00011110;4h8:seg_7=8b00000000;4h9:seg_7=8b00001000;default:seg_7=8b11111111;endcaseelse seg_7=8b11111111;endendmodule5.4一般的七段译码器程序timescale 1ns / 1psmodule bcd_7seg(en,bcd_in,seg_7);input en;input 3:0 bcd_in;output 7:0 seg_7;reg 7:0 seg_7;always (en, bcd_in)beginif (en)case

8、(bcd_in)4h0:seg_7=8b00000011;4h1:seg_7=8b10011111;4h2:seg_7=8b00100101;4h3:seg_7=8b00001101;4h4:seg_7=8b10011001;4h5:seg_7=8b01001001;4h6:seg_7=8b01000001;4h7:seg_7=8b00011111;4h8:seg_7=8b00000001;4h9:seg_7=8b00001001;default:seg_7=8b11111111;endcaseelse seg_7=8b11111111;endendmodule5.5产生一个周期为0.1s的时

9、钟信号timescale 1ns / 1psmodule f_divider(clk,f250,f125,f10);input clk;output f250,f125;output reg f10=0;wire f250;reg f125=1;reg 17:0 count=0;reg 21:0 count2=0;reg fout=0;assign f250=fout;always (posedge clk)begincount=count+1;count2=count2+1;if (count=199999)begincount=0;fout=fout;endif(count2=2599999)begincount2=0;f10=f10;endendalways (negedge fout)f125=f125;endmodule6、 电路图7、 仿真结果7.1计数7.2结束7.3暂停7.4重置7.5暂停和重置8、 总结体会在上一次的课程设计中,对BCD加法器的设计编写Verilog语言异常辛苦,而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论