EDA课程设计论文--四人强大器设计.doc_第1页
EDA课程设计论文--四人强大器设计.doc_第2页
EDA课程设计论文--四人强大器设计.doc_第3页
EDA课程设计论文--四人强大器设计.doc_第4页
EDA课程设计论文--四人强大器设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA课程设计报告书 四人强大器设计 设计者 : 方草 李梦紫 指导老师 : 李敏老师 学 号 : 10387124 10387131 专业班级:10通信工程 湖北文理学院理工学院 2013.5目录一、摘要,关键字3二、正文32.1设计任务及要求32.2方案选择与论证32.3方案的原理框图及其说明42.4硬件选择42.5系统设计详述42.6系统仿真及分析 62.7下载测试及分析92.8收获体会、存在问题和进一步的改进意见等10三、参考文献10VHDL语言实现四人抢答器的设计 作者:方草 李梦紫 指导老师:李敏老师 (湖北文理学院理工学院)摘要:随着基于PLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。本文详细介绍EDA课程设计任务四人抢答器的设计的详细设计过程及结果,并总结出心得体会。关键字:EDA技术;VHDL语言;子模块;顶层模块;四人抢答器;EDA技术作为现代电子设计技术的核心,它依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑简化、逻辑分割、逻辑综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。详细介绍在QUARTUS II软件环境下开发基于VHDL语言四人抢答器的设计。二.正文 1.设计任务及要求 1.设计内容选用合适的可编程逻辑器件及外围电子元器件,设计一个四人抢答器,利用EDA 软件(QUARTUS )进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法和原理图输入法,并下载到EDA实验开发系统,连接外围电路,完成实际验证。2.设计要求(1)具有抢答功能。(2)具有鉴别功能。(3)具有控制及清零和使能功能。(4)具有倒计时功能。(5)具有显示功能(LED灯显示和数码管显示)。2.方案选择与论证数字系统的设计采用自顶向下、由粗到细, 逐步分解的设计方法, 最顶层电路是指系统的整体要求, 最下层是具体的逻辑电路的实现。自顶向下的设计方法将一个复杂的系统逐渐分解成若干功能模块, 从而进行设计描述, 并且应用EDA 软件平台自动完成各功能模块的逻辑综合与优化, 门级电路的布局, 再下载到硬件中实现设计。因此对于四人抢答器来说首先是鉴别功能和倒计时功能,然后能显示,附带功能是清零、使能。通过参考EDA课程设计指导书,有以下方案:1. 作为顶层文件有输入端口:时钟信号,清零按键,使能按键(两个),抢答按键;输出端口有:用于接数码管的八段码输出口,用以显示的LED灯端口。2. 底层文件分为:鉴别模块: 实现鉴别选手序列号的功能。计时模块:实现抢答倒计时和回答问题倒计时。报警模块:当遇到犯规报警。显示模块:有计数模块,选择模块和译码器模块构成,在视觉上实现三个数码管同时显示。 3方案的原理框图及其说明抢答按钮鉴别模块清零开关计时器选择电路译码电路报警使能控制时钟源LED显示计数模块高频时钟源 详细方框图顶层模块鉴别模块计时模块选择模块译码模块报警模块计数模块 层次模块图 以上为方案原理图,当清零无效抢答使能有效时,计时模块在时钟脉冲的作用下开始倒计时,当有人抢答另一个使能有效时,再进行新的倒计时,所有要显示的数据通过计数模块和选择模块模块共同组成的扫描功能由译码模块译码输出。4.硬件选择本次选用cyclone系列EP1C30QC208-2芯片。外部需接2个不同频率的时钟信号,及几个上升沿按键,几个LED灯显示,并接扬声器和译码器的数码管。以上均由EDA试验箱提供。5系统设计详述 1. 整个系统的顶层文件如下图所示。其中输入端口有: Clk用于jb模块、jishi模块和baojingqi模块的时序脉冲;Zxclk用做jsq的时序脉冲;Clr用于复位控制;A、B、C、D用于各选手输入控制端;EN1用于抢答使能;EN2用于回答问题使能;Selin用于选择数码管输入;输出端口: Dout6.0用于数码管显示输出; Light用于提醒有人抢答; Selout用于选择数码管输出; 2.引脚锁定见下图3.各子模块的源程序如下: Jb模块的源程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jb is port(clr,clk,en:in std_logic; a,b,c,d:in std_logic; a1,b1,c1,d1 : out std_Logic; states:out std_logic_vector(3 downto 0); warn:out std_logic);end jb ;architecture one of jb issignal st:std_logic_vector(3 downto 0);signal qq:bit; beginp1:process(a,clr,b,c,d,st,clk,qq) begin if clr=1 then warn=0;st=0000;states=0000;qq=0; elsif en=1 then if qq=0 then if clkevent and clk=1 then if (a=1 or st(0)=1)and not( st(1)=1 or st(2)=1 or st(3)=1 ) then st(0)=1;states=0001; qq=1; end if ; if (b=1 or st(1)=1)and not( st(0)=1 or st(2)=1 or st(3)=1 ) then st(1)=1;states=0010;qq=1; end if ; if (c=1 or st(2)=1)and not( st(0)=1 or st(1)=1 or st(3)=1 ) then st(2)=1;states=0011;qq=1; end if ; if (d=1 or st(3)=1)and not( st(0)=1 or st(1)=1 or st(2)=1 ) then st(3)=1;states=0100;qq=1; end if ; end if ; end if; end if ; warn=st(0) or st(1) or st(2) or st(3);a1=a;b1=b;c1=c;d1=d;end process p1;end one; jishi模块的源程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD LOGIC_UNSIGNED.ALL;ENTITY JISHI ISPORT(WARN,CLR,EN1,EN2,CLK:IN STD_LOGIC; QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); QB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY JISHI;ARCHITECTURE ART OF JISHI IS SIGNAL tmpa : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL tmpb : STD_LOGIC_VECTOR(3 DOWNTO 0); begin U1: process(CLK,CLR,EN1,EN2,TMPA,TMPB) BEGIN if clr=1 then tmpa=1001; tmpb=0000; ELSif CLKEVENT AND CLK=1 THEN IF EN1=1 THEN IF WARN=0 THEN IF TMPA=0000 THEN TMPA=0000; ELSE TMPA=TMPA-1; END IF; ELSE IF EN2=0 THEN tmpa=1001; tmpb=0010; ELSE IF TMPA=0000 THEN TMPA=1001; IF TMPB=0000 THEN TMPB=0010; ELSE TMPB=TMPB-1;END IF; ELSE TMPA=TMPA-1;END IF; END IF; end if; END IF; END IF; QA=TMPA;QB=TMPB; END PROCESS ; END ART; Baojingqi模块源程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BAOJINGQI ISPORT (CLR:IN STD_LOGIC; CLK :IN STD_LOGIC; TMPA,TMPB :IN STD_LOGIC_VECTOR (3 DOWNTO 0); ALM:OUT STD_LOGIC ); END ENTITY; ARCHITECTURE ONE OF BAOJINGQI IS BEGIN PROCESS(TMPA,TMPB,CLK,CLR) BEGIN IF CLR=1THEN ALM=0; ELSIF TMPA=0000 AND TMPB=0000 THEN ALM=CLK; ELSE ALM=0; END IF; END PROCESS; END ONE ; Jsq模块的源程序:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY jsqqq ISPORT(clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (1 DOWNTO 0);END jsqqq;ARCHITECTURE SYN OF jsqqq ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (1 DOWNTO 0);COMPONENT lpm_counterGENERIC (lpm_direction: STRING;lpm_modulus: NATURAL;lpm_port_updown: STRING;lpm_type: STRING;lpm_width: NATURAL);PORT (clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (1 DOWNTO 0);END COMPONENTBEGINq UP,lpm_modulus = 3,lpm_port_updown = PORT_UNUSED,lpm_type = LPM_COUNTER,lpm_width = 2)PORT MAP (clock = clock,q = sub_wire0);END SYN; Xuanzhe模块源程序: library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity xuanzhe isport (input :in std_logic_vector(1 downto 0); DA :in std_logic_vector(3 downto 0); DB :in std_logic_vector(3 downto 0); states : in std_logic_vector(3 downto 0);output :out std_logic_vector(3 downto 0);end;architecture one of xuanzhe isbeginprocess(input,DB,DA,states)begin case input iswhen 00 = output(3 downto 0) output(3 downto 0) output(3 downto 0)null;end case;end process;end architecture one; yimaqi模块源程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yimaqi isport(ain4:in std_logic_vector(3 downto 0); dout7:out std_logic_vector(6 downto 0); selin : in std_logic_vector(1 downto 0); selout : out std_logic_vector(1 downto 0);end yimaqi;architecture art of yimaqi is begin process(ain4) begin case ain4 is when 0000=dout7dout7dout7dout7dout7dout7dout7dout7dout7dout7dout7=0000000; end case; end process; selout(1 downto 0)=selin(1 downto 0);end art; 4.各模块及其端口,功能描述如下: jb模块为鉴别模块。clk作为上升沿脉冲接时钟源 ,clr复位即将状态置为初始状态,接按键, en用于使能控制即控制是否允许抢答,接按键,a,b,c,d分别是四个选手的抢答按钮,分别接四个按键。 鉴别模块 计时模块jishi模块分别为选手抢答和回答问题时间倒计时,CLK作为计时脉冲,和jb模块中接同一时钟源,Wran为是否有选手抢答输入信号,接jb模块中的warn输出端,en1,和en2都为使能控制端,en1有效时抢答倒计时,en2有效时回答问题倒计时。en1和jb模块中的使能控制端接同一按键,en2接一个按键,QA3.0和QB3.0分别为倒计时输出。 baojingqi模块为报警模块,CLK为时钟脉冲,和jb模块接同一时钟源,CLR为清零模块,和jb模块接同一按键,TMPA3.0和TMPB3.0接jishi模块的输出,alm为输出,接喇叭。 报警器模块计数模块 Jsq模块3进制加计数器模块,clock为始终脉冲,接一个高频时钟源,q1.0为输出,接xuanzheqi模块的输入端,作为选择的条件。 Xuanze模块三选一选择器,它和jsq共同实现使三个数码管循环显示不同的输出,但由于循环的周期极短,利用视觉误差可以看到三个数码管同时显示数据,input1.0作为选择条件,接jsq的输出端,DA3.0,DB3.0 接jishi模块的输出,state3.0接jb模块的输出,Output3.0作为输出接yimaqi模块的输入端。三选一选择器译码模块 Yimaqi用于译码显示。Qin3.0用于接收xuanze模块和jsq模块输出端送来的数,经译码生成七段码从dout6.0输出接数码管的七段码输入口,Selin用于选择数码管输入,Selout用于选择数码管输出; 5系统仿真及分析1.各模块仿真及分析。 jb模块 从仿真图形上来看,哪个选手先抢答就states就存储该选手的序列号,警报提示warn为高电平,仿真波形结果与所要实现的功能一致。 jishi模块 从仿真图形上来看,当清零CLR为有效电平,EN1和EN2也为无效电平时输出QA为9,QB为0;当清零CLR为无效电平, EN1为有效电平,EN2为无效电平时,QA开始从9倒计时,QB不变;当清零CLR为无效电平, EN1为有效电平,EN2也为有效电平时,QB和QA一起从29开始倒计时,仿真波形结果与所要实现的功能一致。 3、 Baojingqi模块从仿真图形上来看,当清零信号CLR清零之后ALM一直输出低电平,当warn有效时即有人抢答时ALM输出始终脉冲;当TMPB同时为0000时ALM也输出时钟脉冲,仿真波形结果与所要的到的功能一致。4、Jsq模块从仿真图形上来看,q在时钟脉冲的作用下进行3进制加计数,波形仿真结果与所要得到的功能一致。5、xuanze模块 从仿真图形上来看,当input为00是输出D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论