EDA课程设计报告基于CPLD的智力竞赛抢答器文档格式.docx
- 文档编号:15773455
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:23
- 大小:470.75KB
EDA课程设计报告基于CPLD的智力竞赛抢答器文档格式.docx
《EDA课程设计报告基于CPLD的智力竞赛抢答器文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计报告基于CPLD的智力竞赛抢答器文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
输出信号给选手识别模块,并显示剩余时间。
选手抢答模块具有识别与锁存功能,并输出选手号给显示模块。
加减分模块用于存储各个选手的分数,并输出给显示模块。
蜂鸣器控制模块则对超时和抢答成功鸣声报警。
显示模块用于输出抢答剩余时间、抢答模块、选手得分。
二、各级模块设计
1、抢答启动模块
抢答启动模块由控制抢答启动的复位键和控制定时的两个定时启动键。
定时时间为5秒和20秒两种,分别由两个键控制。
主持人按下复位键启动抢答,并完成置数。
定时启动键则在置数信号有效的情况下,读入定时初值,进行减1操作,开始倒计时。
本模块程序:
抢答启动
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSTART_5_20IS
PORT(CLK1,RST,START5,START20:
INSTD_LOGIC;
B,A:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
--输出定时初值
S_FLAG:
OUTSTD_LOGIC);
--置数信号
ENDENTITY;
ARCHITECTUREONEOFSTART_5_20IS
SIGNALDATAIN:
STD_LOGIC_VECTOR(1DOWNTO0);
TYPEST_TYPEIS(ST0,ST1,ST2);
--定义状态
SIGNALC_ST:
ST_TYPE;
BEGIN
DATAIN<
=START5&
START20;
--两个输入信号放在一起判断
PROCESS(RST,CLK1)
BEGIN
IFRST='
0'
THEN--复位
B<
="
0000"
;
A<
C_ST<
=ST0;
S_FLAG<
='
ELSIFCLK1'
EVENTANDCLK1='
1'
THEN
CASEC_STIS
WHENST0=>
IFDATAIN="
01"
THEN
=ST1;
--输入信号为01,转ST1状态
--置数信号有效
B<
0101"
--定时初值“05”
ELSIFDATAIN="
10"
THENC_ST<
=ST2;
--输入信号为10,转ST1状态
0010"
--定时初值“20”
ELSEC_ST<
--输入信号为11,保持ST0状态
ENDIF;
WHENST1=>
IFDATAIN="
11"
--防按键抖动,为11时才转ST0状态
--置数信号无效
--按键没弹起,继续等待
WHENST2=>
ELSEC_ST<
ENDIF;
WHENOTHERS=>
ENDCASE;
ENDIF;
ENDPROCESS;
ENDARCHITECTURE;
定时控制
ENTITYDE_COUNTIS
PORT(CLK2,LOAD,L_CR,RST:
INSTD_LOGIC_VECTOR(3DOWNTO0);
TIMEB,TIMEA:
TIMEOUT,SR1:
ARCHITECTURETWOOFDE_COUNTIS
PROCESS(LOAD,L_CR,RST,CLK2)
VARIABLEP1,P0:
STD_LOGIC_VECTOR(3DOWNTO0);
IFLOAD='
P1:
=B;
P0:
=A;
--指数信号有效,将B、A值读入P1、P0
ELSIFL_CR='
THEN--有选手抢答成功,L_CR输入为0,定时时间清0
P1:
TIMEOUT<
SR1<
ELSIFRST='
THENP1:
ELSIF(CLK2'
EVENTANDCLK2='
)THEN
IFP0="
IFP1>
0THEN
P1:
=P1-1;
1001"
--若个位为0,十位减1,个位赋为9
ENDIF;
ELSEP0:
=P0-1;
--若个位不为0,个位直接减一
IFP0="
ANDP1="
TIMEOUT<
--若时间到,输出锁存信号
ENDIF;
TIMEB<
=P1;
TIMEA<
=P0;
实现两个子模块组合
抢答启动子模块仿真如下:
图
(二)
抢答定时子模块仿真如下:
图(三)
整个模块仿真如下图:
图(四)
2、选手抢答模块
选手有8名,在一个结构体中用8个进程同时对8个选手按键电平变化的监测是不可实现的,因为若出现检测上升沿或下降沿的语句,编译软件会认为所检测的信号为实体的时钟信号,而一个实体只允许用一个时钟信号控制。
故可将本模块分为两部分:
单个选手按键和判断抢答。
将8位选手按键模块和判断选手连接起来得到整个选手抢答模块。
本模块程序如下:
单个选手按键模块
ENTITYBUTTON1IS
PORT(LOCK,BUTTON,RST:
PRESSED:
ARCHITECTUREB1OFBUTTON1IS
PROCESS(RST,BUTTON)--使用进程时刻监测RST、BUTTON信号
PRESSED<
--复位
ELSIFBUTTON'
EVENTANDBUTTON='
THEN
IFLOCK='
THEN--键被按下并且LOCK信号无效
PRESSED<
--则输出信号给判断模块
判断选手模块
ENTITYIDENTIFIERIS
PORT(PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8:
P_NUM:
LOCK,SR1:
ARCHITECTUREONEOFIDENTIFIERIS
SIGNALP:
STD_LOGIC_VECTOR(7DOWNTO0);
P<
=PP8&
PP7&
PP6&
PP5&
PP4&
PP3&
PP2&
PP1;
--8个输入放在一起判断
PRO1:
PROCESS(P)--输入若发生变化,马上启动进程进行判断
BEGIN
CASEPIS
WHEN"
00000001"
=>
P_NUM<
0001"
LOCK<
--1号选手
00000010"
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 报告 基于 CPLD 智力 竞赛 抢答