1、任务书下达日期 2013年5 月 01日设计完成日期 2013年5月 22 日目 录1、设计内容.32、设计要求.33、设计思路.34、安装、调试步骤.35、问题分析与设计改进.76、设计结果、总结与设计调试体会.87、附录.10八、参考文献.171设计内容 依照现有辩论赛规则,设计制作一个简易的计时装置。2设计要求 根据实验要求作预习报告。根据实验需求,进行程序的设计。根据以前设计的经验,反复调试程序。调试通过,下载到FPGA开发板上进行实践调试。完成整个过程,写实验报告。3设计思路1.了解辩论赛流程及原则 辩论赛由开篇立论、双方攻辩、攻辩小结、自由辩论和总结陈词五部分组成。 1.1开篇立论
2、、攻辩小结、总结陈词部分需一方发言终止后,另一方才允许发言。1.2双方攻辩和自由辩论 中,双方需要交替发言,一方发言时,本方计时器工作;另一方计时器处于停滞状态。2.程序实现模块化设计,由简单到困难循序渐进。本实验中要完成倒数计时,状态控制与过渡,文字提示的显示,按键消抖等功能。系统正常工作时,发光二极管循环闪烁提醒辩手时间的流逝;八段数码管显示剩余时间;发光数码管显示发言者属于哪一方(正方/反方);拨码开关控制是对正方计时,还是对反方计时;按键1控制计时状态;按键2实现计时状态的转换。具体模块设计参照附录中代码设计。4安装、调试步骤3.1根据实验要求作预习;3.2建立工程,设计程序: 1)新
3、建工程; 2)新建verilog HDL文件(注:文件名和模块名称要和工程名保持一致)。 3)调试程序:见实验附录3.3. 配置管脚: 参照实验指导中的管脚图,配置管脚。3.4下载到开发板,观察实验结果,尝试创造自己的实验方案:3.5.完成实验报告。5问题分析与设计改进设计中我们用16*8点阵显示“正方”和“反方”,但在分频的时钟tick2下反复调试不能实现闪烁。其实是我们肉眼观测不出来,因此在此时钟下有设计了一个计时器间接实现分频于是得到了预想的结果六、设计结果、总结与设计调试体会1.设计结果: 经过反复的调整与调试我们得到了如下的结果2.总结与设计调试体会: 本次课程所设计的辩论赛计时器。
4、通过这次课程设计让我们了解和学习了更多关于数字系统设计的知识,为今后的学习打下了坚实的基础。在试验中,我们也遇到了不少困难,但通过查找资料、和学长同学交流最终解决了问题,每当解决一个问题都会很高兴和成就感,又学到了很多东西。也在课程设计中找到许多乐趣,从学习中寻求快乐。7.附录(代码)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_s
5、eg,led_dig,ledin;/设定点阵管脚 C-1亮R-0亮 设定LED显示管脚led_seg-1亮,led_dig-0亮,reg 5:0z,f; /z循环控制正方倒计时30-00 f循环控制反方倒计时30-00reg 0:7R,ledin;15C;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 (posedge clk)/分频begin if(i=9999999) be
6、gin tick1=tick1; i=0; end else i999) tick2=tick2; j j=j+1;always (posedge tick1) if(zf) if(stop=0) /z循环控制正方倒计时30-00 if(z=0) begin z=30;zs=3;zg else begin z=z-1;=z/10;=z%10; if(zt) /正方倒计时清零操作 end if(stop=0) /f循环控制反方倒计时30-00 if(f=0) begin ffsfg begin f=f-1;=f/10;=f%10; if(ft) /反方倒计时清零操作always (posedge
7、 tick2)begin case(n) 0: led_dig=8b11011111; case(zs) /显示正方十位0-3led_segb11111100; 1:b01100000; 2:b11011010; 3:b11110010; 4:b01100110; 5:b10110110; 6:b10111110; endcase end 1:b11101111; case(zg) /显示正方个位0-9 7:b11100000; 8:b11111110; 9:b11110110;2:b11111101; case(fs) /显示反方十位0-33: case(fg) /显示反方个位0-9 end
8、case if(n=4) n n5)/显示正方 begin case(m) 0:begin C=16b0001000000000000;R=8b01111111; 1:b0000100001111110;b10111111; 2:b0111111100001000; 3:b0000100000101000; 4:b0001111000101110;b11110111; 5:b0010001000101000;b11111011; 6:b0100001000101000; 7:b1000011011111111; if(m=7) m m5)/显示反方b0001000001111110;b0000
9、100001000000;b0111111101111110;b0000100001100010;b0001111001010100;b0010001001001000;b0100001001010100;b1000011001000011; if(m=7) else if(zf=1 & z6)/正方闪烁 if(jjjj20000) begin jjjj=jjjj+1; end 10000) case(m) 0: 1: 2: 3: 4: 5: 6: 7: endcase m C=16b00000000000000000;b00000000; f6)/反方闪烁9999)end begin ledin=8b00001111; if(zs=0 & zg=5) case(ts) 0:begin ledin=8 1:b11110000; if(fs=0 & fg ts=ts+1; if(ts=1)endmodule八、参考文献1周润景.基于Quartus II的FPGA/CPLD数字系统设计实例(第2版)M. 电子工业出版社 (2013-01出版)2夏宇闻. verilog数字系统设计教程(第2版)M. 北京航空航天大学出版 社,2008.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1