1、桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 1 页 共 19 页 草鱼 摘 草鱼 草鱼 草鱼要 草鱼 草鱼 本文介绍了 以 FPGA 为基础的四路抢答器的设计 , 鲤鱼 此次设计 是一个有 4 组抢答输入 , 鲤鱼 并具有抢答计时控制 , 鲤鱼 按键消抖 以及积分显示等 功能 的通用型抢答器 。 草鱼 主持人有 4 个按键控制 ,鲤鱼 可以 进行开始抢答 , 鲤鱼 对各抢答小组成绩进行相应加减操作 以及所有积分重置 。 草鱼 此次设计 程序 使用 verilog 语言编写 , 鲤鱼 并且使用 modelsim 进行相关仿真 , 鲤鱼 最后在 FPGA 开发板上 烧录程序进行实际
2、操作 演示 实现了相应功能 , 鲤鱼 达到了此次设计的目的 。 草鱼 本设计采用 FPGA 来做增强了时序控制的 灵活性 , 鲤鱼 同时由于 FPGA 的 IO 端口资源丰富 , 鲤鱼 可以再本设计基础上稍加修改可以重复设计出具有多组输入的抢答器 。 草鱼草鱼 草鱼 关键字 : p ork按键消抖 ; pork显示 ; pork仿真 ; pork四路抢答 ; pork草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 2 页 共 19 页 草鱼 草鱼 草鱼 草鱼 草鱼 Abstr
3、act 草鱼 草鱼 In 草鱼 this 草鱼 paper, 草鱼 the 草鱼 design 草鱼 of 草鱼 four 草鱼 channel 草鱼 responder 草鱼 based 草鱼 on 草鱼 FPGA 草鱼 is 草鱼 proposed. 草鱼 The 草鱼design 草鱼 contains 草鱼 four 草鱼 channel 草鱼 input, 草鱼 and 草鱼 also 草鱼 it 草鱼 has 草鱼 timing 草鱼 function, 草鱼 button-stop-shaking 草鱼function, 草鱼 score 草鱼 display 草鱼 functi
4、on. 草鱼 And 草鱼 the 草鱼 result 草鱼 of 草鱼 the 草鱼 design 草鱼 is 草鱼 a 草鱼 universal 草鱼 responder. 草鱼The 草鱼 host 草鱼 has 草鱼 four 草鱼 buttons 草鱼 to 草鱼 control, 草鱼 in 草鱼 order 草鱼 to 草鱼 start 草鱼 response, 草鱼 add 草鱼 or 草鱼 sub 草鱼 the 草鱼 scores 草鱼for 草鱼 each 草鱼 group 草鱼 and 草鱼 clear 草鱼 all 草鱼 group 草鱼 scores. 草鱼 The
5、草鱼 design 草鱼 program 草鱼 uses 草鱼 verilog 草鱼 language 草鱼 to 草鱼write 草鱼 software. 草鱼 And 草鱼 modelsim 草鱼 is 草鱼 used 草鱼 to 草鱼 simulate 草鱼 the 草鱼 function 草鱼 on 草鱼 computer. 草鱼 At 草鱼 last 草鱼 the 草鱼actual 草鱼 design 草鱼 results 草鱼 are 草鱼 demonstrated 草鱼 on 草鱼 the 草鱼 FPGA 草鱼 development 草鱼 board, 草鱼 and 草鱼 th
6、e 草鱼functions 草鱼 are 草鱼 well 草鱼 veified. 草 鱼 The 草鱼 result 草鱼 achieves 草鱼 the 草鱼 purpose 草鱼 of 草鱼 the 草鱼 design. 草鱼 The 草鱼 design 草鱼uses 草鱼 FPGA 草鱼 to 草鱼 enhance 草鱼 the 草鱼 flexibility 草鱼 of 草鱼 timing 草鱼 control. 草鱼 At 草鱼 the 草鱼 same 草鱼 time 草鱼 because 草鱼 of 草鱼 草鱼IO 草鱼 port 草鱼 resoures 草鱼 in 草鱼 FPGA
7、草鱼 are 草鱼 much 草鱼 rich, 草鱼 if 草 鱼 you 草鱼 want 草鱼 to 草鱼 design 草鱼 more 草鱼 channels 草鱼 responder, 草鱼 you 草鱼 just 草鱼 only 草鱼 repeat 草鱼 design 草鱼 on 草鱼 the 草鱼 basic 草鱼 of 草鱼 the 草鱼 design 草鱼 which 草鱼 is 草鱼 slightly 草鱼 modified.草鱼 草鱼 Keywords: 草鱼button-stop-shaking;pork 草鱼 display;pork 草鱼 simulate;pork 草
8、鱼 four 草鱼 channel 草鱼 responder;pork草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 3 页 共 19 页 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 目 草鱼 草鱼 草鱼 草鱼录 草鱼 草鱼 1 引言 4 草鱼 2 FPGA 原理及其相关工具软件的介绍 5 草鱼 2.1 FPGA 开发过程与应用 5 草鱼 2.1.1 FPGA 发展历程及现状 5 草鱼 2.1.2 FPGA 工作原理 5 草鱼 2.1.3 FPGA 开发流程 6 草鱼 2.2 Quartus 草鱼 I
9、I 软件 6 草鱼 2.3 Simulink 软件 7 草鱼 2.3.1 代码仿真 7 草鱼 2.3.2 门级仿真和时序仿真 8 草鱼 3 实验 步骤及仿真调试结果 8 草鱼 3.1 功能描述及设计架构 8 草鱼 3.2 抢答器程序流程图和各模块软件代码分析 9 草鱼 3.2.1 抢答器程序结构及主程序流程图 9 草鱼 3.2.2 主控制及按键输入模块 11 草鱼 3.2.3 计时模块 12 草鱼 桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 4 页 共 19 页 3.2.4 BCD 显示模块 13 草鱼 3.3 顶层模块连线及开发板硬件配置 14 草鱼 3.4 modelsim
10、 仿真 17 草鱼 4 结论 18 草鱼 谢 草鱼 草鱼 辞 错误 !未定义书签。 草鱼 参考文献 18 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 引言 草鱼 随着电子技术的发展 , 鲤鱼 现在的抢答器功能越来越强 , 鲤鱼 可靠性和准 确性也越来越高 。 草鱼 能够实现抢答器功能的方式有多种 , 鲤鱼 可以采用前期的模拟电路 、 pork数字电路或模拟与数字电路相结合的方式 , 鲤鱼 但这种方式制作过程复杂 , 鲤鱼 而且准确性与可靠性不高 , 鲤鱼 成品面积大 。 草鱼草鱼 对于目前抢答器的功能描述 , 鲤鱼 如涵盖抢答器 、 pork抢答限时 、 pork选手答题
11、计时及犯规组号抢答器具有抢答自锁 , 鲤鱼 灯光指示 、 pork暂停复位 、 pork电子音乐报声 、 pork自动定时等功能 , 鲤鱼 还有工作模式的切换和时间设定 , 鲤鱼 对于这些 , 鲤鱼 随着科学技术的发展 , 鲤鱼 肯定还要得到进一步的改进 。 草鱼 一般都要 趋向于智能化 。 草鱼草鱼 在各类竞赛中 , 鲤鱼 特别是做抢答题时 , 鲤鱼 在抢答过程中 , 鲤鱼 为了知道哪一组或哪一名选手先答题 ,鲤鱼 必须要有一个系统来完成这个任务 。 草鱼 如果在抢答过程中 , 鲤鱼 只靠人的视觉是很难判断出哪组先答题 。 草鱼 利用 FPGA 来设计抢答器 , 鲤鱼 使以上问题得以解决 ,
12、 鲤鱼 即使有两组的抢答时间相差几微秒 , 鲤鱼 也可分辨出哪组优先答题 。 草鱼草鱼 抢答器是一种应用非常广泛的设备 , 鲤鱼 在各种竞赛 、 pork抢答场合中 , 鲤鱼 它能迅速 、 pork客观地分辨出最先获得发言权的选手 。 草鱼 早期的抢答器只由几个三极管 、 pork可控硅 、 pork发光管等组成 , 鲤鱼 草鱼 能通过发光管的指示辨认出选手号码 。 草鱼 现在大多数抢答器均使用高速处理芯片和数字集成电桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 5 页 共 19 页 路 , 鲤鱼 从开始的单片机到现在的 ARM 或者 FPGA 控制 , 鲤鱼 并越来越走向成熟
13、, 鲤鱼 同时增加了许多新功能 , 鲤鱼 如选手号码显示 、 pork抢按前或抢按后的计时 、 pork选手得分显示功能 。 草鱼 像这类抢答器 ,鲤鱼 制作过程简单 , 鲤鱼 准确性与可靠性高 , 鲤鱼 而且安装维护简单 。 草鱼草鱼 对于抢答器的应用 , 鲤鱼 如早期的数字电路 , 鲤鱼 随着科技的逐步发展 , 鲤鱼 进而到了单片机 以及更高的 FPGA 或 ARM 的控制来实现其功能 , 鲤鱼 而且功能齐全 , 鲤鱼 电路简单 , 鲤鱼 成本低 , 鲤鱼 性能高 , 鲤鱼 真正朝着有利的方向发展 。 草鱼草鱼 草鱼 草鱼 FPGA 原理及其相关工具软件的介绍 草鱼 草鱼 FPGA 开发过
14、程与应用 草鱼 随着现场可编程逻辑器件越来越高的集成度 , 鲤鱼 加上不断出现的 I/O 标准 、 pork嵌入功能 、 pork高级时钟管理的支持 , 鲤鱼 使得现场可编程逻辑器越来越广泛 。 草鱼草鱼 FPGA发展历程及现状 草鱼 从 Xilinx 公司推出了世界上第一片 FPGA(现场可编程逻辑芯片 ), 鲤鱼 FPGA 已经历几十年的发展 。草鱼 从最初的一千多可利用门 , 鲤鱼 发展到 90 年代的几十万个可利用门 , 鲤鱼 到十一世纪又陆续推出了几千万门的单片 FPGA 芯片 。 草鱼 FPGA 使用灵活 , 鲤鱼 适用性强 , 鲤鱼 特别适用于复杂逻辑的设计 ,鲤鱼 有利用电子系
15、统小型化 , 鲤鱼 而且其开发周期短 、 pork开发投入少 、 pork芯片价格不断降低 , 鲤鱼 促使 FPGA越来越多地取代了 ASIC 的市场 。 草鱼 草鱼 FPGA工作原理 草鱼 FPGA 采用了逻辑单元阵列 LCA( Logic 草鱼 Cell 草鱼 Array)这样一个概念 , 鲤鱼 内部包括可配置逻辑模块 CLB( Configurable 草鱼 Logic 草鱼 Block) 、 pork输出输入模块 IOB( Input 草鱼 Output 草鱼 Block)和内部连线( Interconnect)三个部分 。 草鱼 FPGA 的基本特点主要有 : pork 草鱼草鱼 1
16、)采用 FPGA 设计 ASIC 电路 , 鲤鱼 用户不需要投片生产 , 鲤鱼 就能得到合用的芯片 。 草鱼 草鱼草鱼 2) FPGA 可做其它全定制或半定制 ASIC 电路的中试样片 。 草鱼 草鱼草鱼 3) FPGA 内部有丰富的触发器和 I O 引脚 。 草鱼 草鱼草鱼 4) FPGA 是 ASIC 电路中设计周期最短 、 p o rk开发费用最低 、 pork风险最小的器件之一 。 草鱼 草 鱼草鱼 5) 草鱼 FPGA 采用高速 CHMOS 工艺 , 鲤鱼 功耗低 , 鲤鱼 可以与 CMOS、 porkTTL 电平兼容 。 草鱼 草鱼草鱼 可以说 , 鲤鱼 FPGA 芯片是小批量系统
17、提高系统集成度 、 pork可靠性的最佳选择之一 。 草鱼 草鱼草鱼 FPGA 是由存放在片内 RAM中的程序来设置其工作状态的 , 鲤鱼 因此 , 鲤鱼 工作时需要对片内的 RAM进行编程 。 草鱼 用户可以根据不同的配置模式 , 鲤鱼 采用不同的编程方式 。 草鱼 草鱼草鱼 加电时 , 鲤鱼 FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中 , 鲤鱼 配置完成后 , 鲤鱼 FPGA 进入工作桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 6 页 共 19 页 状态 。 草鱼 掉 电后 , 鲤鱼 FPGA 恢复成白片 , 鲤鱼 内部逻辑关系消失 , 鲤鱼 因此 , 鲤
18、鱼 FPGA 能够反复使用 。 草鱼 FPGA的编程无须专用的 FPGA 编程器 , 鲤鱼 只须用通用的 EPROM、 pork PROM 编程器即可 。 草鱼 当需要修改FPGA 功能时 , 鲤鱼 只需换一片 EPROM 即可 。 草鱼 这样 , 鲤鱼 同一片 FPGA, 鲤鱼 不同的编程数据 , 鲤鱼 可以产生不同的电路功能 。 草鱼 因此 , 鲤鱼 FPGA 的使用非常灵活 。 草鱼 草鱼 FPGA开发流程 草鱼 FPGA 开发流程可以分为如下几步 : p o rk草鱼 设计输入 , 鲤鱼 设计输入主要包括原理图输入 、 pork状态图输入 、 pork波形图输入以及某种硬件描述语言 ,
19、 鲤鱼 比如说是 VHDL、 porkVerilog 的源程序 。 草鱼 它是利用这些输入去描述一个电路的功能 。 草鱼草鱼 功能仿真 , 鲤鱼 功能仿真就是利用相关仿真工具对相关电路进行功能级别仿真 , 鲤鱼 也就是说对你的输入设计的逻辑功能进行相关的模拟测试 。 草鱼 在功能上面来了解电路是否能够达到预期要求 。 草鱼 这里的功能仿真纯粹是模拟性质的 , 鲤鱼 不会设计的任何具体器件的硬件特性 。 草鱼草鱼 综合 , 鲤鱼 综合就是行为或者功能层次表达的电子系统转换成低层次门级电路的网表 。 草鱼草鱼 布局布线 , 鲤鱼 就是将综 合后的网表文件针对某一个具体的目标器件进行逻辑映射 。 草
20、鱼 此时应该使用 FPGA 厂商提供的实现与布局布线工具 , 鲤鱼 根据所选芯片的型号 , 鲤鱼 进行芯片内部功能单元的实际连接与映射 。 草鱼草鱼 时序验证 , 鲤鱼 就是要使得时序仿真过程中 , 鲤鱼 建立与保持时间要符合相关的制约 , 鲤鱼 以便数据能被正确的传输 。 草鱼 使仿真既包含门延时 , 鲤鱼 又包含线延时信息 。 草鱼 能较好地反映芯片的实际工作情况 。 草鱼草鱼 生成 SOF 等文件 , 鲤鱼 此文件可以通过调试器把它下载到系统中间去 。 草鱼 而 FPGA 设计流程的其他步骤基本上由相关工具去完成 , 鲤鱼 因此只 要自己设置好相关参数 , 鲤鱼 不要人为干预太多 。草鱼
21、 而验证的话就需要用户花费大量的时间去完 成 。 草鱼草鱼 Quartus 草鱼 II 软件 草鱼 草鱼 此次所使用的软件是 Quartus 草鱼 II9.0,编程语音是 verilog 草鱼 HDL。 草鱼草鱼 Quartus 草鱼 II 是 Altera 提供的 FPGA/CPLD 开发集成环境 , 鲤鱼 Altera 是世界最大可编程逻辑器件供应商之一 。 草鱼 Quartus 草鱼 II 在 21 世纪初推出 , 鲤鱼 是 Altera 前一代 FPGA/CPLD 集成开发环境 MAX+plus 草鱼 II 的更新换代产品 , 鲤鱼 其界面友好 , 鲤鱼 使用便捷 。 草鱼 在 Qua
22、rtus 草鱼 II 上可以完成设计输入 、 porkHDL 综合 、pork布线布局(适配) 、 pork仿真和下载和硬件测试等流程 , 鲤鱼 它提供了一种与结构无关的设计环境 ,鲤鱼 使设计者能方便地进行设计输入 、 pork快速处理和器件编程 。 草鱼草鱼 Altera 的 Quartus 草鱼 II 草鱼 提供了完整的多平台设计环境 , 鲤鱼 能满足各种特定设计的需要 , 鲤鱼 也是单桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 7 页 共 19 页 芯片可编程系统( SOPC)设计的综合性环境和 SOPC 开发的基本设计工具 , 鲤鱼 并为 Altera DSP开发包进
23、行系统模型设计提供了集成 综合环境 。 草鱼 Quartus 草鱼 II 设计工具完全支持 VHDL、 porkVerylog的设计流程 , 鲤鱼 其内部嵌有 VHDL、 porkVerilog 逻辑综合器 。 草鱼 Quartus 草鱼 II 也可以利用第三方的综合工具 , 鲤鱼 如 Leonardo 草鱼 Spectrum、 porkSynplify 草鱼 Pro、 pork FPGA 草鱼 Complier 草鱼 II, 鲤鱼 并能直接调用这些工具 。 草鱼同样 , 鲤鱼 Quartus 草鱼 II 具备仿真功能 , 鲤鱼 同时也支持第三方的仿真工具 , 鲤鱼 如 ModelSim。 草
24、鱼 此外 , 鲤鱼 Quartus 草鱼 II 与 MATLAB 和 DSP 草鱼 Builder 结合 , 鲤鱼 可以进行基于 FPGA 的 DSP 系统开发 , 鲤鱼 是 DSP 硬件系统实现的关键 EDA 工具 。 草鱼草鱼 Quartus 草鱼 II 包括模块化的编译器 。 草鱼 编译器包括的功能模块有分析 /综合器( Analysis 草鱼 pork只有当主持人按下开始键才能抢答 ;p ork在按开始按钮前抢答属于违规 。 草鱼草鱼 2、 pork抢答器具有定时抢答功能 , 鲤鱼 且一次抢答的时间设定为 8 草鱼 秒 。 草鱼 当主持人启动 “开始 “键后 ,鲤鱼 8 个红色 LED
25、 灯全亮 , 鲤鱼 每流失一秒 , 鲤鱼 LED 灯则熄灭一个 , 鲤鱼 从右到左依次熄灭 , 鲤鱼 直到全部熄桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 9 页 共 19 页 灭 , 鲤鱼 若仍没人抢答则该轮抢答轮空 , 鲤鱼 自动转到下一轮抢答环节 。 草鱼 草鱼 3、 pork抢答器具有锁存与显示功能 , 鲤鱼 即选手按动按钮 抢答后 , 鲤鱼 锁存相应的组号 , 鲤鱼 当主持人分数加减完毕后 , 鲤鱼 将在 3 个数码管分别显示所抢答的组号以及该组目前的积分 , 鲤鱼 如果属于违规抢答 , 鲤鱼 则直接跳出抢答环节 , 鲤鱼 直接扣分并显示相应组号和 目前积分 , 鲤鱼
26、 进入下一轮抢答 。草鱼 草鱼 4、 pork主持人在选手抢答后进入加减分环节 , 鲤鱼 此时主持人可使用 2 个按键中的其中一个 , 鲤鱼 一个按键用来加分 , 鲤鱼 一个按键用来减分 , 鲤鱼 主持人可选择加 、 pork减或者不操作 , 鲤鱼 此环节一样为计时环节 , 鲤鱼 倒计时时间为 5 秒 , 鲤鱼 当 5 秒过后主持人未进行操作 , 鲤鱼 则判定这次抢答为既不加分也不减分 。 草鱼 加减分倒计时通过 5 个红色 LED 灯进行显示 , 鲤鱼 当有人按下抢答后 , 鲤鱼 该 5 个 LED灯全亮 , 鲤鱼 每过 1 秒 , 鲤鱼 则熄灭一个 , 鲤鱼 从左到右 , 鲤鱼 直到全部熄
27、灭 。 草鱼 草鱼 本 设计 以 FPGA 草鱼 为基础设计的电子抢答器 , 鲤鱼 根据设计功能要求 , 鲤鱼 该 设计主要包括抢答输入键盘 , 鲤鱼 数码管显示 , 鲤鱼 LED 灯显示 及 FPGA 草鱼 最小系统 。 草鱼 抢答器结构 框图如下图所示 : pork草鱼 草鱼 图二 、 p ork抢答器结构框图 草鱼 其中 FPGA 草鱼 最小系统电路 为 FPGA 草鱼 正常工作时的基本电路 , 鲤鱼 由时钟和复位电路组成 。 草鱼 按键输入电路 由 8 个按键组成 。 草鱼 数码管显示电路由 1 个 8 段控制共阴 BCD 和 2 个经过译码后的4 位 BCD 组成 。 草鱼 LED
28、计时显示电路由 8 个 红色 LED 灯组成 。 草鱼草鱼 抢答器程序流程图和各模块软件代码分析 草鱼 抢答器程序结构及主程序流程图 草鱼 软件设计主要采用 verilog 草鱼 HDL 草鱼 语言进行设计 , 鲤鱼 总体编程思路采用模块化编程方式 , 鲤鱼 主要分为 3 个模块 , 鲤鱼 一个主控制及按键输入模块 , 鲤鱼 一个 LED 计时提示模块 , 鲤鱼 一个抢答组号及积分显示模块 , 鲤鱼 分别对这 3 个子模块进行独立编程设计 , 鲤鱼 并生成元件 , 鲤鱼 并在顶层使用 电路连线 的方式将 3 个模块连接起来完成整个设计 。 草鱼草鱼 FPGA 时钟信号 按键输入电路 数码管显示
29、电路 LED 计时显示电路 桂林电子科技大学 基于 FPGA 的 四路抢答 器设计 第 10 页 共 19 页 主要程序运行方式采用状态机的方法来实现对抢答器的各个环节的控制 。 草鱼 此 次所设计的状态一共有 4 个状态 。 草鱼草鱼 第一个状态为等待主持人按键开始抢答 , 鲤鱼 在 此 状态时 会一直检测按键信号 , 鲤鱼 当收到主持人的开始抢答信号进入下一个环节 , 鲤鱼 如果有人抢答判定为违规抢答 , 鲤鱼 而直接进入状态 4 进行积分和抢答组号显示 。 草鱼草鱼 第二个状态为等待 4 组抢答状态 , 鲤鱼 在此状态时 , 鲤鱼 LED 计时显示模块将开始显示 抢答 计时 , 鲤鱼如果
30、在规定时间内有人最先抢答则直接进入下一个状态 , 鲤鱼 而如果无人抢答 , 鲤鱼 计时时间到后也进入下一个状态 , 鲤鱼 此状态下主持人按除复位键以外键无效 , 鲤鱼 而按复位键则直接返回第一个状态 , 鲤鱼 并将积分复位 。 草鱼草鱼 第三个状态为主持人加减分状态 , 鲤鱼 在此状态时 , 鲤鱼 LED 计时显示模块重置并显示加减分的计时 , 鲤鱼 如果在规定时间内主持人按下加分或减分则直接进入第四状态 , 鲤鱼 而无操作计时时间到后也进入下一个状态 , 鲤鱼 此状态下主持人按复位键则返回第一状态并将积分复位 。 草鱼 其他按键输入无效 。 草鱼草鱼 第四个状态对前面状态中所获取的键值信号进行处理 , 鲤鱼 更新并保存各组的积分信息 , 鲤鱼 同时将抢答组号和积分发送给 BCD 显示模块进行显示 , 鲤鱼 最后自动跳转回第一状态 。 草鱼草鱼 下图为主程序运行流程图 : p ork草鱼