八路抢答器EDA课程设计VHDL.docx

上传人:b****7 文档编号:9497024 上传时间:2023-02-05 格式:DOCX 页数:22 大小:559.09KB
下载 相关 举报
八路抢答器EDA课程设计VHDL.docx_第1页
第1页 / 共22页
八路抢答器EDA课程设计VHDL.docx_第2页
第2页 / 共22页
八路抢答器EDA课程设计VHDL.docx_第3页
第3页 / 共22页
八路抢答器EDA课程设计VHDL.docx_第4页
第4页 / 共22页
八路抢答器EDA课程设计VHDL.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

八路抢答器EDA课程设计VHDL.docx

《八路抢答器EDA课程设计VHDL.docx》由会员分享,可在线阅读,更多相关《八路抢答器EDA课程设计VHDL.docx(22页珍藏版)》请在冰豆网上搜索。

八路抢答器EDA课程设计VHDL.docx

八路抢答器EDA课程设计VHDL

第一章EDA技术简介

EDA在通信行业(电信)里的另一个解释是企业数据架构,EDA给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。

  20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。

在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。

这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

  EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计进行八路抢答器的系统,大量工作可以通过计算机完成,并可以将抢答器从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

第二章八路抢答器设计目的和要求

第一节设计目的

学习ALTERA公司的FPGA/CPLD的结构、特点和性能。

学习集成开发软件MAX+plusII/QuartusII的使用及设计过程。

熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。

根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。

第二节设计具体要求及功能

在所选择器件内完成八路抢答器的设计,要求设计完成后芯片具有抢答器的全部功能、包括显示和操作接口。

抢答器要求有八路抢答输入,抢答逻辑设计合理(具有抢答锁定),抢答编号显示,抢答成功指示,抢答完成后状态复位。

在相应的器件平台上完成设计的输入、编译、综合或适配通过。

8路抢答器控制系统是娱乐活动中经常使用的重要基础设备之一,根据抢答要求,系统所需实现的功能如下:

(1)主持人按键清零,数码显示0,蜂鸣器不叫,进入抢答状态。

(2)主持人发出开始命令,8人开始抢答。

其中一人先按下抢答键,蜂鸣器发出鸣叫,数码显示该人号码,其他人再按键,系统不再响应,直至主持人按键清零,下一次抢答开始。

 

第三章设计思路及系统结构

第一节八路抢答器控制系统的设计思路与功能

抢答器同时供8名选手或8个代表队比赛,分别用8个按钮[a1]~[a8]。

设置一个系统清除和抢答控制开关Reset,该开关由主持人控制。

抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,扬声器发出声响提示,数码显示选手号码。

其他人再按键,系统进行了优先锁存,不再响应,优先抢答选手的编号一直保持到主持人将系统清除为止,下一次抢答开始。

扩展功能:

该电路具有犯规报警功能。

当主持人未按下开关开始抢答前,参赛选手若按下开关,则抢答系统发出蜂鸣声报警并显示犯规组别。

第二节抢答器的工作原理简介

如图2-1所示为抢答器的结构框图,它由主体电路和扩展电路两部分组成。

主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。

扩展电路完成检测数码管工作情况。

其工作原理为:

接通电源后,主持人将开关拨到"清除"状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置于"开始"状态,宣布"开始"抢答器工作。

定时器倒计时,扬声器给出声响提示。

选手在定时时间内抢答时,抢答器完成:

优先判断、编号锁存、编号显示、扬声器提示。

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次操作"清除"和"开始"状态开关。

图2-1抢答器结构框图

第三节抢答器的工作流程

图2-2

抢答器的基本工作原理:

在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。

在整个抢答器工作过程中,显示电路、语音电路等还要根据现场的实际情况向外电路输出相应信号。

抢答器的工作流程分为、系统复位、正常流程、犯规流程等几部分,如图2-2所示。

 

第四章抢答器的电路设计

第一节抢答器的总体结构

