基于fpga智力抢答器的设计内容摘要:

对其编程。 第 3 页 西华大学 课程 设计说明书 2 智力抢答器设计方案 Verilog HDL 的设计流程 1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的 HDL 编辑环境。 通常 Verilog HDL 文件保存 为 .v 文件。 2) 功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只有在布线完成之后,才进行时序仿真)。 3)逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。 逻辑综合软件会生成 .edf( EDIF) 的 EDA 工业标准文件。 (最好不用 MAX+PLUS II 进行综合,因为只支持 VHDL/Verilog HDL 的子集) 4)布局布线:将 .edf 文件调入 PLD 厂家提供的软件中进行布线,即把设计好的逻辑安放到 CPLD/FPGA 内。 5)时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序(也叫后仿真)。 抢答器 系 统设计 方案 根据系 统设计 要求可知,系 统 的 输 入信 号 有:各 组 的 抢 答按 钮 4,系 统清 零信号 CLR,系 统时钟 信 CLK, 计 分 复 位端 RST,加分按 钮 端 ADD, 计时预 置控制端 LDN, 计时 使能端 EN, 计时预 置 数 据 调 整按 钮 TA、 TB;系 统 的 输 出信 号 有:四 个组抢 答成功 与 否的指示灯控制信 号输 出口 LEDA、 LEDB、 LEDC、 LEDD,四 个组抢 答 时 的 计时数码显 示控制信 号 若干, 抢答成功 组别显 示的控制信 号 若干 ,各 组计 分 动态显 示的控制信 号 若干。 本系 统应 具有的功能有:第一 抢 答信 号 的 鉴别 和 锁 存功能; 数码管显示;计分控制和倒计时功能。 抢答器程序工作流程 抢答器的工作流程如下: 如果参赛者在抢答器使能信号 EN 有效前按下抢答按钮,报警信号 FALSE[3...0]的对应位输出高电平以示警告;当 EN 使能信号有效时,抢答器开始正常工作,将报警信号 FALSE 清零,四位抢答者谁先按下抢答按钮,则抢答成功,对应的显示 LED 灯亮起,并通过显示电路模块显示其参赛编号。 抢答成功的选手进入答题阶段,计时显示器从初始设定值开始以秒为单位倒计时,计数至 0 时,停止计数,扬声器发出超时报警信号,以中止继续回答问题;当主持人给出倒计时计数禁止信号时,扬声器停止鸣叫;参赛者在规定时间内回答完问题,主持人给出倒计时计数禁止信号 RST,以免扬声器鸣叫。 答题结束,如正确回答问题,则加分信号有效,如回答错误,则减分信号有效,计分模块给相应的参赛组加分。 第 4 页 西华大学 课程 设计说明书 如果复位信号 CLR 有效,使得抢答器在下一轮抢答前,其抢答成功的组别判断回复为初始状态,以便重新开始新一轮抢答。 复位信号不改变参赛者的现有得分。 图 21 主程序的流程图 抢答器功能框图 根据设计要求,我们给出如下的抢答器功能的框图 : 图 22 抢答器功能框图 开始 复位清零 抢答判断 倒计时并计分 显示程序 第 5 页 西华大学 课程 设计说明书 根据以上的分析,我们可将整个系统分为四个主要模块:抢答鉴别模块;抢答计分模块;显示译码模块; EP1C3T144C8 接口模块。 图 23 抢答器原理图 图 24 显示蜂鸣原理图 第 6 页 西华大学 课程 设计说明书 图 25 EP1C3T144C8 接口原理图 系统的工作原理如下:当主持人按下使能端 EN 时,抢答器开始工作, 4 四位抢答者谁最先抢答成功则此选手的台号灯( LED1~LED4)将点亮,并且主 持人前的组别显示数码管讲显示出抢答成功者的台号;接下来主持人提问,若回答正确,主持人按加分按钮,抢答积分模块将给对应的组加分,并将组的总分显示在对应的选手计分数码管上。 在此过程中。 完成第一轮抢答后,主持人清零,接着重新开始,步骤如上。 Verilog HDL 源程序 module heren(clk,inputEn,inputL1,inputL2,inputL3,inputL4,Sig1,Sig2,Sig3,Sig4,Led,Buzzer)。 // 一开始时声明有哪些端口 input clk,inputEn,inputL1,inputL2,inputL3,inputL4。 //输入口 output Sig1,Sig2,Sig3,Sig4。 output [0:7]Led。 output Buzzer。 //输出口 reg Sig1=139。 b1,Sig2=139。 b1,Sig3=139。 b1,Sig4=139。 b1。 reg [0:7]Led。 reg Buzzer。 //在输出口配置个寄存器 ,以便运算 reg EnFlat=139。 b0。 //配置寄存器 ,EnFlat 是表明开始抢答的标志位 第 7 页 西华大学 课程 设计说明书 reg BuClk=139。 b0。 //BuClk 是蜂鸣器的标志位 reg [0:7]BuL=839。 d0。 //BuL 是做蜂鸣器的延时用 always @ (posedge clk)//捕捉时钟 begin if(inputEn==139。 b0)//初始化各按键并开始抢答 begin EnFlat=139。 b1。 //初始化各个标志位和参数 Sig1=139。 b1。 Sig2=139。 b1。 Sig3=139。 b1。 Sig4=139。 b1。 //各个按键对应的 LED 控制端 Led=839。 b11111111。 //静态数码管的控制端 ,有 8 位 BuClk=139。 b0。 Buzzer=139。 b1。 //蜂鸣器的控制管脚 ,低电平为发声音 end if(EnFlat==139。 b)//开始抢答 begin if(inputL1==139。 b0)//如果按键 1 按下 begin EnFlat=139。 b0。 //禁止其他选手抢答 Sig1=139。 b0。 //对应的 LED 点亮 Led=839。 b01101111。 //静态数码管显示序号 39。 139。 BuClk=139。 b1。 //指示蜂鸣器发声 end else if(inputL2==139。 b0)//如果按键 2 按下 begin EnFlat=139。 b0。 //禁止其他选手抢答 Sig2=139。 b0。 Led=839。 b00011010。 BuClk=139。 b1。 end else if(inputL3==139。 b0)//如果按键 3 按下 begin EnFlat=139。 b0。 //禁止其他选手抢答 Sig3=139。 b0。 Led=839。 b01001010。 第 8 页 西华大学 课程 设计说明书 BuClk=139。 b1。 end else if(inputL4==139。 b0)//如果按键 4 按下 begin EnFlat=139。 b0。 //禁止其他选手抢答 Sig4=139。 b0。 Led=839。 b01101001。 BuClk=139。 b1。 end end if(BuClk==139。 b1)//当蜂鸣器标志位置。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。