nbhkdz.com冰点文库

基于VHDL语言的数字智能抢答器设计

时间:2011-10-20


2011年5月刊

信息与电脑 China Computer&Communication

算法语言

基于VHDL语言的数字智能抢答器设计
徐轶林 丁斌杰 (大连理工大学,辽宁大连 116024)
摘要:利用硬件描述语言VHDL实现智能知识问答抢答器的设计。重点阐述了抢答器各个部件的工作原理和采用硬件描述语言的设计方法。 本文使用数字电路开发软件MAX+PLUSII给出了设计的仿真结果。结果表明该设计能够满足抢答器的设计要求,对FPGA硬件资源的利用高效合 理。 关键词:VHDL;FPGA;数字抢答器 中图分类号:TP302.1 文献标识码:A 文章编号:1003-9767(2011)05-0125-02

引言
VHDL的英文全名Very-High-Speed Integrated Circuit Hardware Description Language,被IEEE和美国国防部确认为标准硬件描述语 言。它被公认有众多优点,如设计灵活、支持广泛、易于修改,独立 于器件设计。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了 含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及 语法是十分类似于一般的计算机高级语言 抢答器在各种知识竞赛和娱乐活动有着非常广泛的应用,实用功 能强大的VHDL语言来发开抢答器具有方便快捷,稳定可靠的特点, 非常适合。

失去了回答问题的机会。 模块二:在每次电路时钟信号clk的上升沿实现“q1<=d1;q2<=d2; q3<=d3;q4<=d4”,并发出alm发声有效信号(alm<='1')。 模块三:当cp信号上升沿时,q端置高电平,代表其中有选手了 回答。当主持人按下clr按钮将其置零时,q端置低电平,系统复位。 部分代码如下: if clr='0' then --清零 q<='0'; elsif cp'event and cp='1' then q<='1'; 模块四:实现从选手按键号码到对应二进制数的转换,运 用VHDL的”case”语句编程,部分代码如下: tmp:=d1&d2&d3&d4; q<="0010"; when"1101"=>q<="0011";when"1110"=> q<="0100"; 模块五:实现接收到抢答信号后的99s倒计时,倒 计时时间到则发出一个发声命令。 主要运用了循环思想编程,部分代 码如下: if clk'event and clk='1'then if en='1'then --开始计数 sound<='1'; elsif ll=0 then ll:="1001"; hh:=hh-1; else ll:=ll-1; end if; else sound<='0'; hh:="1001"; 下文是该数字电路系统的关键子模块及VHDL代码: ll:="1001"; end if; end if; h<=hh; l<=ll; --en=0,主持人按下按钮后 if ll=0 and hh=0 then case tmp is when"0111"=>q<="0001";when"1011"=>

1. 设计要求
1.1四人参加智力竞赛; 1.2当按下选手面前的抢答按钮时,相应的灯亮,且主持人处的 指示灯亮,指示已有人申请回答问题; 1.3显示屏上出现选手的号码, 并且开始100s倒计时,若选手在 100s内还没有给出答案,喇叭声将响起,提示该选手回答失败; 1.4一轮抢答完成后,主持人按动复位键,开始下一轮回答。

2. 系统的VHDL设计
本文采用最大的PLD生产厂商altera公司的可编程逻辑器件,芯片 型号为FLEX 84-4。 本文开发软件为MAX+PLUSII,总的电路系统图如下:

模块一:实现选手按键信号的或操作c1<=(b1 or b2 or b3 or b4 or b4),即只要有一个按动抢答按钮,他就能开始回答,并且其他选手

125

算法语言

信息与电脑 China Computer&Communication

2011年5月刊

模块六(连接模块):此模块实现以上各模块的引脚通讯,使它 们配合工作,达到预期的电路功能。编程使用了VHDL的”component “功能,简便易懂,稳定可靠,部分代码如下: signal one,two,three,four,five,six,seven,eight:std_logic; begin u1:a port map(d1,d2,d3,d4,one); u2:feng port map(one,host,two); u3:lockb port map(d1,d2,d3,d4,two,host,three,four,five,six,seve n); u4:change port map(three,four,five,six,dis); u5:count port map(clk,seven,t1,t2,eight); u6:b port map(seven,eight,sound); f1<=three; f2<=four; f3<=five; f4<=six; end lianjie_arc; (f1,f2,f3,f4输出高电平),且主持人处的指示灯亮,指示已有人申请回 答问题; 3:显示屏上出现选手的号码(dis输出对应数字), 并且开始100s 倒计时,若选手在100s内还没有给出答案,喇叭声将响起(sound输 出高电平),提示该选手回答失败; 4:一轮抢答完成后,主持人按动复位键(host输入低电平),所 有数都清零,开始下一轮回答符合设计要求。

