基于fpga的多路数字抢答器的设计内容摘要:
omplier Tool( Tools 菜单), 9 在 Complier Tool 窗口中运行该模块来启动编辑器模块。 在 Complier Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。 图七中所示的上排是 Quartus II编译设计主控界面,它显示了 Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。 在图七下排的流程框图,是与上面的 Quartus II设计流程相对照的标准的 EDA开发流程。 图 : Quartus II设计流程 10 第三章 数字抢答器系统设计方案和主要模块 功能描述及设计架构 本次毕业设计设计了一个基于 FPGA芯片的数字抢答器:本抢答器有九个输入端,其中四个输入端为四组选手的抢答按键,四个个分别为主持人加分按键、减分按键、积分重置按键和开始抢答按键和一个时钟信号输入端。 有两个 BCD数码管进行显示,其中一个显示抢答者组号,另外一个用来显示积分,用八个 LED灯来进行抢答时间倒计时。 并有蜂鸣器来提示是否已经有人抢答到题 目,抢到题目时组号数码管显示该组的组号。 开始抢答时,有主持人宣布抢答开始,并按下开始抢答按键,各组开始抢答,其中任意一组抢到题目,则电路进行自锁,其它各组再按按键即为无效,抢到题目后蜂鸣器响,作答结束后依据回答答案是否正确有主持人选择进入加减分模块,每组初始分数为五分,答对一道加一分,错一道减一分,不抢答则分数不加不扣。 11 图 抢答器的具体功能如下: 抢答器功能示意图 设置抢答开始开关按键 inputEN,此按键有主此人操控,在主持人宣布抢答开始后,按下此 按键,各组方可开始进行抢答。 抢答器具备限时抢答功能,限时时间为十秒。 当主持人按下抢答开始按键后,八个LED 灯全亮,并每秒熄灭一个,全部熄灭则算作是无人抢答,此题作废,主持人可以宣布进入下一道题的抢答环节。 抢答器具备锁存功能和现实功能,也就是说当选手抢答时只要按动抢答按键后,锁存相对应的组号,当主持人对分数进行加减完毕之后,在对应的数码管上显示抢答者的分数,然后进入下一轮抢答。 主持人在选手抢答之后,作答完成之后,进入加减分数环节,此时主持人可以按两个按键中的一个,其中一个按键用来 在回答正确之后加分,两外一个用来在回答错误之后减分,主持人之后可选择两个按键之中的一个来完成此环节。 完成加减分环节之后,主持人可以进入下一环节。 关于蜂鸣器,蜂鸣器在选手中任意一人首先按下按键之后,鸣响三秒钟,来宣布此题已经被抢到,并在 BCD数码管上显示该组的组号。 如果倒计时结束之后无人抢答,则蜂鸣器不做反应。 12 此次设计以 FPGA为基础设计数字抢答器,根据主要的功能 设计要求,该设计主要包括抢答输入按键、 BCD数码管显示、 LED倒计时和 FPGA系统。 抢答器的结构示意图如下: 图 :抢答器结构示意图 设计中 FPGA最小系统电路为 FPGA可以正常工作时的基本电路,由时钟和复位电路组成。 按键输入电路有八个按键组成,数码显示管有两个个八段共阳极数码管组成。 LED 倒计时显示电路有八个个红色的 LED灯组成。 抢答器程序流程图以及各模块代码分析 抢答器程序结构及主程序流程图 本次毕业设计中程序设计采用 verilog HDL 语言进行编程,总体编程思路采用模块化编程方式,主要分为三个模块,一个主控制及按键输入模块,一个 LED倒计时模块和 蜂鸣器模块,一个抢答组号及积分显示模块,分别对这三个子模块进行独立编程设计,由于 verilog HDL 语言是一种并行运行的语言,所以可以在同一个频率时钟脉冲 13 下进行各模块的编写,最终在把各个模块整合在一起。 主要程序运行方式采用状态机的方法来实现对抢答器的各个环节的控制。 此次所设计的状态一共有四个状态。 一、等待主持人按键开始抢答,在此状态时会一直检测按键信号,当收到主持人的开始抢答信号进入下一个环节。 二、等待四组抢答按键状态,在此状态时, LED倒计时显示模块将开始显示抢答计时, 如果在规定时间初始化及抢答模块 本次毕业设计中初始化模块主要是为了以后程序的正常运行,在这里进行初始化,给各个后面要用到的寄存器变量赋初值。 主要赋值的对象有抢答标志位、蜂鸣器标志位、蜂鸣器延时标志位、抢答选手 14 标志位、分组分数标志位、组号显示初始值等等。 详细内容见附录。 图 : 主程序流程图 抢答模块是本次设计的重点,原理是:当主持人按下 inputEn按键,启动初始化模块,抢答标志位 EnFlat 发生改变,开始进入抢答时间。 此时各组开始进行抢答,无论哪一组先按下 按键,抢答标志位 EnFlat改变变为 1’ b0,禁止其他各组再次进行抢答;同时选手标志位进行改变,与改组组号相对应,主要适用于后续的加减分模块;显示组号的数码管显示抢到题目的这一组的组号;改变蜂鸣器的标志 15 位,蜂鸣器发声,来告诉大家,此题已经有人抢答,大家不要再次抢答了,也告诉主持人可以进行问题的提问,并且可以进行其他的后续操作。 初始化模块及抢答模块的部分源代码: //初始化模块 always @ (posedge clk)//捕 捉时钟 begin //初始化各按键并开始抢答 begin if(inputEn==1’b0) begin //初始化各个标志位和参数 EnFlat=1’b1。 //倒计时开始时 8个 Led灯全亮 Led1=8’b11111111。 //组号显示静态数码管 (数码管为共阳极 )的控制端 ,有 8位 Led2=8’b11111111。 //分数显示数码管控制端 Led3=8’b11111111。 //蜂鸣器标志位 16 BuClk=1’b0。 //蜂鸣器的控制管脚 ,低电平为发声音 Buzzer=1’b1。 end end //抢答模块 begin if(EnFlat==1’b1) begin //如果按键 1 按下 if(inputL1==1’b0) begin //禁止其他选手抢答 EnFlat=1’b0。 //选手标志位改变,用于加减分数模块 answer=3’ d1。 //静态数码管显示序号 ’1’,及显示选手对应的组号 Led2=8’hf9。 //指示 蜂鸣器发声 17 BuClk=1’b1。 end 加减分数模块 加减分数模块主要是用来对选手的积分进行更改,有主持人控制。 在选手回答完问题,由主持人判定答案是否正确,然后决定是加分还是减分。 加减分模块主要有一个选手标志位,此标志位在抢答模块进行改变,四个分数寄存器来存放分数,最后把各个组的分数放到一个总的寄存器中,主要是为了节省代码。 主要代码如下: //第一组加减分 if(answer ==3’ d1) begin begin if(add) score1=score1+1。 //当主持人判定选手的回答正确时,按下 add键进行加分操作 else if(stu) score1=score11。 //当主持人判定选手的回答错误时,按下 stu键进行减分操作 end score=score1。 //把第一组的分数赋值给分数寄存器 18 end 其他各组与第一组类似,依次类推即可,详细代码,参见附录。 倒计时模块 倒计时模块的主要功能是用来提醒大家赶快进行抢答,当抢答标志位 EnFlat为 1’ b1即开始抢答时,倒计时开 始。 因为所用的实验箱的频率为 48MHz,因此需要现有一个 1Hz的分频,即一个计数模块;计数结束之后进入 LED灯的左移模块,此处主要使用一个左移运算符 来进行倒计时,当然也可以通过其他的算法来实现这个功能,但是应该都没有这一个运算符来的简洁。 还有一种情况,就是没有人进行抢答,遇上这种情况,如果在倒计时结束之后,没有人进行抢答,则抢答标志位,蜂鸣器标志为改变,蜂鸣声结束之后可以进行下一轮操作。 部分源代码如下: //倒计时模块 begin if(EnFlat==1’b1) begin if(t!=32’d48000000)//计时实现 1HZ 分频 t=t+32’d1。 else begin t=32’d0。 19 Led1=8’b111111111’b1。 //Led1左移一个单位,实现一秒的倒计时 响 EnFlat=1’b0。 BuClk=1’b1。 if(Led1==8’b0)//倒计时结束还没有按键按下,则抢答停止且蜂鸣器 end end end 蜂鸣器模块。基于fpga的多路数字抢答器的设计
相关推荐
、 提供了一套完整的表示组合逻辑基本元件的原语; 8 、 提供了双向通路和电阻器件的描述; 可建立 MOS 器件的电荷分享和衰减模型; 可以通过构造性语句精确地建立信号模型; 1 可描述顺序执行或并行执行的程序结构; 此外, Verilog HDL 语言还有一个重要特征就是:和 C 语言风格有很多的相似之处,学习起来比较容易。 河北大学 2020 届本科生毕业论文(设计) 4 1
以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值,报警等功能。 FPGA 接收键入的代码,并与存贮在闪存中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则通过 FPGA 产生报警, FPGA 将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给监控器,同时将
The reason for the Starttasmove () movement module is selected to control the motor’s speed and position is that the movement module can give the Scurve motion profile to motor as its speed curve,
T 规定抽样率为 8KHz,每抽样值编 8 位码,即共有 2∧ 8=256 个量化值,因而每话路 PCM 编码后的标准数码率是 64kb/s。 为解决均匀量化时小信号量化误差大,音质差的问题,在实际中采用不均匀选取量化间隔的非线性量化方法,即量化特性在小信号时分层密,量化间隔小,而在大信号时分层疏,量化间隔大。 在实际中使用的是两种对数形式的压缩特性: A 律和 U 律 , A 律编码主要用于
飞时发动机的运行情况),人们不可能重复作实验来判断所设计产品的可行性和稳定性。 此时,可以利用 任意波形发生器 的信号还原功能。 在做一些高耗费、高风险实验时,可以通过数字示波器把实际中用到的实际波形记录下来,再通过计算机接口下载到 任意波形发生器 ,通过 任意波形发生器 还原实验中的实际波形并 加 到设计电路中,做进一步的实验验证工作。 第一章 绪论 3 国内外发展现状
消费电子、通信、图像图理、测试以及其它终端市场。 Cyclone II 器件的制造基于 300mm 晶圆,采用台积电 90nm、低 K值电介质工艺,这种可靠工艺也曾被用于 Altera 的 Stratix II 器件。 这种工艺技术确保了快速有效性和低成本。 通过使硅片面积最小化, Cyclone II 器件可以在单芯片上支持复杂的数字系统,而在成本上则可以和 ASIC 竞争。 Cyclone