八路抢答器的研究课程设计.docx
- 文档编号:555514
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:14
- 大小:140.50KB
八路抢答器的研究课程设计.docx
《八路抢答器的研究课程设计.docx》由会员分享,可在线阅读,更多相关《八路抢答器的研究课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
八路抢答器的研究课程设计
摘要I
1.FPGA简介1
2.技术要求与具体功能2
2.1技术要求2
2.2具体功能2
2.EDA技术简介3
3.系统设计思路4
3.1原理组成框图4
3.2硬件系统设计4
4.基于VHDL语言的软件实现6
4.1程序设计6
4.1.1锁存程序6
4.1.2编码程序8
4.1.3抢答成功扬声器发声程序10
4.1.4数码管显示电路11
4.2管脚设置13
5.心得体会15
参考文献16
附录17
1.FPGA简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
2.技术要求与具体功能
2.1技术要求
1.在所选择器件内完成八路抢答器的设计,要求设计完成后芯片具有抢答器的全部功能、包括显示和操作接口。
2.抢答器要求有八路抢答输入,抢答逻辑设计合理(具有抢答锁定),抢答编号显示,抢答成功指示,抢答完成后状态复位。
3.在相应的器件平台上完成设计的输入、编译、综合或适配通过。
2.2具体功能
1.设计制作一个竞赛抢答器,共设8个组别每组控制一个抢答开关,分别为sl,s2,s3,s4,s5,s6,s7,s8。
2.设置主持人控制键Reset,用于控制整个系统清零和抢答
有效控制。
3.主持人发出开始命令,8人开始抢答。
其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。
2.EDA技术简介
随着电子技术的发展,可编程逻辑器件(PLD)的出现,使得电子系统的设计者利用EDA(电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC)器件。
可编程逻辑器件是一种半导体集成器件的半成品。
在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,对这些基本器件适当地连接,就可以完成某个电路或系统的功能。
8路抢答器控制系统是工厂、学校和电视台等单位举办各种
智力竞赛等娱乐活动中经常使用的重要基础设备之一。
目前设计抢答器的方法很多,例如用传统的PCB板设计、用PIC设计或者用单片机设计。
而用VHDL可以更加快速、灵活地设计出符合各种要求的抢答器,优于其他设计方法,使设计过程达到高度自动化。
本文介绍的八路数显抢答器基于VHDL语言、以EDA技术作
为开发手段、采用CPLD(复杂的可编程逻辑器件)作为控制核心
设计而成。
与传统设计相比较,不仅简化了接口和控制,也提高了系统的整体性能和工作可靠性,具有电路简单、成本低廉、操作方便、灵敏可靠等优点。
3.系统设计思路
3.1原理组成框图
根据的功能要求,设计系统结构框图,见图1所示。
图中脉冲振荡电路用于产生标准时钟信号,为系统提供CLK信号;数码显示部分采用共阴极7位二进制输入8字管。
控制部分是EDA设计的核心部分,用硬件描述语言(VHDL)来描述数字系统的结构、行为和功能,采用“自顶向下”设计方法,将电路的硬件设计转变为软件设计。
3.2硬件系统设计
VHDL语言设计的出现从根本上改变了以往数字电路的设计模式,使电路由硬件设计转变为软件设计,使电子设计的核心转化为VHDL语言的编程设计,这样提高了设计的灵活性,使电路
的设计复杂程度大大降低。
1.FPGA最小系统电路:
FPGA正常工作时的基本电路,由时钟和复位电路组成。
2.键盘输入电路:
用1×8矩阵键盘组成8个人的抢答按钮。
同时包括Start,Reset三个由主持人控制的单独按钮。
3.显示模块:
用移位寄存器74HC164驱动2位共阴数码管显示;数码管要显示的数据通过74HC164串行数据端口输入。
4报警及相关信息显示:
蜂鸣器电路和LED灯显示相关状态信息指示电路。
图2八路抢答器原理图
4.基于VHDL语言的软件实现
4.1程序设计
采用Ma-xplus||软件的文本输入功能输入源程序,编译通过后,生成波形图,并对波形图进行分析。
4.1.1锁存程序
本程序的s1--s8表示输入,q1,q2,q3,q4,q5,q6,q7,q8表锁存输出,当clr=0时输出全为1,当clk=1时输出等于输入,程序如下所示:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.std_logic_unsigned.ALL;
ENTITYlockIS
PORT(s1:
INSTD_LOGIC;
s2:
INSTD_LOGIC;
s3:
INSTD_LOGIC;
s4:
INSTD_LOGIC;
s5:
INSTD_LOGIC;
s6:
INSTD_LOGIC;
s7:
INSTD_LOGIC;
s8:
INSTD_LOGIC;
clr:
INSTD_LOGIC;
q1,q2,q3,q4,q5,q6,q7,q8:
OUTSTD_LOGIC);
ENDlock;
ARCHITECTUREaOFlockIS
BEGIN
process(s1,s2,s3,s4,s5,s6,s7,s8,clr)
begin
if(clr='0')then
q1<='1';
q2<='1';
q3<='1';
q4<='1';
q5<='1';
q6<='1';
q7<='1';
q8<='1';
else
q1<=s1;
q2<=s2;
q3<=s3;
q4<=s4;
q5<=s5;
q6<=s6;
q7<=s7;
q8<=s8;
endif;
endprocess;
ENDa;
图3锁存时序
4.1.2编码程序
M数组是编码输出信号,其值是根据由变量数组temp确定temp数组的各位对应的是q,如果敏感信号q1,q2,q3,q4,q5,q6,q7,q8,中某信号有变化则会执行进程,从而得出对应的m数组,程序如下所示:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYchangeIS
PORT(q1,q2,q3,q4,q5,q6,q7,q8:
INSTD_LOGIC;
clr:
INSTD_LOGIC;
m:
OUTSTD_LOGIC_vector(3downto0);
en:
OUTSTD_LOGIC);
ENDchange;
ARCHITECTUREaOFchangeIS
BEGIN
process(q1,q2,q3,q4,q5,q6,q7,q8,clr)
variabletemp:
STD_LOGIC_vector(7downto0);
begin
temp:
=q1&q2&q3&q4&q5&q6&q7&q8;
casetempis
when"01111111"=>m<="0001";
when"10111111"=>m<="0010";
when"11011111"=>m<="0011";
when"11101111"=>m<="0100";
when"11110111"=>m<="0101";
when"11111011"=>m<="0110";
when"11111101"=>m<="0111";
when"11111110"=>m<="1000";
whenothers=>m<="1111";
endcase;
en<=temp(7)ANDtemp(6)ANDtemp(5)ANDtemp(4)ANDtemp(3)ANDtemp
(2)ANDtemp
(1)ANDtemp(0)ANDclr;
endprocess;
ENDa;
图4编码程序仿真波形
4.1.3抢答成功扬声器发声程序
若clk信号为上升沿,并且en信号为‘1’,那么输出信号sound1为‘1’,扬声器发声,程序如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.std_logic_unsigned.ALL;
ENTITYcntIS
PORT(clk,en:
inSTD_LOGIC;
sound1:
outSTD_LOGIC);
ENDcnt;
ARCHITECTUREaOFcntIS
BEGIN
process(en,clk)
begin
if(clk'eventandclk='1')then
if(en='1')then
sound1<='1';
else
sound1<='0';
endif;
endif;
endprocess;
ENDa;
图5扬声器发生程序仿真波形
4.1.4数码管显示电路
根据数组m的值生成对应的BCD码,然后送入数码管显示,对应程序如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.std_logic_unsigned.ALL;
ENTITYdisplayIS
PORT(m:
INSTD_LOGIC_VECTOR(3downto0);
BCD:
outSTD_LOGIC_VECTOR(7downto0));
ENDdisplay;
ARCHITECTUREaOFdisplayIS
BEGIN
PROCESS(m)
BEGIN
CASEmIS
WHEN"0000"=>BCD<="00111111";
WHEN"0001"=>BCD<="00000110";
WHEN"0010"=>BCD<="01011011";
WHEN"0011"=>BCD<="01001111";
WHEN"0100"=>BCD<="01100110";
WHEN"0101"=>BCD<="01101101";
WHEN"0110"=>BCD<="0111110
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八路 抢答 研究 课程设计