基于VHDL的智力竞赛抢答器的设计与实现.doc

上传人:知****量 文档编号:31718409 上传时间:2022-08-08 格式:DOC 页数:11 大小:38.04KB
返回 下载 相关 举报
基于VHDL的智力竞赛抢答器的设计与实现.doc_第1页
第1页 / 共11页
基于VHDL的智力竞赛抢答器的设计与实现.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《基于VHDL的智力竞赛抢答器的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于VHDL的智力竞赛抢答器的设计与实现.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 11 页 共 11 页 基于VHDL的智力竞赛抢答器设计 摘 要 本课程设计主要内容是利用EDA技术设计一个可容纳四组选手的智力竞赛抢答器,全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的组合逻辑电路和时序逻辑电路编程.本课程设计的开发仿真工具是MAX+plus II,采用自顶向下、逐层细化的设计方法设计整套系统,顶层模块用图形描述,底层文件用VHDL语言描述。通过波形仿真,实现了智力竞赛抢答器的基本功能,达到了设计要求。关键字 智力竞赛抢答器;EDA技术;VHDL;MAX+plus II;自顶向下1 引 言 20世纪90年代,引进数字系统设计方法发生突破性变革的技术是VH

2、DL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)。它是一种IEEE1076标准所规范的硬件描述语言,主要用于算法级、寄存器级到门级的多种抽象设计层次的数字系统建模,已成为电子设计自动化(EDA)的一种重要手段.本课程设计的主要目的是:全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养设计综合电路的能力,养成编写文档资料的习惯和规范

3、编程的思想。2 智力竞赛抢答器的主要功能设计一个4人参加的智力竞赛抢答计时器。该系统具有回答问题时间控制的功能,要求回答问题时间小于等于100秒(显示为099),时间显示采用倒计时方式.当达到限定时间时,发出声响以示警告;当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。智力竞赛抢答器的功能分块如图2-1所示。顶层文件QDQdaojishi模块sanxuanyi模块pianxuan模块xianshi模块jianbie模块suocunqi模块zhuanhuan模块图2-1智力竞赛抢答器功能模块划分图该智力竞赛抢答器分为七个模块,分别为:鉴别模块、锁存器模块

4、、转换模块、选择输出模块、倒计时模块、片选模块和显示模块。3 主要功能的实现3。1 鉴别功能鉴别模块jianbie如图3-1所示,输入信号CLK和CLR,若CLR=“0”,表示无人按键,输出信号Q为0;若CLR=“1,表示有人按键,输出信号Q为1。图3-1 jianbie模块鉴别模块源代码如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY jianbie ISPORT(CLK,CLR:IN STD_LOGIC; Q :OUT STD_LOGIC);END jianbie;ARCHITECTURE jianbie_mk OF jianbie I

5、SBEGINPROCESS(CLK,CLR)BEGINIF CLR=0THEN -利用IF_THEN_ELSE语句 Q=0;ELSIF CLKEVENT AND CLK=0THEN -检测时钟下降沿 Q=1;END IF;END PROCESS;END jianbie_mk; 鉴别模块程序调试波形如图3-2所示,给CLK一个时钟信号,在某一时刻开始赋给CLR一个高电平,则从下一个时钟下降沿开始Q输出高电平。图32鉴别模块仿真波形图3。2 锁存器功能锁存器模块suocunqi如图3-3所示,锁存器对四位答题者的结果进行锁存,并将其赋给输出信号Q1,Q2,Q3,Q4。图3-3 suocunqi模块

6、 锁存器模块源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164。ALL;ENTITY suocunqi ISPORT(D1,D2,D3,D4:IN STD_LOGIC; CLK,CLR:IN STD_LOGIC; Q1,Q2,Q3,Q4,ALM:OUT STD_LOGIC);END suocunqi;ARCHITECTURE suocunqi_mk OF suocunqi ISBEGIN PROCESS(CLK) BEGINIF CLR=0THEN Q1=0; Q2=0; Q3=0; Q4=0; ALM=0; ELSIF CLKEVENT AND CLK=1T