如图4-1所示为总体方框图。

接通电源后,后台工作人员将检测开关S置“检测”状态,数码管在正常清除下,显示“

”;当后台工作人员将检测开关S置“抢答”状态,主持按系统清除按键,抢答器处于禁止状态,编号显示器灭灯;主持人松开,宣布“开始”,抢答器工作。

选手按动抢答按键,抢答器完成:

优先判断、编号锁存、编号显示。

当一轮抢答之后,优先抢答选手的编号一直保持到主持人将系统清除为止。

如果再次抢答必须由主持人再次按动系统清除按键。

图4-1

第二节优先判断与编号锁存电路

优先判断与编号锁存电路如图4-2所示。

电路选用优先编码器74LS148和锁存器74LS279来完成。

该电路主要完成两个功能:

一是分辨出选手按键的先后,并锁存优先抢答者的编号;二是禁止其他选手按键,其按键操作无效。

工作过程:

系统清除按键按动时,74LS279的四个RS触发器的置0端均为0,使四个触发器均被置0。

1Q为0,使74LS148的使能端=0,74LS148处于允许编码状态,同时1Q为0,使74LS48的灭灯输入端=0,数码管无显示。

这时抢答器处于准备抢答状态。

当系统清除按键松开时,抢答器处于等待状态。

当有选手将按键开关按下时,抢答器将接受并显示抢答结果,假设按下的是S4,则74LS148的编码输出为011,此代码送入74LS279锁存后,使4Q3Q2Q=100,亦即74LS148的输入为0100;又74LS148的优先编码标志输出为0,使1Q=1,即=1,74LS48处于译码状态,译码的结果显示为“4”。

同时1Q=1,使74LS148的=1,74LS148处于禁止状态,从而封锁了其他按键的输入。

此外,当优先抢答者的按键松开再按下时,由于仍为1Q=1,使=1,74LS148仍处于禁止状态,确保不会接受二次按键时的输入信号,保证了抢答者的优先性。

