1、数字系统设计实验数字系统设计实验 课程设计课程设计 题目:辩论赛计时器题目:辩论赛计时器 一一实验名称:辩论赛计时器实验名称:辩论赛计时器 二二实验学时:实验学时:24 学时学时 三三实验目的:实验目的: 1、深入了解 Verilog HDL 语言语法。 2、学会独立思考、设计及实现较大规模的数字电路系统。 四四实验要求实验要求 实验报告应包含实验目的、实验原理,设计思路,实验程序,实 验结果,实验总结。其中具体要求为: 1) 程序实现模块化设计,写出设计思路,认真标注代码注释; 2) 达到正确地运行结果; 3) 实验中出现的问题进行详细总结。 五五实验原理:实验原理: 本实验中将依照现有辩论
2、赛规则,制作一个简易的计时装置。辩 论赛由开篇立论、双方攻辩、攻辩小结、自由辩论和总结陈词五部分 组成。 1) 开篇立论、攻辩小结、总结陈词部分需一方发言终止后, 另一方才允许发言。 2) 双方攻辩和自由辩论 中,双方需要交替发言,一方发言 时,本方计时器工作;另一方计时器处于停滞状态。 本实验中要完成倒数计时,状态控制与过渡,文字提示的显示, 按键消抖等功能。系统正常工作时, 发光二极管循环闪烁提醒辩手时 间的流逝;八段数码管显示剩余时间;发光数码管显示发言者属于哪 一方(正方/反方) ;拨码开关控制是对正方计时,还是对反方计时; 按键 1 控制计时状态;按键 2 实现计时状态的转换。 六六
3、实验步骤:实验步骤: 1) 根据实验要求作预习报告。 2) 根据实验需求,进行程序的设计。 3) 根据以前设计的经验,反复调试程序。 4) 调试通过,下载到 FPGA 开发板上进行实践调试。 5) 完成整个过程,写实验报告。 七七实验结果实验结果 八八附录:附录: module keshe(clk,stop,zf,C,R,led_seg,led_dig,ledin,zt,ft); input clk,stop,zf,zt,ft;/stop-正方或反方倒计时使能 0-有效 zf-选择正方或反方 1-选择正方 0-选择反方 zt/ft 分别为正方或反方清零 output C,R,led_seg,l
4、ed_dig,ledin;/设定点阵管脚 C-1 亮 R-0 亮 设定 LED 显示管脚 led_seg-1 亮,led_dig-0 亮, reg 5:0z,f; /z 循环控制正方倒计时 30-00 f 循环控制反方倒计时 30-00 reg 0:7R,ledin; reg 0:15C; reg 0:7led_seg,led_dig; reg 4:0m; reg 2:0n; /计时器 reg 25:0i,j; reg tick1,tick2; reg ts; reg 3:0zs,zg,fs,fg;/正方十位 正方个位 反方十位 反方个位 integer jjjj; always (posed
5、ge clk)/分频 begin if(i=9999999) begin tick1=tick1; i=0; end else i999) begin tick2=tick2; j=0; end else j=j+1; end always (posedge tick1) begin if(zf) begin if(stop=0) /z 循环控制正方倒计时 30-00 begin if(z=0) begin z=30;zs=3;zg=0;end else begin z=z-1;zs=z/10;zg=z%10;end if(zt) /正方倒计时清零操作 begin z=30;zs=0;zg=0
6、;end end end else begin if(stop=0) /f 循环控制反方倒计时 30-00 begin if(f=0) begin f=30;fs=3;fg=0;end else begin f=f-1;fs=f/10;fg=f%10;end if(ft) /反方倒计时清零操作 begin f=30;fs=0;fg=0;end end end end always (posedge tick2) begin case(n) 0:begin led_dig=8b11011111; case(zs) /显示正方十位 0-3 0:led_seg=8b11111100; 1:led_seg=8b01100000; 2:led_seg=8b11011010; 3:led_seg=8