四路抢答器EDA课程设计.doc_第1页
四路抢答器EDA课程设计.doc_第2页
四路抢答器EDA课程设计.doc_第3页
四路抢答器EDA课程设计.doc_第4页
四路抢答器EDA课程设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

EDA课程设计报告 四路抢答器学院:物理电气信息学院 班级:10级 姓名: 学号: 指导老师:杨泽林一 方案设计将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是顶层文件。1. 抢答器鉴别模块:在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。2. 抢答器计时模块:在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。3. 数据选择模块:在这个模块中主要实现抢答过程中的数据输入功能,输入信号a3.0、b3.0、c3.0;计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。4. 报警模块:在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内 人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。5. 译码模块:在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。6. 分频模块:在这个模块中主要实现抢答过程中实现输出双脉冲的功能。7. 顶层文件:在这个模块中是对前七个模块的综合编写的顶层文件。二 单元电路设计(一)抢答模块1.VHDL源程序LIBRARY IEEE;-抢答鉴别模块USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY qdjb IS PORT(rst,clk2:IN STD_LOGIC; s0,s1,s2,s3:IN STD_LOGIC; states:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);tmp:OUT STD_LOGIC);END qdjb;ARCHITECTURE ONE OF qdjb ISSIGNAL ST:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP1:PROCESS(S0,RST,S1,S2,S3,CLK2) BEGIN IF RST=0 THEN TMP=0;ST=0000; ELSIF CLK2EVENT AND CLK2=1 THEN IF (S0=1 OR ST(0)=1)AND NOT( ST(1)=1 OR ST(2)=1 OR ST(3)=1 ) THEN ST(0)=1; END IF ; IF (S1=1 OR ST(1)=1)AND NOT( ST(0)=1 OR ST(2)=1 OR ST(3)=1 ) THEN ST(1)=1; END IF ; IF (S2=1 OR ST(2)=1)AND NOT( ST(0)=1 OR ST(1)=1 OR ST(3)=1 ) THEN ST(2)=1; END IF ; IF (S3=1 OR ST(3)=1)AND NOT( ST(0)=1 OR ST(1)=1 OR ST(2)=1 ) THEN ST(3)=1; END IF ;TMP=S0 OR S1 OR S2 OR S3;END IF ;END PROCESS P1;P2:PROCESS(STATES(0),STATES(1),STATES(2),STATES(3) BEGIN IF (ST=0000) THEN STATES=0000; ELSIF (ST=0001) THEN STATES=0001;ELSIF (ST=0010) THEN STATES=0010; ELSIF (ST=0100) THEN STATES=0011;ELSIF (ST=1000) THEN STATES=0100; END IF; END PROCESS P2;END ONE;2.仿真图:3.抢答鉴别模块符号图在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。(二)计时模块1.VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY js IS PORT(clk,rst,s,stop:IN STD_LOGIC; warn:OUT STD_LOGIC; TA,TB:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END js;ARCHITECTURE ONE OF js ISSIGNAL CO:STD_LOGIC;BEGINP1:PROCESS(clk,rst,s,stop,ta) BEGIN IF RST=0 OR STOP=1 THEN TA=0000; ELSIF CLKEVENT AND CLK=1 THEN CO=0; IF S=1 THEN IF TA=0000 THEN TA=1001;CO=1; ELSE TA=TA-1; END IF; END IF; END IF;END PROCESS P1;P2:PROCESS(co,rst,s,stop,tb) BEGIN IF RST=0 OR STOP=1 THEN TB=0010; ELSIF COEVENT AND CO=1 THEN IF S=1 THEN IF TB=0000 THEN TB=0011; ELSE TB=TB-1; END IF; END IF; END IF;END PROCESS P2;END ONE;2.仿真图3.计时模块符号图在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。(三)数据选择模块1.VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY sjxz IS PORT (a,b,c: IN STD_LOGIC_VECTOR(3 DOWNTO 0);clk2,rst: IN STD_LOGIC; s: OUT STD_LOGIC_VECTOR(1 DOWNTO 0); y: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END sjxz;ARCHITECTURE BODY_CHOOSER OF sjxz IS SIGNAL COUNT: STD_LOGIC_VECTOR (1 DOWNTO 0); BEGIN S=COUNT; PROCESS(CLK2,RST) BEGIN IF(RST=0)THEN COUNT=10)THEN COUNT=00; ELSE COUNTYYYNULL; END CASE; END PROCESS; END BODY_CHOOSER;2.仿真图3.数据选择模块符号图在这个模块中主要实现抢答过程中的数据输入功能,输入信号a3.0、b3.0、c3.0;计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。(四)报警模块1.VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALARM ISPORT(CLK,I:IN STD_LOGIC; Q:OUT STD_LOGIC);END ALARM;ARCHITECTURE BEHAVE OF ALARM IS SIGNAL WARN:STD_LOGIC; SIGNAL N:INTEGER RANGE 0 TO 20;BEGIN Q= WARN; PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF I=0 THEN WARN =0; ELSIF(I=1AND N=19)THEN WARN =NOT WARN; N=N+1; ELSE WARN DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS;END ARCHITECTURE ART;2.仿真图3.译码模块符号图在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。(六)分频模块1.VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clkdiv ISPORT(clk2 : IN STD_LOGIC;clk16 : OUT STD_LOGIC);END clkdiv;ARCHITECTURE rtl OF clkdiv ISSIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk2)BEGINIF (clk2event AND clk2=1) THENIF(count=1111) THENCount =0000;ELSECount = count +1;END IF ;END IF ;END PROCESS;PROCESS(clk2)BEGINIF (clk2event AND clk2=1) THENIF(count=1111) THENclk16 = 1;ELSEclk16 = 0;END IF ;END IF ;END PROCESS;END rtl;2.仿真图3.分频模块图在这个模块中主要实现抢答过程中实现输出双脉冲的功能。(七)顶层文件1.VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY qiangdaqi IS PORT(clk,clk2,s,s0,s1,s2,s3,stop,rst:IN STD_LOGIC; n,k,q_out:OUT STD_LOGIC; m:OUT STD_LOGIC_VECTOR(1 DOWNTO 0); a,b,c,d,e,f,g:OUT STD_LOGIC);END qiangdaqi;ARCHITECTURE BHV OF QIANGDAQI ISCOMPONENT QDJB IS PORT(CLK2,RST:IN STD_LOGIC; S0,S1,S2,S3:IN STD_LOGIC; TMP:OUT STD_LOGIC; STATES:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT JS IS PORT(CLK,RST,S,STOP:IN STD_LOGIC; WARN:OUT STD_LOGIC; TA,TB:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT SJXZ IS PORT(CLK2,RST:IN STD_LOGIC; S:OUT STD_LOGIC_VECTOR(1 DOWNTO 0); A,B,C:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT YMQ IS PORT(AIN4: IN STD_LOGIC_VECTOR (3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR (6 DOWNTO 0);END COMPONENT;COMPONENT ALARM IS PORT(CLK,I:IN STD_LOGIC; Q:OUT STD_LOGIC);END COMPONENT;SIGNAL STATES_OUT,TA_OUT,TB_OUT,Y_OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL LEDOUT:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL W:STD_LOGIC;BEGINA=LEDOUT(6);B=LEDOUT(5);C=LEDOUT(4);D=LEDOUT(3);E=LEDOUT(2);F=LEDOUT(1);GK,STATES=STATES_OUT);U2:JS PORT MAP(CLK,RST,S,STOP,WARN=N,TA=TA_OUT,TB=TB_OUT);U3:SJXZ PORT MAP(CLK2=CLK2,RST=RST,S=M,A=STATES_OUT,B=TA_OUT,C=TB_OUT,Y=Y_OUT);U4:YMQ PORT MAP(AIN4=Y_OUT,DOUT7=LEDOUT);U5:ALARM PORT MAP(CLK2,S,Q_OUT);END BHV;2.仿真图3.顶层文件符号图在这个模块中是对前七个模块的综合编写的顶层文件。(八)主电路连线图三 性能测试估计与分析按照电路的设计,在绑定引脚后成功下载到FPGA板上后,按下rst键清零,按下s键,观察数码管是否开始倒计时,喇叭是否发出报警声,按下s0,观察数码管是否显示1和抢答的时间,再按s1,s2.s3均不改变显示,按下rst键,观察是否清零,再按s键,不按别的,直到计时时间到,观察是否显示00,喇叭是否发出报警。 四 总结在这次设计中参考了很多别人的程序,自己在设计时遇到了许多问题,但是看看人家的,豁然开朗。开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,我充分使用了结构

温馨提示

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

最新文档

评论

0/150

提交评论