(74LS148为8线-3线优先编码器,表1为其真值表,图3为逻辑图;74LS279为四个/R-/S锁存器,表2为其真值表,图4为逻辑图。

 

图4-2

Inputs

Outputs

H

Q0

H

L

Notsure

 

第五章抢答器的单元电路设计

简易逻辑数字抢答器由主体电路与扩展电路组成。

优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。

通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。

现简单介绍抢答器设计中的抢答电路、定时电路、报警电路、时序控制电路、显示及译码电路。

第一节抢答器设计中的抢答电路

参考电路如图5-1所示。

该电路完成两个功能:

一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。

工作过程:

开关S置于“清除”端时,RS触发器的

端均为0,4个触发器输出置0,使74LS148的

=0,使之处于工作状态。

当开关S置于“开始”时,抢答器处

经RS锁存后,1Q=1,

=1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为“5”。

此外,1Q=1,使74LS148

=1,处于禁止状态,封锁其他按键的输入。

当按键松开即按下时,74LS148的

此时由于仍为1Q=1,使

=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。

如有再次抢答需由主持人将S开关重新置于“清除”然后再进行下一轮抢答。

(LS148为8线-3线优先编码器。

图5-1

第二节抢答器设计中的定时电路

由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。

可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如图5-2所示。

本设计是以555构成震荡电路,由74LS192来充当计数器,构成抢答器的倒计时电路。

该电路简单,无需用到晶振,芯片都是市场上容易购得的。

设计功能完善,能实现直接清零、启动。

图5-2

第三节抢答器设计中的报警电路

由555定时器和三极管构成的报警电路如图5-3所示。

其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。

PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。

图5-3

第四节抢答器设计中的时序控制电路

时序控制电路是抢答器设计的关键,它要完成以下三项功能:

①主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。

②当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。

③当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。

根据上面的功能要求,设计的时序控制电路如图5-4所示。

图中,门G1的作用是控制时钟信号CP的放行与禁止,门G2的作用是控制74LS148的输人使能端。

图4-3的工作原理是:

主持人控制开关从"清除"位置拨到"开始"位置时,来自于图4-1中的74LS279的输出1Q=0,经G3反相,A=1,则时钟信号CP能够加到74LS192的CPD时钟输入端,定时电路进行递减计时。

同时,在定时时间未到时,则"定时到信号"为1,门G2的输出

=0,使74LS148处于正常工作状态,从而实现功能①的要求。

当选手在定时时间内按动抢答键时,1Q=1,经G3反相,A=0,封锁CP信号,定时器处于保持工作状态;同时,门G2的输出

=1,74LS148处于禁止工作状态,从而实现功能②的要求。

当定时时间到时,则"定时到信号"为0,

=1,74LS148处于禁止工作状态,禁止选手进行抢答。

同时,门G1处于关门状态,封锁CP信号,使定时电路保持00状态不变,从而实现功能③的要求。

集成单稳触发器74LS121用于控制报警电路及发声的时间。

图5-4

第五节显示与译码电路

七段显示译码器与数码管如下图7段显示译码所示,74LS48将锁存器74LS279的信号译码,输出给数码管。

当后台工作人员将S置于GND,

=0,使灯测试输入端(图中3号)=1,这时测试数码管工作情况;当后台工作人员将S置于Vcc,

=1,使灯测试输入端(图中3号)=1,这时正常译码。

(74LS48为4线-七段译码器/驱动器,图4-6为逻辑图)

7段显示译码器与数码管

74LS48逻辑图

 

第六章基于VHDL的实体设计

MAX+plusⅡ是美国ALTERA公司提供的FPGA/CPLD开发集成环境,该公司是世界最大的可编程逻辑器件供应商之一。

MAX+plusⅡ界面友好,使用便捷,被誉为业界最容易的EDA软件。

下面详细论述使用MAX+plusⅡ软件设计8路抢答器控制系统的过程。

本设计采用用Altera公司MAX7000S系列的EPM7128SLC84-15来实现。

(校EDA实验室EDA-V实验箱中所用CPLD芯片)。

第一节程序设计

一编码程序:

LIBRARYieee;

USEchangeIS

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""=>m<="0010";

when""=>m<="0011";

when""=>m<="0100";

when""=>m<="0101";

when""=>m<="0110";

when""=>m<="0111";

when""=>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;

二锁存程序:

LIBRARYieee;

USElockIS

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;

三抢答成功扬声器发声程序:

LIBRARYieee;

USEcntIS

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;

 

四数码管显示管

LIBRARYieee;

USEdisplayIS

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<="01111101";

WHEN"0111"=>BCD<="00000111";

WHEN"1000"=>BCD<="01111111";

WHEN"1001"=>BCD<="01101111";

WHENOTHERS=>BCD<="00000000";

ENDCASE;

ENDPROCESS;

ENDa;

第二节编译管脚设置

程序输入完成后然后选择用于编程的目标芯片:

选择菜单“Assign”→“Device”,窗口中的DeviceFamily是器件序列栏,先在此栏中选择MAX7000S。

然后选择EMP7128SLC84-15器件,按OK,就可以进行编译了,经“MAX+PLUSEII”中的“Compiler”菜单编译,以验证设计结果是否符合要求,如果有问题,则返回原设计文件再次进行修改,直到正确为止。

编译无误后经“MAX+PLUSEII”中的“FLOORPLANEDITOR”菜单,进行输入、输出管脚设置,将元件端口放置到EPM7128SLC84-15芯片适当的I/O口,并用手工调整按图十三所示设置。

第三节仿真

编译成功后进行仿真。

首先建立波形文件。

波形文件建好并存盘后。

选择菜单“Max+plusII”→“simulator”,启动仿真操作,结束后观察仿真波形(图十四所示)。

从仿真波形看,符合设计要求。

图十四顶层仿真波形图

s1,s2,s3,s4,s5,s6,s7,s8输入

q1,q2,q3,q4,q5,q6,q7,q8锁存输出

M编码输出和BCD显示输入

clk时钟

clr0,清零1为开始抢答

en抢答成功

BCD数码管显示输出

心得体会

在课程设计的这段时间里,我认为收获还是很多的,不但进一步掌握了数字电子技术的基础知识及一门专业仿真软件的基本操作,还提高了自己的设计能力及动手能力,同时对于智能抢答器来了个系统的总结。

更多的是让我看清了自己,明白了凡事需要耐心,实践是检验学习的唯一标准。

理论知识的不足在这次课设中表现的很明显。

这将有助于我今后的学习,端正自己的学习态度,从而更加努力的学习。

总之,通过本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力。

使我在各方面都得到了锻炼,非常感谢我的同组同学,也非常感谢我们的指导老师,使我们这次的课程设计任务圆满完成。

 

参考文献

1.康华光主编,《电子技术基础-数字部分》,高等教育出版社,1998。

2.谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001

3.潘松等主编,《EDA技术实用教程》,科学出版社,2006

4.雷伏容主编,《VHDL电路设计》,清华大学出版社,2006

5.Charles等着,《数字系统设计与VHDL》,电子工业出版社

6.丁建伟.《抢答器电路设计》[J].兰州工业高等专科学校学报,2008,(04).13-17.

7.王冬梅,张建秋.《八路抢答器设计与实现》[J].?

佳木斯大学学报(自然科学版),2009,(06).22-26.

8.蔡明生,黎福海,徐文玉.电子设计.北京:

高等教育出版社.2004.

9.王树昆,赵晓巍,EDA技术在教学中的应用.吉林工程技术师范学院学报,2003;19(9):

4-7

 

附录

元器件清单:

74LS48

3个

电阻68KΩ

1个

74LS121

1个

电阻510Ω

2个

74LS148

1个

电容10uF

2个

74LS192

2个

电容

1个

74LS279

1个

电容100uF

1个

NE555

2个

发光二极管

2个

电阻1KΩ

1个

按键开关

9个

电阻10KΩ

9个

共阴数码管

3个

电阻15KΩ

1个

74LS00

1个

电阻KΩ

1个

74LS11

1个

电阻KΩ

1个

三极管3DG12

1个

电阻100KΩ

1个

总程序:

LIBRARYIEEE;

USEtotalIS

PORT(clk:

INSTD_LOGIC;

clr:

INSTD_LOGIC;

s1,s2,s3,s4,s5,s6,s7,s8:

INSTD_LOGIC;

sound1:

OUTSTD_LOGIC;

BCD:

OUTSTD_LOGIC_vector(7downto0);

ENDtotal;

ARCHITECTUREtotal_runOFtotalIS

COMPONENTchange

PORT(q1,q2,q3,q4,q5,q6,q7,q8:

INSTD_LOGIC;

clr:

INSTD_LOGIC;

m:

OUTSTD_LOGIC_vector(3downto0);

en:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTcnt

PORT(clk,en:

inSTD_LOGIC;

sound1:

outSTD_LOGIC);

ENDCOMPONENT;

COMPONENTdisplay

PORT(l:

INSTD_LOGIC_VECTOR(3downto0);

BCD1:

OUTSTD_LOGIC_VECTOR(7downto0));

ENDCOMPONENT;

signalen:

STD_LOGIC;

signalm:

STD_LOGIC_vector(3downto0);

signalq1,q2,q3,q4,q5,q6,q7,q8:

STD_LOGIC;

BEGIN

u1:

lockPORTMAP(s1,s2,s3,s4,s5,s6,s7,s8,clr,q1,q2,q3,q4,q5,q6,q7,q8);

u2:

changePORTMAP(q1,q2,q3,q4,q5,q6,q7,q8,clr,m,en);

u3:

cntPORTMAP(clk,en,sound1);

u4:

displayPORTMAP(m,BCD);

ENDtotal_run;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1