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语言的数字智能抢答器设计.pdf

基于VHDL语言的数字智能抢答器设计 - 2011年5月刊 信息与电脑 China Computer&Communication 算法语言 基于VHDL语言的数字智能抢答器设计 徐轶林 丁...

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

基于VHDL的智力竞赛抢答器设计 - 第 1 页共 1 页 摘要 本课程设计主要

毕业论文设计-基于VHDL语言的八路数字抢答器设计.doc

毕业论文设计-基于VHDL语言的八路数字抢答器设计 - 题目:基于 VHDL 语言的八路数字抢答器设计 摘要 抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,...

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

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

毕业论文设计-基于VHDL语言的八路数字抢答器设计.doc

毕业论文设计-基于VHDL语言的八路数字抢答器设计 - 题目:基于 VHDL 语言的八路数字抢答器设计 摘要 抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,...

基于VHDL的智能抢答器.doc

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

基于VHDL语言的FPGA智能抢答器设计论文_图文.doc

基于VHDL语言的FPGA智能抢答器设计论文 - 电子科技大学光电信息学院 课程设计论文 课程名称 现代电子技术综合实验 题目名称 基于 VHDL 语言的 FPGA 智能抢答器设计...

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

基于VHDL的智力竞赛抢答器设计与实现 - 第 1 页共 1 页 基于 VHDL 的智力竞赛抢答器设计 摘要 本课程设计主要内容是利用 EDA 技术设计一个可容纳四组选手的...

智能抢答器VHDL设计.doc

智能抢答器VHDL设计 - 电子科技大学光电信息学院 课程设计论文 课程名称 现代电子技术综合实验 题目名称 基于 VHDL 语言的 FPGA 智能抢答器设计论文 学 号 姓 名 ...

基于VHDL语言的四位抢答器.doc

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

VHDL语言智能抢答器实验设计.doc

河南农业大学 课程设计报告设计题目:智能抢答器的 语言实验报告 设计题目:智能抢答器VHDL 语言实验报告 学专学班姓院: 业: 号: 级: 名: 理学院 电子信息...

VHDL语言设计__智力竞赛抢答器设计.doc

VHDL语言设计__智力竞赛抢答器设计 - 《数字系统与逻辑设计》课程设计任务书 一 、设计目的 全面熟悉、掌握 VHDL 语言基本知识,掌握利用 VHDL 语言对常用的的组合...

基于eda智能抢答器设计-毕设论文.doc

专业技术职务 二○一二年六月 校内指导教师 校外指导老师 -I- 基于 EDA 智能抢答器设计 摘要 本课题设计一款基于 EDA 的智能抢答器,采用 VHDL 硬件描述语言编程...

基于vhdl语言的16位抢答器.doc

基于vhdl语言的16位抢答器 - EDA 技术实用教程期末 设计报告 用 VHDL 实现抢答器设计 专业班级:电气工程及其自动化 102 姓时学名: 间: 号:_ 田宝举 _2012....

基于vhdl的八路抢答器设计eda课程设计大学毕设论文.doc

基于vhdl的八路抢答器设计eda课程设计大学毕设论文 - 第一章 EDA 技术

基于EDA的智力抢答器的课程设计.doc

基于EDA的智力抢答器的课程设计_工学_高等教育_教育...译码显示、Verilog HDL 语言的编程技术,阐明设计原理...课程设计让我加深理解了 VHDL 程序设计的步骤和原理...

VHDL语言智能抢答器实验设计.doc

河南农业大学 课程设计报告设计题目:智能抢答器的 语言实验报告 设计题目:智能抢答器VHDL 语言实验报告 学专学班姓院: 业: 号: 级: 名: 理学院 电子信息...

eda课程设计 抢答器.doc

主要是应用在数字VHDL 翻译成中文就是超高速集成电路硬件描述语言, 路的设计...5 课程设计说明书 3 智能抢答器系统的设计与实现 3.1 抢答器系统设计要求本文...

基于VHDL的智能抢答器.doc

基于VHDL的智能抢答器 - 用 VHDL 语言设计智能抢答器鉴别和计时模块 摘要 伴随着集成电路(IC)技术的发展,EDA 技术已经成为现代电子设计的发展趋势, 并在 各大...

基于FPGA智力竞赛抢答器的设计(1).pdf

基于FPGA智力竞赛抢答器的设计(1) - 2008 年第 12 期 (总第 1