西安电子科技大学EDA大作业抢答器.docx
- 文档编号:17550045
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:12
- 大小:126.68KB
西安电子科技大学EDA大作业抢答器.docx
《西安电子科技大学EDA大作业抢答器.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学EDA大作业抢答器.docx(12页珍藏版)》请在冰点文库上搜索。
西安电子科技大学EDA大作业抢答器
EDA大作业
指导老师:
初秀琴
班级:
021231
二人抢答器
1、实验要求
●两人抢答,先抢为有效,用发光二极管显示是否抢到优先答题权;
●每人2位计分显示,答错了不加分;
●每题的分值可认为设置,包括(10、20...90);
●每题结束后,裁判按复位键,可重新抢答下一题;
●累计加分可由裁判随时清除;
2、原理框图
首先,Player1和Player2输入,经过判决器判决,确认后显示抢答状态;
其次,裁判设置加分的数值,并判断正误,之后经过加分电路进行加分,显示分数。
然后,裁判复位,使二人可以重新抢答,即重复该过程。
在此过程中,裁判可以随时清零二人分数。
3、各部分程序及实现的功能
整体仿真框图如下:
1、Player1和Player2输入及判定
代码:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.all;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYtwomenIS
PORT
(
CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
IN1:
INSTD_LOGIC;
IN2:
INSTD_LOGIC;
CP:
BUFFERSTD_LOGIC;
OUT1:
BUFFERSTD_LOGIC;
OUT2:
BUFFERSTD_LOGIC
);
ENDENTITYtwomen;
ARCHITECTUREoneOFtwomenIS
BEGIN
CP<=CLKAND(OUT1NOROUT2);
A1:
PROCESS(CP,CLR)
BEGIN
IFCLR='0'THENOUT1<='0';OUT2<='0';
ELSIFCP'EVENTANDCP='1'THEN
IFIN1='1'THENOUT1<='1';
ELSIFIN2='1'THENOUT2<='1';
ENDIF;
ENDIF;
ENDPROCESSA1;
ENDone;
该模块实现功能为:
Player1和Player2输入,相应的OUT1和OUT2输出状态,一个人抢答成功后,另一人输入无效。
其中CLK为Clock触发脉冲信号,CLR为Reset信号,保证Reset=0时,二人可以重新开始抢答。
2、加分部分
代码:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.all;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYjudgeIS
PORT
(
Set0:
INSTD_LOGIC;
ADD:
INSTD_LOGIC_VECTOR(3DOWNTO0);
CONFIRM:
INSTD_LOGIC;
GetA:
INSTD_LOGIC;
GetB:
INSTD_LOGIC;
AD1:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);
AD2:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDENTITYjudge;
ARCHITECTUREoneOFjudgeIS
BEGIN
A2:
PROCESS(ADD,CONFIRM,Set0,GetA,GetB)
BEGIN
IFSet0='0'THENAD1<="0000";AD2<="0000";
ELSIFCONFIRM'EVENTANDCONFIRM='0'THEN
IFGetA='1'THENAD1<=AD1+ADD;
ELSIFGetB='1'THENAD2<=AD2+ADD;
ENDIF;
ENDIF;
ENDPROCESSA2;
ENDone;
该模块的功能为:
GetA和GetB即为由Player1和Player2输出状态的判定信号,用来控制在输出的AD1[3,2,1,0]还是在输出的AD2[3,2,1.0]上实现加分。
Confirm即为裁判的判定,当Confirm=0时进行加分。
ADD[3,2,1,0]为通过4个端口来实现分值的设定。
当裁判按下Set=即Set0=0时,二人分数清零。
3、显示
代码:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDecL7SIS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREoneOFDecL7SIS
BEGIN
PROCESS(A)
BEGIN
CASEA(3DOWNTO0)IS
WHEN"0000"=>LED7S<="1000000";
WHEN"0001"=>LED7S<="1111001";
WHEN"0010"=>LED7S<="0100100";
WHEN"0011"=>LED7S<="0110000";
WHEN"0100"=>LED7S<="0011001";
WHEN"0101"=>LED7S<="0010010";
WHEN"0110"=>LED7S<="0000010";
WHEN"0111"=>LED7S<="1111000";
WHEN"1000"=>LED7S<="0000000";
WHEN"1001"=>LED7S<="0010000";
WHEN"1010"=>LED7S<="0001000";
WHEN"1011"=>LED7S<="0000011";
WHEN"1100"=>LED7S<="1000110";
WHEN"1101"=>LED7S<="0100001";
WHEN"1110"=>LED7S<="0000110";
WHEN"1111"=>LED7S<="0001110";
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
END;
该模块的功能为:
两个相同的模块分别显示Player1和Player2的分数。
根据分值,显示相应的0-9的数值。
代码:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDecL7S0IS
PORT(LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREoneOFDecL7S0IS
BEGIN
LED7S<="1000000";
ENDone;
该模块的功能为:
Player1和Player2分数的个位始终显示为0。
该模块的功能为:
显示Player1和Player2的抢答状态,即任意一人抢答成功,相应的LED灯亮起。
4、仿真波形
五、仿真结果分析
Clock上升沿触发,PS11和PS21分别显示Player1和Player2的分数个位,为0。
第一次抢答:
Player1为高电平,LED1灯亮起。
裁判设定分值为1,确定加分,PS1为1,此时显示Player1的分数为10,Player2分数为00。
裁判复位Reset=0,二人开始重新抢答。
Set0=0
二人分数清零
第二次抢答:
Player2为高电平,相应LED灯亮起。
裁判将二人分数全部置零。
设置分值为2,并且确定加分。
此时显示Player2分数为20,Player1分数为00。
然后裁判复位,二人重新开始抢答。
第三次抢答:
抢答时,Player2先为高电平,相应LED灯亮起,Player1之后的输入无效。
裁判设置分值为3分,确定加分。
此时Player2分数为50,Player1分数为00。
设置复位,二人重新开始抢答。
第四次抢答:
Player1为高电平,相应的LED灯亮起。
裁判设定分值为7,确定加分。
此时Player1分数显示为70,Player2分数显示为50。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安电子科技大学 EDA 作业 抢答