参考文献:
[1]罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲[M].北 京:电子工业出版社,2007. [2]李洪伟,袁斯华.基于Quartus II的FPGA/CPLD设计[M].北京:电 子工业出版社,2006. [3]王旭东,潘广帧.MATLAB及其在FPGA中的应用[M].北京:国 防工业出版社,2006.

3. 结论以及结果说明
仿真图(总系统): 说明:1:四人(d1,d2,d3,d4)参加智力竞赛; 2:当按下选手面前的抢答按钮时(输入高电平),相应的灯亮

(上接第124页)

我们要实现这个接口,幸运的是ASM为我们提供了一个简单的实现 期望得到的类应该是如下类型: class BalanceService{ ... public BigDecimal balance(List<Goods> goodsList){ //校验令牌 Method1(); //计算价格和 BigDecimal sum = new BigDecimal(0); for(Goods goods:goodsList){ sum.add(goods.getPrice()); } balanceDAO.saveBalanceSum(sum); //记录日志 Method2(); return sum; } ... } Method1和Method2是要在运行期动态植入的,要植入这两个方 法就需要一个方法MethodVisitor,由于MethodVisitor是一个接口所以 MethodAdapter,我们只要继承这个类且实现visitCode,在visitCode 方法中添加方法Method1内要的操作即可实现将Method1的操作植 入到balance方法中。要植入Method2方法内要操作的内容可以实现 visitInsn方法,visitInsn方法它是ASM访问到无参数指令时调用的, 我们balance方法执行的最后一个指令是“return”指令,这个指令在 JVM虚拟机的指令集中是一个无参指令,所以我们只要判断当前调 用visitInsn传递的指令是不是” return”指令即可,若是则调用修改 相应的字节码代码。在应用中提供一个自定义的类加载器这样就可 以在类加载时嗲用相应的ModifyMethodClassAdapter方法来动态的实 现对balance方法的修改。这样完成了将无关的业务代码动态植入的 目的。

4. 总结
ASM对JAVA字节码的动态修改可以将业务代码和非业务代码进 行了很好的解耦,彼此之间相互独立,互不影响,而且可以根据需要 动态植入和卸载。但是这也产生了一个问题,由于是动态修改字节 码,这样代码出现问题时将给分析问题带来一定的麻烦,而且在性能 上也有一定的牺牲,因此对于要求响应效率较高的应用不适合使用这 种动态修改字节码得方式。总之,正确的场合去使用ASM还是可以给 我们带来很好的收益,不正确的场合可能就会有事倍功半的效果。

126


赞助商链接

基于VHDL的数字是竞赛抢答器的设计与实现

基于VHDL的数字是竞赛抢答器设计与实现 - 基于VHDL的数字式竞赛抢答器设计与实现-抢答、计分和报警 完成日期: 指导教师签字: 答辩小组成员签字: 基于VHDL的...

基于VHDL的智能抢答器

基于VHDL的智能抢答器 - 摘要 伴随着集成电路(IC)技术的发展,EDA 技术已经成为现代电子设计的发展趋势, 并在 各大公司、企事业单位和科研教学部门广泛使用。 VHDL...

基于VHDL的智力竞赛抢答器_完全设计

基于VHDL的智力竞赛抢答器_完全设计_信息与通信_工程科技_专业资料。1 引言 当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加 频繁,那么也就必然离...

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

引进数字系统设计方法发生突破性变革的技术是 VHDL (Very High Speed Integrated ...语句 第 11 页共 11 页 基于 VHDL 的智力竞赛抢答器设计 A<='1'; END ...

智能抢答器VHDL设计

电子科技大学光电信息学院 课程设计论文课程名称现代电子技术综合实验 题目名称 基于 VHDL 语言的 FPGA 智能抢答器设计论文 学 号 姓 名 指导老师 陈学英 起止时间...

基于VHDL语言的四位抢答器

基于VHDL语言的四位抢答器 - 四位 VHDL 抢答器 一、设计理念: 1.1 需要设计的是四名选手的抢答过程所用到的抢答器,分别用 S0~S3 四个按钮表示。 1.2 ...

基于VHDL的数显抢答器毕业设计

基于VHDL的数显抢答器毕业设计 - 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □优□优□优□优□优□...

基于VHDL的多路抢答器的设计

基于VHDL的多路抢答器的设计 - 重庆三峡学院 毕业设计(论文) 题目 基于 VHDL 的多路抢答器的设计 院专年 系业级 应用技术学院 电子信息工程(应电应本) ...

基于VHDL的多路抢答器的设计 精品

基于VHDL的多路抢答器的设计 精品 - 重庆三峡学院 毕业设计(论文) 题目 基于 VHDL 的多路抢答器的设计 院专年 系业级 应用技术学院 电子信息工程(应电应...

VHDL语言四人抢答器

中南林业科技大学 课程设计报告设计名称: 基于 VHDL 语言的四人抢答器 姓名: ...(分频 1HZ 时将其中的数去掉三个 9) 20 in STD_LOGIC; clk1Hz: out std...