verilog抢答器最经典.docx
- 文档编号:6576729
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:16
- 大小:192.43KB
verilog抢答器最经典.docx
《verilog抢答器最经典.docx》由会员分享,可在线阅读,更多相关《verilog抢答器最经典.docx(16页珍藏版)》请在冰豆网上搜索。
verilog抢答器最经典
抢答器设计
题目:
智能电子抢答器
专业:
电子信息工程
2011年1月7日
摘要
抢答器是在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答者的机器。
电子抢答器的中心构造一般都是由抢答器由单片机以及外围电路组成。
本设计是以四路抢答为基本概念。
从实际应用出发,利用电子设计自动化(EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。
它以VerilogHDL硬件描述语言作为平台,结合动手实验而完成的。
它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。
本抢答器的电路主要有四部分组成:
鉴别锁存电路、FPGA主芯片EP1C3T144C8电路、计分电路以及扫描显示模块的电路,并利用QuartusII工具软件完成了VerilogHDL源程序编写和硬件下载。
这个抢答器设计基本上满足了实际比赛应用中的各种需要。
在实际中有很大的用途。
关键词:
抢答器QuartusIIVerilogHDLEP1C3T144C8
1引言
硬件描述语言HardwareDescriptionLanguage是硬件设计人员和电子设计自动化EDA工具之间的界面。
其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。
即利用计算机的巨大能力对用VerilogHDL或VHDL建模的复杂数字逻辑进行仿真,然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表Netlist,根据型仿真验证无误后用于制造ASIC芯片或写入EPLD和FPGA器件中。
VerilogHDL是一种硬件描述语言(HDL:
HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。
1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。
1990年CADENCE公司公开发表了VerilogHDL,并成立LVI组织以促进VerilogHDL成为IEEE标准,即IEEEStandard1364-1995.
VerilogHDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间很快的学习和掌握,因而可以把VerilogHDL容安排在与ASIC设计等相关课程部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。
2关于课程设计
2.1 课程设计目的
理论联系实际,巩固和运用所学课程,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个智力抢答器的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
为了进一步了解计算机组成原理与系统结构,深入学习EDA技术,用VerilogHDL语言去控制将会使我们对本专业知识可以更好地掌握。
2.2 课程设计的容
1 用EDA实训仪的I/O设备和PLD芯片实现智能电子抢答器的设计
2 智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答器
3 电路具有第一抢答信号的鉴别和锁存功能。
在主持人将复位按钮按下后开始抢答,并用EDA实训仪上面的八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”的响声,并维持3秒钟,此时电路自锁,不再接受其他选手的抢答信号
4设置计分电路,每组开始时设置为6分,抢答后由主持人计分,答对一次加1分,错一次减1分。
3开发工具简介
3.1 EDA技术
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
3.2 硬件描述语言—VerilogHDL
VerilogHDL是硬件描述语言的一种,用于数字电子系统设计。
该语言是1983年由GDA(GateWayDesignAutomation)公司的PhilMoorby首创的。
PhilMoorby后来成为Verilog-XL的主要设计者和Cadence公司(CadenceDesignSystem)的第一个合伙人。
在1984-1985年间,PhilMoorby设计出第一个名为Verilog-XL的仿真器;1986年,他对VerilogHDL的发展又一次作出了巨大贡献——提出了用于快速门级仿真的XL算法。
随着Verilog-XL算法的成功,VerilogHD语言得到迅速发展。
1989年,Cadence公司收购GDA公司,VerilogHDL语言成为了Cadence公司的私有财产。
1990年,Cadence公司决定公开VerilogHDL语言,并成立了OVI(OpenVerilogInternational)组织,并负责促进VerilogHDL语言的发展。
基于VerilogHDL的优越性,IEEE于1995年制定了VerilogHDL的IEEE标准,即VerilogHDL1364-1995;2001年发布了VerilogHDL1364-2001标准。
3.3 VerilogHDL的设计流程一般是:
1.文本编辑:
用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。
通常VerilogHDL文件保存为.v文件。
2.功能仿真:
将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只有在布线完成之后,才进行时序仿真)。
3.逻辑综合:
将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。
逻辑综合软件会生成.edf(EDIF)的EDA工业标准文件。
(最好不用MAX+PLUSII进行综合,因为只支持VHDL/VerilogHDL的子集)
4.布局布线:
将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到CPLD/FPGA。
5.时序仿真:
需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序(也叫后仿真)。
3.4FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
--2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX公司的Virtex系列、TI公司的TPC系列、ALTERA公司的Stratix系列等。
FPGA是由存放在片RAM中的程序来设置其工作状态的,因此,工作时需要对片的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
4 设计过程
4.1 系统设计要求
本设计的具体要:
(1)设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。
(2)电路具有第一抢答信号的鉴别和锁存功能。
在主持人按下复位按钮后,若参加者按抢答开关,则该组指示灯亮。
此时,电路应具备自锁功能,使别组的抢答开关不起作用。
(3)自锁后,用八段数码管显示抢答者的序号,同时扬声器发出“嘟嘟”并且持续3秒。
(4)设置计分电路。
每组在开始时预置成6,抢答后由主持人计分,答对一次加1,否则减1分。
4.2 系统设计方案
根据系统设计要求可知,系统的输入信号有:
各组的抢答按钮1、2、3、4,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:
四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
本系统应具有的功能有:
第一抢答信号的鉴别和锁存功能;数码管显示;计分控制。
根据以上的分析,我们可将整个系统分为四个主要模块:
抢答鉴别模块;抢答计分模块;显示译码模块;EP1C3T144C8接口模块。
抢答原理图
显示蜂鸣原理图
计分显示模块(由于板大小限制,只显示两组)pcb
EP1C3T144C8接口原理图
系统的工作原理如下:
当主持人按下使能端EN时,抢答器开始工作,1、2、3、4四位抢答者谁最先抢答成功则此选手的台号灯(LED1~LED4)将点亮,并且主持人前的组别显示数码管讲显示出抢答成功者的台号;接下来主持人提问,若回答正确,主持人按加分按钮,抢答积分模块将给对应的组加分,并将组的总分显示在对应的选手计分数码管上。
在此过程中。
完成第一轮抢答后,主持人清零,接着重新开始,步骤如上。
4.3 主要VHDL源程序
moduleYangLu(clk,inputEn,inputL1,inputL2,inputL3,inputL4,Sig1,Sig2,Sig3,Sig4,Led,Buzzer);
//一开始时声明有哪些端口
//输入口
inputclk,inputEn,inputL1,inputL2,inputL3,inputL4;
//输出口
outputSig1,Sig2,Sig3,Sig4;
output[0:
7]Led;
outputBuzzer;
//在输出口配置个寄存器,以便运算
regSig1=1'b1,Sig2=1'b1,Sig3=1'b1,Sig4=1'b1;
reg[0:
7]Led;
regBuzzer;
//配置寄存器,EnFlat是表明开始抢答的标志位
regEnFlat=1'b0;
//BuClk是蜂鸣器的标志位
regBuClk=1'b0;
//BuL是做蜂鸣器的延时用
reg[0:
7]BuL=8'd0;
always(posedgeclk)//捕捉时钟
begin
//初始化各按键并开始抢答
if(inputEn==1'b0)
begin
//初始化各个标志位和参数
EnFlat=1'b1;
//各个按键对应的LED控制端
Sig1=1'b1;
Sig2=1'b1;
Sig3=1'b1;
Sig4=1'b1;
//静态数码管的控制端,有8位
Led=8'b11111111;
BuClk=1'b0;
//蜂鸣器的控制管脚,低电平为发声音
Buzzer=1'b1;
end
//开始抢答
if(EnFlat==1'b1)
begin
//如果按键1按下
if(inputL1==1'b0)
begin
//禁止其他选手抢答
EnFlat=1'b0;
//对应的LED点亮
Sig1=1'b0;
//静态数码管显示序号'1'
Led=8'b01101111;
//指示蜂鸣器发声
BuClk=1'b1;
end//如果按键2按下
elseif(inputL2==1'b0)
begin
//禁止其他选手抢答
EnFlat=1'b0;
Sig2=1'b0;
Led=8'b00011010;
BuClk=1'b1;
end//如果按键3按下
elseif(inputL3==1'b0)
begin
//禁止其他选手抢答
EnFlat=1'b0;
Sig3=1'b0;
Led=8'b01001010;
BuClk=1'b1;
end//如果按键4按下
elseif(inputL4==1'b0)
begin
//禁止其他选手抢答
EnFlat=1'b0;
Sig4=1'b0;
Led=8'b01101001;
BuClk=1'b1;
end
end
//当蜂鸣器标志位置1时
//进入此蜂鸣器处理程序
if(BuClk==1'b1)
begin
//蜂鸣器发声
Buzzer=1'b0;
//延时变量加1
BuL=BuL+8'd1;
//当到达延时的时间时关掉蜂鸣器
if(BuL==8'd255)
begin
//延时变量复位
BuL=8'd0;
//蜂鸣器标志位复位
BuClk=1'b0;
//蜂鸣器停掉
Buzzer=1'b1;
end
end
end
endmodule
5
静态调试
静态调试是在不加电压即电路不工作的情况下进行的测试。
参照所画的PCB图,主要检查电路板是否完好。
该导通是否已导通,无短路现象,检查元器件是否使用正确,检查焊点是否有虚焊。
检查无误后,方可加电使其工作。
6总结
本次实训为期两周,分组选题。
由于种种原因,我们两个人选择了3个人一组的题目。
确定下题目后,首先就是方案的确定。
经过老师的辅导、同学的帮助、翻阅相关资料,综合各方面的考虑,最后确定用FPGA来实现电子抢答器的功能。
FPGA首先要有最主要的芯片,感童有为老师提供的EP1C3T144C8芯片和接口电路模块,这是本次实训的基础。
但是要了解EP1C3T144C8芯片的构造,需要查看大量的英文资料,我并没有气馁,一个管脚一个管脚的对比,终于弄清楚了实现功能的大体思路。
然后就是学习VerilogHDL语言,虽然以前学过,但是时间比较久了,差不多都忘了,用了几天时间熟悉了VerilogHDL源程序的编写。
最后是硬件的调试,这是个漫长的过程,EP1C3T144C8芯片的接口也非常的繁杂,最后我坚持了下来。
通过这次实训,我对VerilogHDL有了深入的认识。
同时也对EDA产生了更加浓厚的兴趣。
本次实训,也检验了自己的能力,加强了逻辑思维的能力,不过我也发现了自身存在的一些问题,比如在protel软件的应用上还有很多不成熟不理解的地方,但是相信在以后的学习生活中我可以很好的与予改正,取得更好的成绩,也希望日后老师能不厌其烦的指导我,给予我更大的支持。
辞
本论文设计在各位老师的悉心指导和严格要求下业已完成,从选题到具体的实训和写作过程,无不凝聚着老师们的心血和汗水。
在我实训期间,老师为我提供了种种专业知识上的指导和一些富于创造性的建议,老师们严谨的态度使我深受感动,没有这样的帮助和关怀和熏,我不会这么顺利的完成实训任务。
在此向老师们表示深深的感和崇高的敬意!
这次实训还要感黄钟鸣同学的热情帮助,是他让我在短时间熟悉了VerilogHDL源程序的编写。
在硬件调试阶段,也有很多同学给予了帮助,在此你们了。
我还要借此机会向给予我诸多教诲和帮助的各位老师表示由衷的意,感他们的辛勤栽培。
不积跬步何以至千里,各位任课老师认真负责,在他们的悉心帮助和支持下,我能够很好的掌握和运用专业知识,并在实训中得以体现,顺利完成实训任务。
同时,在论文写作过程中,我还参考了有关的书籍和论文,在这里一并向有关的作者表示意。
我还要感同组的各位同学以及我的各位室友,在这段时间里,你们给了我很多的启发,提出了很多宝贵的意见,对于你们帮助和支持,在此我表示深深地感!
参考文献
1 谭会生,昌凡.EDA技术及应用.第二版.电子科技大学,2009
2 大社,基于QuartusII的FPGA/CPLD设计实例精解,电子工业,2010
3 国洪,胡辉,明山.EDA技术与实验.机械工业,2009
4 西勒提(MichaelD.Ciletti),VerilogHDL高级数字设计,电子工业,2010
5 建清.从零开始学CPLD和Verilog.HDL编程技术,国防工业,2007
6 巴斯克,夏宇闻,甘伟译.VERILOGHDL入门,航空航天大学,2010
7王港元等,电子技能基础(第二版),大学,2001
附录
moduleYangLu(clk,inputEn,inputL1,inputL2,inputL3,inputL4,Sig1,Sig2,Sig3,Sig4,Led,Buzzer);
inputclk,inputEn,inputL1,inputL2,inputL3,inputL4;
outputSig1,Sig2,Sig3,Sig4;
output[0:
7]Led;
outputBuzzer;
regSig1=1'b1,Sig2=1'b1,Sig3=1'b1,Sig4=1'b1;
reg[0:
7]Led;
regBuzzer;
regEnFlat=1'b0;
regBuClk=1'b0;
reg[0:
7]BuL=8'd0;
always(posedgeclk)//捕捉时钟
begin
if(inputEn==1'b0)
begin
EnFlat=1'b1;
Sig1=1'b1;
Sig2=1'b1;
Sig3=1'b1;
Sig4=1'b1;
Led=8'b11111111;
BuClk=1'b0;
Buzzer=1'b1;
end
if(EnFlat==1'b1)
begin
if(inputL1==1'b0)
begin
EnFlat=1'b0;
Sig1=1'b0;
Led=8'b01101111;
BuClk=1'b1;
end
elseif(inputL2==1'b0)
begin
EnFlat=1'b0;
Sig2=1'b0;
Led=8'b00011010;
BuClk=1'b1;
end
elseif(inputL3==1'b0)
begin
EnFlat=1'b0;
Sig3=1'b0;
Led=8'b01001010;
BuClk=1'b1;
end
elseif(inputL4==1'b0)
begin
EnFlat=1'b0;
Sig4=1'b0;
Led=8'b01101001;
BuClk=1'b1;
end
end
if(BuClk==1'b1)
begin
Buzzer=1'b0;
BuL=BuL+8'd1;
if(BuL==8'd255)
begin
BuL=8'd0;
BuClk=1'b0;
Buzzer=1'b1;
end
end
end
endmodule
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- verilog 抢答 经典