四路抢答器EDA课程设计.docx
- 文档编号:4016211
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:19
- 大小:732.54KB
四路抢答器EDA课程设计.docx
《四路抢答器EDA课程设计.docx》由会员分享,可在线阅读,更多相关《四路抢答器EDA课程设计.docx(19页珍藏版)》请在冰点文库上搜索。
四路抢答器EDA课程设计
四路抢答器EDA课程设计
EDA课程设计报告
——四路抢答器
一方案设计
将该任务分成七个模块进行设计,分别为:
抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是顶层文件。
1.抢答器鉴别模块:
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
2.抢答器计时模块:
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
3.数据选择模块:
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
4.报警模块:
在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。
5.译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
6.分频模块:
在这个模块中主要实现抢答过程中实现输出双脉冲的功能。
7.顶层文件:
在这个模块中是对前七个模块的综合编写的顶层文件。
二单元电路设计
(一)抢答模块
1.VHDL源程序
LIBRARYIEEE;--抢答鉴别模块
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYqdjbIS
PORT(rst,clk2:
INSTD_LOGIC;
s0,s1,s2,s3:
INSTD_LOGIC;
states:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);
tmp:
OUTSTD_LOGIC);
ENDqdjb;
ARCHITECTUREONEOFqdjbIS
SIGNALST:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
P1:
PROCESS(S0,RST,S1,S2,S3,CLK2)
BEGIN
IFRST='0'THEN
TMP<='0';ST<="0000";
ELSIFCLK2'EVENTANDCLK2='1'THEN
IF(S0='1'ORST(0)='1')ANDNOT(ST
(1)='1'ORST
(2)='1'ORST(3)='1')THENST(0)<='1';
ENDIF;
IF(S1='1'ORST
(1)='1')ANDNOT(ST(0)='1'ORST
(2)='1'ORST(3)='1')THENST
(1)<='1';
ENDIF;
IF(S2='1'ORST
(2)='1')ANDNOT(ST(0)='1'ORST
(1)='1'ORST(3)='1')THENST
(2)<='1';
ENDIF;
IF(S3='1'ORST(3)='1')ANDNOT(ST(0)='1'ORST
(1)='1'ORST
(2)='1')THENST(3)<='1';
ENDIF;
TMP<=S0ORS1ORS2ORS3;
ENDIF;
ENDPROCESSP1;
P2:
PROCESS(STATES(0),STATES
(1),STATES
(2),STATES(3))
BEGIN
IF(ST="0000")THENSTATES<="0000";
ELSIF(ST<="0001")THENSTATES<="0001";
ELSIF(ST<="0010")THENSTATES<="0010";
ELSIF(ST<="0100")THENSTATES<="0011";
ELSIF(ST<="1000")THENSTATES<="0100";
ENDIF;
ENDPROCESSP2;
ENDONE;
2.仿真图:
3.抢答鉴别模块符号图
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
(二)计时模块
1.VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYjsIS
PORT(clk,rst,s,stop:
INSTD_LOGIC;
warn:
OUTSTD_LOGIC;
TA,TB:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDjs;
ARCHITECTUREONEOFjsIS
SIGNALCO:
STD_LOGIC;
BEGIN
P1:
PROCESS(clk,rst,s,stop,ta)
BEGIN
IFRST='0'ORSTOP='1'THEN
TA<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
CO<='0';
IFS='1'THEN
IFTA="0000"THEN
TA<="1001";CO<='1';
ELSETA<=TA-1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESSP1;
P2:
PROCESS(co,rst,s,stop,tb)
BEGIN
IFRST='0'ORSTOP='1'THEN
TB<="0010";
ELSIFCO'EVENTANDCO='1'THEN
IFS='1'THEN
IFTB="0000"THENTB<="0011";
ELSETB<=TB-1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESSP2;
ENDONE;
2.仿真图
3.计时模块符号图
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
(三)数据选择模块
1.VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYsjxzIS
PORT(a,b,c:
INSTD_LOGIC_VECTOR(3DOWNTO0);
clk2,rst:
INSTD_LOGIC;
s:
OUTSTD_LOGIC_VECTOR(1DOWNTO0);
y:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDsjxz;
ARCHITECTUREBODY_CHOOSEROFsjxzIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
S<=COUNT;
PROCESS(CLK2,RST)
BEGIN
IF(RST='0')THENCOUNT<="00";
ELSIF(CLK2'EVENTANDCLK2='1')THEN
IF(COUNT>="10")THEN
COUNT<="00";
ELSECOUNT<=COUNT+1;
ENDIF;
ENDIF;
CASECOUNTIS
WHEN"00"=>Y<=A;
WHEN"01"=>Y<=B;
WHEN"10"=>Y<=C;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
ENDBODY_CHOOSER;
2.仿真图
3.数据选择模块符号图
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
(四)报警模块
1.VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYALARMIS
PORT(CLK,I:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDALARM;
ARCHITECTUREBEHAVEOFALARMIS
SIGNALWARN:
STD_LOGIC;
SIGNALN:
INTEGERRANGE0TO20;
BEGIN
Q<=WARN;
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFI='0'THEN
WARN<='0';
ELSIF(I='1'ANDN<=19)THEN
WARN<=NOTWARN;
N<=N+1;
ELSE
WARN<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
2.仿真图
3.报警模块符号图
在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内如果人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。
(五)译码模块
1.VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYMQ;
ARCHITECTUREARTOFYMQIS
BEGIN
PROCESS(AIN4)
BEGIN
CASEAIN4IS
WHEN"0000"=>DOUT7<="1111110";--0
WHEN"0001"=>DOUT7<="0110000";--1
WHEN"0010"=>DOUT7<="1101101";--2
WHEN"0011"=>DOUT7<="1111001";--3
WHEN"0100"=>DOUT7<="0110011";--4
WHEN"0101"=>DOUT7<="1011011";--5
WHEN"0110"=>DOUT7<="1011111";--6
WHEN"0111"=>DOUT7<="1110000";--7
WHEN"1000"=>DOUT7<="1111111";--8
WHEN"1001"=>DOUT7<="1111011";--9
WHENOTHERS=>DOUT7<="0000000";
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREART;
2.仿真图
3.译码模块符号图
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
(六)分频模块
1.VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYclkdivIS
PORT(clk2:
INSTD_LOGIC;
clk16:
OUTSTD_LOGIC);
ENDclkdiv;
ARCHITECTURErtlOFclkdivIS
SIGNALcount:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk2)
BEGIN
IF(clk2'eventANDclk2='1')THEN
IF(count="1111")THEN
Count<="0000";
ELSE
Count<=count+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(clk2)
BEGIN
IF(clk2'eventANDclk2='1')THEN
IF(count="1111")THEN
clk16<='1';
ELSE
clk16<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDrtl;
2.仿真图
3.分频模块图
在这个模块中主要实现抢答过程中实现输出双脉冲的功能。
(七)顶层文件
1.VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYqiangdaqiIS
PORT(clk,clk2,s,s0,s1,s2,s3,stop,rst:
INSTD_LOGIC;
n,k,q_out:
OUTSTD_LOGIC;
m:
OUTSTD_LOGIC_VECTOR(1DOWNTO0);
a,b,c,d,e,f,g:
OUTSTD_LOGIC);
ENDqiangdaqi;
ARCHITECTUREBHVOFQIANGDAQIIS
COMPONENTQDJBIS
PORT(CLK2,RST:
INSTD_LOGIC;
S0,S1,S2,S3:
INSTD_LOGIC;
TMP:
OUTSTD_LOGIC;
STATES:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENT;
COMPONENTJSIS
PORT(CLK,RST,S,STOP:
INSTD_LOGIC;
WARN:
OUTSTD_LOGIC;
TA,TB:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENT;
COMPONENTSJXZIS
PORT(CLK2,RST:
INSTD_LOGIC;
S:
OUTSTD_LOGIC_VECTOR(1DOWNTO0);
A,B,C:
INSTD_LOGIC_VECTOR(3DOWNTO0);
Y:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENT;
COMPONENTYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDCOMPONENT;
COMPONENTALARMIS
PORT(CLK,I:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALSTATES_OUT,TA_OUT,TB_OUT,Y_OUT:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALLEDOUT:
STD_LOGIC_VECTOR(6DOWNTO0);
SIGNALW:
STD_LOGIC;
BEGIN
A<=LEDOUT(6);B<=LEDOUT(5);C<=LEDOUT(4);D<=LEDOUT(3);E<=LEDOUT
(2);F<=LEDOUT
(1);G<=LEDOUT(0);
U1:
QDJBPORTMAP(CLK2,RST,S0,S1,S2,S3,TMP=>K,STATES=>STATES_OUT);
U2:
JSPORTMAP(CLK,RST,S,STOP,WARN=>N,TA=>TA_OUT,TB=>TB_OUT);
U3:
SJXZPORTMAP(CLK2=>CLK2,RST=>RST,S=>M,A=>STATES_OUT,B=>TA_OUT,C=>TB_OUT,Y=>Y_OUT);
U4:
YMQPORTMAP(AIN4=>Y_OUT,DOUT7=>LEDOUT);
U5:
ALARMPORTMAP(CLK2,S,Q_OUT);
ENDBHV;
2.仿真图
3.顶层文件符号图
在这个模块中是对前七个模块的综合编写的顶层文件。
(八)主电路连线图
三性能测试估计与分析
按照电路的设计,在绑定引脚后成功下载到FPGA板上后,按下rst键清零,按下s键,观察数码管是否开始倒计时,喇叭是否发出报警声,按下s0,观察数码管是否显示1和抢答的时间,再按s1,s2.s3均不改变显示,按下rst键,观察是否清零,再按s键,不按别的,直到计时时间到,观察是否显示00,喇叭是否发出报警。
四总结
在这次设计中参考了很多别人的程序,自己在设计时遇到了许多问题,但是看看人家的,豁然开朗。
开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。
在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。
在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。
课程设计是我们专业课程知识综合应用的实践训练,随着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
总的来说,这次设计的数字秒表还是比较成功的,在设计中遇到了很多问题,最后在同学的帮助下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。
参考文献
【1】、江国强:
《EDA技术习题与实验》,电子工业出版社
【2】、曹昕燕,周风臣,聂春燕:
《EDA技术试验与课程设计》,清华大学出版社
【3】、黄仁欣:
《EDA技术实用教程》,清华大学出版社忽略此处..
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四路 抢答 EDA 课程设计