您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于FPGA智力竞赛抢答器的设计
-43-基于FPGA智力竞赛抢答器的设计410083【摘要】【关键词】【中图分类号】【文献标识码】A【文章编号】(一)引言现场可编程门阵列FPGA作为集成度和复杂程度昀高的可编程ASIC。是ASIC的一种新型门类,它建立在创新的发明构思和先进的EDA技术之上。运算器、乘法器、数字滤波器、二维卷积器等具有复杂算法的逻辑单元和信号处理单元的逻辑设计都可选用FPGA实现。传统的数字逻辑设计使用TTL电平和小规模的数字集成电路来完成逻辑电路图。使用这些标准的逻辑器件已经被证实是昀便宜的手段,但是要求做一些布线和复杂的电路集成板(焊接调试)等工作,如果出现错误,改动起来特别麻烦。因此,采用传统电子设计方案人员的很大一部分工作主要集中在设备器件之间物理连接、调试以及故障解决方面。正是因为FPGA的EDA技术使用了更高级的计算机语言,电路的生成基本上是由计算机来完成,将使用户能较快地完成更复杂的数字电路设计,由于没有器件之间的物理连接,因此调试及故障排除更迅速、有效。本文运用EDA中的QuartusII作为软件帀发平台,设计了一款基于FPGA的智力竞赛抢答器,并下载到逻辑资源为50万门的Cyclone系列EP1C20F400型芯片中实现了其功能。(二)作品背景在进行智力竞赛时,每个参赛队员考虑后都希望抢答成功,如果没有合适的设备,主持人就会很难分辨出哪组队员抢答成功,为了使比赛顺利进行,作者设计了一款智力竞赛抢答器。(三)基于FPGA的智力竞赛抢答器的设计作为现代集成电路设计的重点与热点,FPGA设计一般采用自顶向下、由粗到细、逐步求精的方法。设计昀顶层是指系统的整体要求,昀下层是指具体的逻辑电路实现。自顶向下是将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大则进一步分解为更小的子系统和模块,层层分解,直至整个系统中各子模块关系合理、便于设计实现为止。1.RS触发器DFLIP-FLOPS2D2PRN1CLK1D1PRN2CLK2CLRN1CLRN1QN2Q2QN1Q7474instVCCSDINPUTVCCRDINPUTQOUTPUTQBAROUTPUT17447D用双D触发器7474来实现RS触发器的功能,如图所示,SD表示置位端,RD表示复位端,低电平有效,Q为原码输出,QBAR为反码输出。2.数字秒表模块VCCCLRINPUTVCCCLKINPUTVCCclkkINPUTA1OUTPUTB1OUTPUTC1OUTPUTD1OUTPUTE1OUTPUTF1OUTPUTG1OUTPUTAOUTPUTBOUTPUTCOUTPUTDOUTPUTEOUTPUTFOUTPUTGOUTPUTSPEAKEROUTPUTBCDTO7SEGLTNBCDRBINBINAOBOCOEODOFOGOARBON7447inst25BCDTO7SEGLTNBCDRBINBINAOBOCOEODOFOGOARBON7447inst26clkclrenacq0cq1cq2cq3carry_outcounter_6inst3clkclrenacq1cq2cq3cq0carry_outcounter_10inst4clkclkoutdiv50inst2NOTinst5VCCENAINPUT2FPGA具有复位功能,用两个数码管分别显示个位和十位,当使能端为高电平时,帀始计数,秒钟自动加一,计数时间为一分钟,蜂鸣器接到COUNTER_6的carry_out端口,计数到59时蜂鸣器报警的同时恢复到00状态,系统有单独的置零信号,将数码管显示时间直接恢复到00状态。显示部分的数码管段选用总线复用技术,位选用动态扫描,一般只要每个扫描频率超过人的眼睛视觉暂留频率24HZ以上就可以点亮单个显示而不闪烁,扫描频率采用与7447使能控制信号同一个1KHZ信号。10进制计数器的部分程序如下:architectureartofcounter_10issignalcqi:std_logic_vector(3downto0);begin【收稿日期】【基金项目】【作者简介】-44-process(clk,ena,clr)beginifclr='1'thencqi=0000;elsifclk'eventandclk='1'thenifena='1'thenifcqi=1001thencqi=0000;elsecqi=cqi+1;endif;endif;endif;endprocess;process(cqi)beginifcqi=0000thencarry_out='1';elsecarry_out='0';endif;endprocess;cq0=cqi(0);cq1=cqi(1);cq2=cqi(2);cq3=cqi(3);endart;3.分频器模块clkclkoutdiv50inst23将50MHZ的时钟信号送到分频器CLK后进行5千万分频后得到1HZ的频率由CLKOUT输出,采用VHDL语言编程,编译无误后创建文件符号DIV50供上层电路调用。程序实现如下:libraryieee;useieee.std_logic_1164.all;entitydiv50isport(clk:instd_logic;clkout:outstd_logic);enddiv50;architectureartofdiv50issignalnum:integerrange0to4999999;signaltemp:std_logic;beginprocess(clk)beginifclk'eventandclk='1'thenifnum=4999999thennum=0;temp=nottemp;elsenum=num+1;endif;clkout=temp;endif;endprocess;endart;4.系统总体电路图VCCCLRINPUTVCCCLKINPUTA1OUTPUTB1OUTPUTC1OUTPUTD1OUTPUTE1OUTPUTF1OUTPUTG1OUTPUTAOUTPUTBOUTPUTCOUTPUTDOUTPUTEOUTPUTFOUTPUTGOUTPUTSPEAKEROUTPUTL1OUTPUTL2OUTPUTL3OUTPUTL4OUTPUTDFLIP-FLOPS2D2PRN1CLK1D1PRN2CLK2CLRN1CLRN1QN2Q2QN1Q7474instDFLIP-FLOPS2D2PRN1CLK1D1PRN2CLK2CLRN1CLRN1QN2Q2QN1Q7474inst1NAND4inst6NAND4inst7NAND4inst8NAND4inst9NOTinst13NOTinst12NOTinst11NOTinst10NAND4inst18BCDTO7SEGLTNBCDRBINBINAOBOCOEODOFOGOARBON7447inst25BCDTO7SEGLTNBCDRBINBINAOBOCOEODOFOGOARBON7447inst26clkclrenacq0cq1cq2cq3carry_outcounter_6inst3clkclrenacq1cq2cq3cq0carry_outcounter_10inst4clkclkoutdiv50inst2NOTinst5VCCP1INPUTVCCP2INPUTVCCP3INPUTVCCP4INPUTVCCMASTERINPUTVCCCLKKINPUT4带有RS端的D触发器7474,它具有两个输入端:置‘0’输入端RD和置‘1’输入端SD,均为低电平有效,两个输出端Q和QBAR,在正常工作状态下互为相反,当不用CP和D端时,根据RD和SD的不同状态集成器具有输出保持状态,置‘0’和置‘1’的功能。用两片7474构成的4个RS触发器组成时间鉴别电路。竞赛帀始前,主持人先按下KK键,各触发器复位(Q=0),4个发光二极管均不亮,竞赛帀始后,帀始抢答,例如第一组抢答成功即P1被按下则门1输出为0,使Q1=1,发光二极管亮,同时Q1BAR=‘0’。Q1BAR=‘0’有2个作用,其一是封锁门2、门3、门4,使P2、P3、P4再按时不能把相应触发器的Q置‘0’;其二是使门5输出为1,驱动数字秒表帀始计时。当计时达到60秒钟的时候,蜂鸣器报警,答题时间结束。55.编程及测试为设计项目选定Cyclone系列EP1C20F400型芯片;根据该芯片的管脚规定,自己在Pin/Location/chip屏幕中添加输入输出端可用的引脚编号,并编译通过;对器件编程,使用ByteBlaste下载电缆把项目以在线配置的方式下载到Cyclone系列EP1C20F400型芯片中。按功能键键复位,用四位拨码帀关键模拟抢答,实验仿真结果正确,达到了预期的设计要求。(四)结束语现场可编程门阵列FPGA是含有大规模数字电路的通用性器件。这些数字电路之间的互联网络是由用户使用更高级的软件来定义的。FPGA可以进行无限次的重复编程,从一个电路到另一个电路的变化是通过简单的卸载互联文件来实现的,极大地推动了复杂数字电路的设计,缩短了故障检查的时间。【参考文献】
本文标题:基于FPGA智力竞赛抢答器的设计
链接地址:https://www.777doc.com/doc-7331011 .html