数字电子技术实验报告 - 基于FGPA的4位智能抢答器(verilog HDL)
基于FPGA的4位智能抢答器
一、设计任务要求
基于 EDA/SOPC 系统开发平台,运用 QuartusⅡ可编程逻辑器件开发软件, 设计一个 4 位智能抢答器,在开发箱上,本系统使用频率为 1000 赫兹的时钟脉 冲。要求如下:
1、 可以同时供 4 名选手抢答,其编号分别为 1、2、3、4,各用抢答按键 S1、S2、S3、S4,按键编号与选手编号对应。主持人设置有一个“开始”按键 S5,一 个“复位”按键 S6,用于控制抢答的开始和系统的复位;各个按键按下为“0”,弹起 为“1”;
2、系统上电和按下“复位”按键后 4 位数码管显示“0000”,此时只有“开始”按键有效, 其他按键不起作用;
3、 当主持人按下“开始”按键后,开始计时,数码管左边两位显示计时的时间,单位为 “秒”;如果有选手按下抢答按键,定时器停止工作,数码管显示器上左边两个数码管 显示抢答时刻的时间;选手编号立即锁存并显示在右边的两个数码管上,同时封锁输 入电路,禁止其他选手抢答;此状态一直保持到主持人将系统复位为止;
4、 抢答的有效时间为 10 秒,如果定时抢答的时间已到而没有选手抢答,本次抢答无效, 封锁输入电路,禁止抢答,数码管左边显示“10”,右边显示“00”;此状态一直保持 到主持人将系统复位为止;
5、 附加提高:在主持人未按下开始按键时,如果有人抢答则犯规,在数码管上右边两位 闪烁犯规选手的编号,闪烁频率为 0.5HZ,左边两位显示“00”;此状态一直保持到主 持人将系统复位为止。
二、设计步骤
本次设计主要采用 Verilog HDL 语言,总体编程思路采用模块化设计方式,主要分为
3 个模块,一个主控制及按键输入模块,一个计时显示模块,一个抢答组号显示模块,分 别对这 3 个子模块进行独立编程设计,编译仿真通过并生成元件,在顶层使用原理图或者 Verilog HDL 语言的方式将 3 个模块连接起来
完成整个设计。锁定管脚并编译仿真通过, 下载到开发箱进行测试。
三、模块设计思路
对于这个任务来说,计时显示模块和抢答组号显示模块的模块并不复杂,复杂的模块是主控制及按键输入模块,所以我决定再将主控制模块拆分成两个小的模块——按键输入模块、按键输入判断输出模块。后者使用4个D触发器来实现,当游戏开始的时候4个D触发器都会接收按键按下的信息,并且判断是否出现问题,下面我就真实的程序来进行说明。
1、主控制模块的按键输入模块
module napoleon(Clk_in, S,LED1, LED2, LED3, LED4 ); input Clk_in; input [5:0] S; output [7:0] LED1; output [7:0] LED2; output [7:0] LED3; output [7:0] LED4; wire [7:0] LED1; wire [7:0] LED2; wire [7:0] LED3; wire [7:0] LED4; wire isTimeFinish; //计时时间是否达10秒,如果时间达到了10秒,则该变量为1,否则为0 reg lockFlag; //锁定抢答组号的标志位,当有人抢答成功,那么将不再计时以及接受新的输入 reg clearFlag ;//复位标志位,当主持人按下复位键的时候为0,否则为1 wire [3:0] Q_out; //D触发器的输出Q reg [3:0] not_Q_out;//D触发器的输出的取非值 not_Q_out = ~Q_out; reg startFlag; //开始标志位,当主持人按下开始的按钮,则该变量为0,否则为1 //调用D触发器模块,当有人已经抢答的时候,则该触发器将不再输出新的值,如果不是,则输出相对应的值 triggerD triggerD_one( .Clk_in( Clk_in ), //调用显示时间的模块 .S ( S ), .clearFlag ( clearFlag ), .lockFlag ( lockFlag ), .Q( Q_out ) ); showTime showTime_one( .Clk_in( Clk_in ), .lockFlag ( lockFlag ), .clearFlag ( clearFlag ), .LED1 ( LED1 ), .LED2 ( LED2 ), .isTimeFinish( isTimeFinish ) ); //调用显示组号的模块 showGroup showGroup_one( .Q( Q_out ), .isTimeFinish ( isTimeFinish ), .clearFlag ( clearFlag ), .LED3( LED3 ), .LED4( LED4 ) ); //当开始按键或是复位按键发生变化的时候,对开始标志位或是复为标志位进行赋值 always @( S[4] or S[5] ) begin case ( {S[4], S[5] } ) 2'b01 :begin startFlag = 0;clearFlag = 1; end 2'b10 : begin startFlag = 1;clearFlag = 0;end endcase end always @ ( posedge Clk_in ) begin //if game had started if ( !startFlag ) begin not_Q_out[0] = ~Q_out[0]; not_Q_out[1] = ~Q_out[1]; not_Q_out[2] = ~Q_out[2]; not_Q_out[3] = ~Q_out[3]; //锁定抢答组号的标志位是通过D触发器的输出的非与时钟信号来进行各种逻辑运算得来的, 当lockFlag=1的时候,则表示主控制模块等待按键的输入,否则表示抢答成功,则锁定时间与组号,不再发生变化 lockFlag = ~( ~( not_Q_out[0] & not_Q_out[1] & not_Q_out[2] & not_Q_out[3] ) & Clk_in ); end else lockFlag = 0; Endmodule 2、触发器模块:
module triggerD( Clk_in, S, clearFlag, lockFlag, Q ); input Clk_in, clearFlag, lockFlag; input [5:0] S; output [3:0] Q; reg [3:0] Q; always @( posedge Clk_in ) begin if ( lockFlag ) begin case ( S[3:0] ) 4'b1111 : Q = 4'b0000; 4'b1110 : Q = 4'b0001; 4'b1101 : Q = 4'b0010; 4'b1011 : Q = 4'b0100; 4'b0111 : Q = 4'b1000; endcase end if ( !clearFlag ) Q = 4'b0000; end Endmodule 3、显示时间模块:
module showTime( Clk_in, lockFlag, clearFlag, LED1, LED2, isTimeFinish ); input Clk_in; output [7:0] LED1; output [7:0] LED2; output input lockFlag; input clearFlag; isTimeFinish; //when isTimeFinish = 1, time use out
…… 此处隐藏:1310字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