7、HEN -检测CLR为高电平,则有人抢答 Q1=D1; Q2=D2; Q3=D3; Q4=D4; ALM=1;END IF;END PROCESS;END suocunqi_mk; 锁存器模块程序调试波形如图3-4所示,给CLK一个时钟信号,在某一时刻开始赋给CLR一个高电平,则从下一个时钟上升沿开始:将D1赋给Q1、将D2赋给Q2、将D3赋给Q3、将D4赋给Q4,并输出ALM为1;在CLR为低电平时无输出。图34锁存器模块仿真波形图3。3 转换功能 转换模块zhuanhuan如图35所示,把抢答结果转化为一个四位二进制数,表示抢答者的编号。图35 zhuanhuan模块转换模块源代码如下:L

8、IBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY zhuanhuan ISPORT(D1,D2,D3,D4:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END zhuanhuan;ARCHITECTURE zhuanhuan_mk OF zhuanhuan ISBEGIN PROCESS(D1,D2,D3,D4)VARIABLE TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINTMP:=D1D2&D3&D4;CASE TMP ISWHEN 1000”=QQQ=0011

9、”;WHEN ”0001=Q=”0100”;WHEN OTHERS=Q=0000”;END CASE;END PROCESS;END zhuanhuan_mk;转换模块程序调试波形如图3-6所示,通过此模块将D1D2D3D4的输入结果转换成Q1Q2Q3Q4这种四位二进制数,当D1=1,其他三位为0时,输出Q为“0001”;当D2=1,其他三位为0时,输出Q为“0010”;当D3=1,其他三位为0时,输出Q为“0011”;当D4=1,其他三位为0时,输出Q为“0100”;其他情况下,输出Q为“0000”.图36 转换模块仿真波形图3。4 选择输出功能 选择输出模块sanxuanyi如图37所示,

10、用两个四位二进制数表示倒计时,其中D1为高位,D2为低位,用一个四位二进制数D3表示抢答号,输出信号Q1和Q2,其中Q1和Q2作为显示模块中数码管的输入值。通过SEL的值控制Q1和Q2输出抢答号或者倒计时,当SEL=0时为输出倒计时状态,Q1代表高位,Q2代表低位;当SEL=1时,为显示抢答号状态,Q1输出为0,Q2的输出代表抢答者编号。图3-7 sanxuanyi模块选择输出模块源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sanxuanyi ISPORT(SEL:IN STD_LOGIC; D1,D2,D3:IN STD_LOG

11、IC_VECTOR(3 DOWNTO 0); Q1,Q2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END sanxuanyi;ARCHITECTURE sanxuanyi_mk OF sanxuanyi IS BEGINPROCESS(SEL,D1,D2,D3)BEGINIF SEL=1 THEN Q1=0000;Q2=D3;ELSE Q1=D1;Q2=D2;END IF;END PROCESS; END sanxuanyi_mk;选择输出模块程序调试波形如图3-8所示,由SEL控制Q的输出,当SEL为1时,将D3赋给Q2,“0000赋给Q1,输出结果代表抢答者

12、编号;当SEL为0时,将D2赋给Q2,D1赋给Q1,输出结果代表倒计时。图38 选择输出模块仿真波形图3.5 倒计时功能倒计时模块daojishi如图3-9所示,用两个四位二进制数表示倒计时,定义变量HH,LL,由时钟CLK和使能信号EN控制,其中EN的值由锁存器模块中的ALM控制。当倒计时至HH=0,LL=0时,发出声音停止计时,输出H(XXX),L(XXX).图3-9 daojishi模块倒计时模块源代码如下:LIBRARY IEEE;USE IEEE。STD_LOGIC_1164。ALL;USE IEEE。STD_LOGIC_UNSIGNED。ALL;ENTITY daojishi IS

13、PORT(CLK,EN:IN STD_LOGIC; H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SOUND:OUT STD_LOGIC);END daojishi;ARCHITECTURE daojishi_mk OF daojishi ISBEGINPROCESS(CLK,EN)VARIABLE HH,LL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1THENIF EN=1THEN -EN=1驱动倒计时模块开始倒计时 SOUND=0; HH:=1001”; LL:=”1001”;ELSIF LL

14、=0 THEN IF HH=0 THEN SOUND=1; -倒计时至0时,输出超时报警信号 ELSE LL:=1001; HH:=HH1; END IF;ELSE LL:=LL-1;END IF;END IF;H=HH;L=LL;END PROCESS;END daojishi_mk;倒计时模块程序调试波形如图310所示,当EN为“1”时,在时钟上升沿将“1001”赋给H和L,准备进入倒计时;从EN为“0”且时钟的上升沿到来时,H和L的值开始以逐渐递减,即从99倒计时到0,同时倒计时至0时,输出超时报警信号SOUND=1.图310 倒计时模块仿真波形图3。6 片选功能 片选模块pianxua

15、n如图311所示,该模块用于控制选择输出模块输出倒计时或者抢答号,其中EN1的值由锁存器模块中的ALM控制。图3-11 pianxuan模块 片选模块源代码如下:LIBRARY IEEE; USE IEEE。STD_LOGIC_1164.ALL;ENTITY pianxuan ISPORT(CLK,EN1:IN STD_LOGIC; A :OUT STD_LOGIC);END pianxuan;ARCHITECTURE pianxuan_mk OF pianxuan ISBEGINPROCESS(CLK,EN1)BEGINIF EN1=0THEN -利用IF_THEN_ELSE语句 A=0;E

16、LSIF CLKEVENT AND CLK=1THEN -检测时钟上升沿 A=1;END IF;END PROCESS;END pianxuan_mk; 片选模块程序调试波形如图3-12所示,EN1=0时,将0赋给A;当EN1=1时,在CLK时钟信号的下一个时钟上升沿将1赋给A。 图3-12 片选模块仿真波形图3。7 显示功能 显示模块如图3-13所示,将所有进程中的数值转换成七位二进制数。图313 xianshi模块显示模块源代码如下:LIBRARY IEEE;USE IEEE。STD_LOGIC_1164.ALL; ENTITY xianshi IS PORT(D:IN STD_LOGIC

17、_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END xianshi;ARCHITECTURE xianshi_mk OF xianshi IS BEGINPROCESS(D)BEGIN CASE D IS WHEN”0000”=Q=”0111111”; WHEN”0001=Q=0000110”; WHEN0010=Q=1011011; WHEN0011”=QQ=”1111101”; WHEN”0111”=Q=”0000111; WHEN”1000=Q=1111111”; WHEN”1001=Q=1101111”; WHEN O

18、THERS=Q=0000000”;END CASE;END PROCESS;END xianshi_mk;显示模块程序仿真波形如图314所示,将输入信号D转变成能在七段数码管上显示的七位二进制数。图3-14 显示模块仿真波形图3。8 顶层模块 各模块连接后形成顶层文件的电路图如图3-15所示。图3-15 各模块连接后的电路图顶层文件仿真波形如图316所示,D2最先获得抢答权,输出声音信号SOUND=1,在数码管上显示抢答号,Q1输出“0111111”(0),Q2输出“1011011(2),代表抢答号为02;之后自动进入倒计时状态,将“1101111”(9)赋给Q1和Q2,同时开始自动倒计时,倒

19、计时至0时,输出超时报警信号SOUND=1,停止倒计时。图3-16 顶层文件仿真波形图4 总结4.1 智力竞赛抢答器设计结果通过MAX+plus II的仿真,证明了本系统在实际运用中的正确性,完全可以实现预期任务的要求,在有一组信号抢答成功后发出声音提示,并能通过译码器显示抢答号;在两组或者两组以上信号同时抢答时视抢答无效。抢答成功后,系统开启倒计时功能,并且能够准确计时将时间呈两位数显示;倒计时开始后从99秒倒计时至0秒并通过译码器实时显示计时结果,当倒计时至0秒时,停止倒计时,发出超时报警信号。4.2 学习总结在整个设计过程中,主要需要考虑的问题如下:将整套系统划分成多个子模块,通过画流程图分析各模块之间的联系,以达到设计要求;程序中电路的时序设计;修改程序中的语法错误;程序仿真时波形的设计;根据波形仿真现象修改程序逻辑错误;对VHDL基本语法的掌握;掌握使用MAX+plus II编辑程序、编译、设计波形、仿真的方法。 通过本次课程设计,我们加深了对EDA技术、VHDL语言基本语法知识及程序基本框架的理解,将理论知识应用到实践中,提高了动手能力,同时养成了编写文档的习惯。整套系统运用MAX+plus II编程、调试、仿真,使我们对这个软件的使用熟练了很多。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