数字系统课程设计 题目: 辩论赛计时器
专业: 自动化
班级: 10级自动化班 姓名,学号:
辩论赛计时器
一、
实验目的
1、深入了解Verilog HDL语言语法
2、学会独立思考、设计及实现较大规模的数字电路系统
二、 实验原理
本实验中将依照现有辩论赛规则,制作一个简易的计时装置。辩论赛由开篇立论、双方攻辩、攻辩小结、自由辩论和总结陈词五部分组成。
1) 开篇立论、攻辩小结、总结陈词部分需一方发言终止后,另一方才
允许发言。
2) 双方攻辩和自由辩论中,双方需要交替发言,一方发言时,本方计
时器工作;另一方计时器处于停滞状态。
本实验中要完成倒数计时,状态控制与过渡,文字提示的显示,按键消 抖等功能。系统正常工作时,发光二极管循环闪烁提醒辩手时间的流逝;八段数码管显示剩余时间;发光数码管显示发言者属于哪一方(正方/反方);拨码开关控制是对正方计时,还是对反方计时;按键1控制计时状态;按键2实现计时状态的转换。
三、 四、
实验学时:24学时 实验步骤
1) 根据实验要求作预习报告。 2) 根据实验需求,进行程序的设计。 3) 根据以前设计的经验,反复调试程序。
4) 调试通过,下载到FPGA开发板上进行实践调试。 5) 完成整个过程,写实验报告。 五、
实验要求:
实验报告应包含实验目的、实验原理,设计思路,实验程序,实验结果,实验总结。其中具体要求为: 1) 2) 3)
程序实现模块化设计,写出设计思路,认真标注代码注释; 达到正确地运行结果;
实验中出现的问题进行详细总结。
module shiyan6(clk,stop,zof,zl,fl,cc,rr,leds,ledd,zq,fq);
input clk;
input stop,zof,zq,fq;
output zl,fl,cc,rr,leds,ledd; reg[6:0] z,f;
reg[7:0] c,cc,rr,leds,ledd; reg[2:0]n; reg[25:0]i,j; reg tick,tick2; reg zl,fl;
reg [3:0]zs,zg,fs,fg;
always @(posedge clk) begin if(j==9999999) end
always @(posedge clk) begin if(i>999)
begin tick2<=~tick2;
begin tick<=~tick;
j<=0; end else
j<=j+1;
i<=0; end else
i<=i+1;
end
always @(posedge clk) begin if(zof)
always @(posedge tick)
begin zl<=1'b1;fl<=1'b0;end
else begin zl<=1'b0;fl<=1'b1;end
end
begin if(zof) begin if(stop==0) begin if(z==0)
begin z<=60;zs<=6;zg<=0;end else
begin z<=z-1;zs<=z/10;zg<=z;end if(zq==1)
begin z<=60;zs<=6;zg<=0;end
end
end
else begin
if(stop==0) begin if(f==0)
begin f<=60;fs<=6;fg<=0;end else
begin f<=f-1;fs<=f/10;fg<=f;end if(fq==1)
begin f<=60;fs<=6;fg<=0;end
end
end
end
always @(posedge tick2) begin case(n) 0:begin
ledd<=8'b11101111; case(zs)
0:leds<=8'b1111110; //0 zhengfang 1:leds<=8'b0110000; //1 2:leds<=8'b1101101; //2 3:leds<=8'b1111001; //3
4:leds<=8'b0110011;
//4
shiwei
5:leds<=8'b1011011; 6:leds<=8'b1011111;
//5 //6
endcase end 1:begin case(zg)
ledd<=8'b11011111;
0:leds<=8'b1111110; //0 zhengfang gewei
endcase end 2:begin
case(fs)
endcase end 3:begin
case(fg)
1:leds<=8'b0110000; //1 2:leds<=8'b1101101; //2 3:leds<=8'b1111001; //3 4:leds<=8'b0110011; //4 5:leds<=8'b1011011; //5 6:leds<=8'b1011111;
//6
7:leds<=8'b1110000; //7 8:leds<=8'b1111111; //8 9:leds<=8'b1111011; //9
ledd<=8'b11111110;
0:leds<=8'b1111110; //0 fanfang shiwei 1:leds<=8'b0110000; //1 2:leds<=8'b1101101; //2 3:leds<=8'b1111001; //3 4:leds<=8'b0110011; //4 5:leds<=8'b1011011; //5 6:leds<=8'b1011111;
//6
ledd<=8'b11111101; 0:leds<=8'b1111110; //0 fanfang gewei 1:leds<=8'b0110000; //1 2:leds<=8'b1101101; //2 3:leds<=8'b1111001; //3 4:leds<=8'b0110011; //4 5:leds<=8'b1011011; //5 6:leds<=8'b1011111;
//6
7:leds<=8'b1110000; //7 8:leds<=8'b1111111; //8 9:leds<=8'b1111011; //9