- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 23
PAGE \* MERGEFORMAT 0
目 录
TOC \o 1-3 \h \z \u 目 录 1
一、方案设计与论证 4
二、单元电路设计 5
(一)抢答鉴别模块 5
(二)计时模块 7
(三)数据选择模块 9
(四)报警模块 11
(五)译码模块 13
(六)分频模块 14
(七)顶层文件 16
(八)主电路连线图 19
(九)将程序下载到芯片FLEX—EPF10LC84-4上,引脚图如下 19
三、器件编程与下载 20
四、性能测试与分析 20
五、实验设备 20
六、心得体会 21
七、参考文献 21
程序设计流程图
层次化设计
图形输入
文本输入
建立项目文件
设计器件
增益
逻辑正确
仿真分析
引脚分配
重新调整
设计正确
生成下载文件
下载并验证
NO
NO
YES
YES
设计输入
设计生成
设计实现
硬件下载
一、方案设计与论证
将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是撰写顶层文件。
抢答器鉴别模块:
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
抢答器计时模块:
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
数据选择模块:
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
报警模块:
在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内 人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。
译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
分频模块:
在这个模块中主要实现抢答过程中实现输出双脉冲的功能。
顶层文件:
在这个模块中是对前七个模块的综合编写的顶层文件。
抢答器的设计分析
按照要求,我们可以将整个系统分为四个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块;译码显示模块。对于需显示的信息,需要增加或外接译码器,进行显示译码。考虑到实验开发平台提供的输出显示资源的限制,我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。整个系统的大致组成框图如图2.1所示。
图 2.1
2 电子抢答器的结构原理
2.1 电子抢答器的整体结构
电子抢答器的整体结构如图1所示。它包括鉴别与锁存模块、定时与犯规设置模块以及计分模块。
二、单元电路设计
(一)抢答鉴别模块
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 is
signal st:std_logic_vector(3 downto 0);
begin
p1: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)
文档评论(0)