数字逻辑课程设计_第1页
数字逻辑课程设计_第2页
数字逻辑课程设计_第3页
数字逻辑课程设计_第4页
数字逻辑课程设计_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

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

文档简介

数字逻辑课程设计 24s 倒计时设计 学院 数学科学学院 姓名 墨漓 选课号 9 1 设计目的 利用组合逻辑电路和时序电路 通过 Verilog 语言编码设计篮球 24s 倒计时器 初始时间为 24 0s 每隔 0 1s 减 1 计数 当计时达 到 00 0s 时 计时器停止 点亮 LED 灯表示超时 并且在实现倒计 时的功能的基础上 加上复位和暂停键 2 课程设计说明 1 时钟源为 50MHz 计时器精确到 0 1s 2 数码管只使用后 3 位 3 设计任务及要求 1 设计一个 24s 的倒计时计数器 使其每 0 1s 减一计数 并当计时 达到 00 0s 时 计时器停止 点亮 LED 灯表示超时 2 功能拓展 a 增加复位 Reset 功能 当 Reset 按键按下或 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 个数位 因此利 用七段译码器把数码管的一直置为 0 即一直不显示 4 设计一个能够产生周期为 0 1s 的时钟 3 将四个七段译码器得到的编码加到一个 4 选 1 的多路复用器 上 并用一个 2 位的选择端来选择输出哪一路编码 因为输入的数 据都在一根总线上 所以想不断改变选择信号 使 4 个 LED 灯交错 显示 考虑利用一个 2 4 译码器 令信号的变化速度达到一个值 则人眼看到的就是 4 个 LED 灯一直显示所做的运算 从而达到 24s 倒计时的功能 5 功能实现的具体代码 5 1 倒计时计数器模块 timescale 1ns 1ps module count backwards clk pause reset light Q input clk input pause reset output reg light 0 output reg 11 0 Q 12 b001001000000 always posedge clk begin if pause Q Q else if reset 1 begin Q 12 b001001000000 light 0 end else begin if Q 0 light 1 else if Q 3 0 0 begin Q 3 0 9 if Q 7 4 0 begin Q 7 4 9 Q 11 8 Q 11 8 1 end else Q 7 4 Q 7 4 1 end else Q 3 0 Q 3 0 1 end end endmodule 5 2 暂停模块程序 timescale 1ns 1ps module 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 endmodule 5 3 有小数点的第二位的七段码译码器程序 timescale 1ns 1ps module 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 begin if en case bcd in 4 h0 seg 7 8 b00000010 4 h1 seg 7 8 b10011110 4 h2 seg 7 8 b00100100 4 h3 seg 7 8 b00001100 4 h4 seg 7 8 b10011000 4 h5 seg 7 8 b01001000 4 h6 seg 7 8 b01000000 4 h7 seg 7 8 b00011110 4 h8 seg 7 8 b00000000 4 h9 seg 7 8 b00001000 default seg 7 8 b11111111 endcase else seg 7 8 b11111111 end endmodule 5 4 一般的七段译码器程序 timescale 1ns 1ps module 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 begin if en case bcd in 4 h0 seg 7 8 b00000011 4 h1 seg 7 8 b10011111 4 h2 seg 7 8 b00100101 4 h3 seg 7 8 b00001101 4 h4 seg 7 8 b10011001 4 h5 seg 7 8 b01001001 4 h6 seg 7 8 b01000001 4 h7 seg 7 8 b00011111 4 h8 seg 7 8 b00000001 4 h9 seg 7 8 b00001001 default seg 7 8 b11111111 endcase else seg 7 8 b11111111 end endmodule 5 5 产生一个周期为 0 1s 的时钟信号 timescale 1ns 1ps module 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 begin count count 1 count2 count2 1 if count 199999 begin count 0 fout fout end if count2 2599999 begin count2 0 f10 f10 end end always negedge fout f125 f125 endmodule 6 电路图 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

提交评论