EDA课程设计—四人抢答器设计
EDA技术大作业(一)——4路抢答器的设计

EDA技术大作业(一)4路抢答器的设计1.设计要求利用基本逻辑门电路、组合逻辑电路和触发器,设计一个四人抢答器。
要求:1)四个参加者编号为A、B、C和D,对应组号为1~4,每个参加者控制一个按键,用其发出抢答信号。
2)主持人有一个控制按键,用于将系统清零,即数码显示管灯灭,并控制抢答开始。
3)参加者按抢答按钮,蜂鸣器响铃,对应的指示灯亮,同时数码管上显示最先抢答者的组号。
4)电路具有互锁功能,有人优先抢答后系统能自动关闭其他路的输入信号。
2.设计报告要求1)给出设计方案,画出设计电路框图,并对各个功能模块进行简单的描述。
2)在multiSIM 2001下绘制仿真电路图,并进行仿真验证。
提示:采用CMOS器件设计抢答器(也可以采用74LSXXX系列芯片)数码显示抢答器采用CMOS电路制作,由触发器、编译码电路、数码管、LED指示灯和蜂鸣器等组成,数码管用于显示抢答者的组号,电路框图如下图所示。
(1)数码显示抢答器框图(2)参考电路(仅供参考,请自己设计)这里采用CMOS器件4511、4013、4069、4072设计4路抢答器,图中J1~J4为抢答按钮,J5为复位按钮,4013为D触发器,4069为反相器,4072为4输入或门,4511为4线-七段锁存/译码/驱动器。
(3)仿真分析依次按下A、B、C、D键观察数码管显示状态和蜂鸣器的输出状态。
按下复位键R,观察数码管显示状态和蜂鸣器的输出状态。
南京航空航天大学金城学院本科生实验报告课程名称:EDA技术设计题名:4路抢答器的设计学生姓名:XXX班级学号:XXXXX2010年X月X日一、实验题目和要求二、设计框图三、设计电路图要求对电路图进行简单的功能描述四、仿真结果和分析五、对本课程的几点建议附:个人联系方式手机:E-mail:。
数字电路设计---四人抢答器

一、设计任务与要求1. 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。
2. 设置一个系统清除和抢答控制开关S,该开关由主持人控制。
3. 抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。
5. 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
6. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
二、预习要求1.复习编码器、十进制加/减计数器的工作原理。
2.设计可预置时间的定时电路。
3.分析与设计时序控制电路。
4. 画出定时抢答器的整机逻辑电路图三、设计原理与参考电路1.数字抢答器总体方框图如图所示为总体方框图。
其工作原理为:接通电源后,主持人将开关拨到"清除"状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置?quot;开始"状态,宣布"开始"抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作"清除"和"开始"状态开关。
2.单元电路设计(1) 抢答器电路参考电路如图所示。
该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。
EDA课程设计—四人抢答器设计

EDA课程设计—四⼈抢答器设计摘要现代⽣活中,数字电路产品与我们接触的是越来越平凡了,包括计算机、电⼦表、智能仪器表及其它很多领域中,它给我们带来的不仅是⼯作上的⽅便,⽽且也给我们的⽣活娱乐添滋加彩。
这次EDA课程设计中,我做的是四⼈抢答器,基于设计要求,本⽂主要是从锁存器及计数器功能和VHDL语⾔着⼿,但侧重点在⽤VHDL语⾔上。
⾸先简单介绍⼀下数字电路、EDA、VHDL等的有关知识,其次介绍了⼀下设计要求和我的设计构想,再运⽤VHDL语⾔特点,写出程序代码,最后是⼀些总结和抢答器部分实验电路图与倒计时设计的电路图和⽤MAX+PLUSII软件仿真的结果部分图附录等部分。
关键词:置位;复位;锁存;计数器;七段显⽰器;MAX+PLUSII;译码器⽬录摘要: (1)引⾔: (2)⼀、设计任务及要求: (2)⼆、题⽬分析与整体构思: (2)三、VHDL程序设计: (3)四、⼼得体会及模型评价与推⼴: (5)附录: (6)参考⽂献: (10)引⾔数字电路主要是基于两个信号(我们可以简单的说是有电压和⽆电压),⽤数字信号完成对数字量进⾏算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。
EDA技术⼜称电⼦设计⾃动化,它是为解决⾃动控制系统设计⽽提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助⼯程(CAE),电⼦系统设计⾃动化(ESDA)3个阶段。
前两个阶段的EDA产品都只是个别或部分的解决了电⼦产品设计中的⼯程问题;第三代EDA⼯具根据⼯程设计中的瓶颈和⽭盾对设计数据库实现了统⼀管理,并提出了并⾏设计环境概念,提供了独⽴于⼯艺和⼚家的系统级的设计⼯具。
VHDL(VERY HIGH SPEED INTEGRA TED CIRCUIT HARDW ARE DESCRIPTION LANGUAGE)语⾔最早是有美国国防部提出的,它⽀持⾏为领域和结构领域的硬件描述,并且可以从最抽象的系统级⼀直到最精确的逻辑级,在描述数字系统时,可以使⽤前后⼀致的语义和语法跨越多个层次,并且使⽤跨越多个级别的混合描述模拟该系统。
四路抢答器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源程序LIBRARY IEEE;--抢答鉴别模块USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY qdjb ISPORT(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)BEGINIF RST='0' THENTMP<='0';ST<="0000";ELSIF CLK2'EVENT AND CLK2='1' THENIF (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))BEGINIF (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.抢答鉴别模块符号图在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
4人抢答器课程设计

4人抢答器课程设计一、课程目标知识目标:1. 学生能够理解抢答器的电路原理,掌握基本的电子元件功能和使用方法。
2. 学生能够描述抢答器的工作流程,并解释其背后的科学原理。
3. 学生能够运用所学的电子知识,分析并解决抢答器在实际使用过程中可能遇到的问题。
技能目标:1. 学生通过小组合作,能够设计并搭建一个简单的4人抢答器电路。
2. 学生能够运用逻辑思维和问题解决能力,对抢答器进行调试和优化。
3. 学生能够在规定时间内,通过操作抢答器展示自己的学习成果。
情感态度价值观目标:1. 学生培养对电子科技的兴趣,激发探索精神和创新意识。
2. 学生在团队合作中,学会相互尊重、沟通协作,培养团队精神和责任感。
3. 学生通过实践活动,增强自信心,培养克服困难的意志品质。
课程性质:本课程为实践性、探究性的电子技术课程,注重理论知识与实际操作相结合。
学生特点:四年级学生具备一定的电子知识基础和动手能力,好奇心强,喜欢探索新事物。
教学要求:教师需引导学生通过小组合作、动手实践等方式,自主探索抢答器的工作原理,注重培养学生的创新能力和团队合作精神。
同时,关注学生的学习进度和情感态度,确保课程目标的实现。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 电子元件基础知识:介绍抢答器中涉及的电子元件,如按钮、LED灯、晶体管、继电器等,结合教材相关章节,让学生理解各元件的功能和电路符号。
2. 电路原理:讲解抢答器的电路设计,包括基本电路图、电路连接方式、工作原理等,结合教材中的电路知识,让学生掌握抢答器电路的构成。
3. 制作与调试:引导学生分组进行抢答器制作,按照教学大纲逐步完成电路搭建、调试和优化,确保学生能够将理论知识应用于实际操作。
4. 抢答器工作流程:分析抢答器的工作流程,包括抢答、计时、显示等环节,结合教材内容,让学生深入理解抢答器的工作原理。
5. 故障分析与排除:教授学生如何分析抢答器可能出现的故障,掌握基本的故障排除方法,提高学生的问题解决能力。
EDA课程设计教程---四路抢答器

前言“数字逻辑”是我院计算机科学与技术专业及自动化专业最重要的专业基础课之一。
随着电子技术的高速发展,数字技术也可谓是一日千里。
尤其是九十年代迅速发展起来的在系统可编程技术ISP,更使数字系统的设计方法发生本质性、革命性变化。
为了适应数字技术的飞速发展,培养出在二十一世纪具有竞争力的计算机及自动化的高等人才,采用可编程技术及可编程器件进行数字电路及系统的设计势在必行。
为此,我院“数字逻辑”实验设备更新为具有当前国内先进水平的EDA实验开发系统。
EDA(Electronic Des ign Automation)即指电子设计自动化。
EDA实验开发系统是一种多功能、高配置、高品质的EDA教学与开发设备。
该系统由于采用可编程CPLD器件及独特的设计技术,从而使学生的实验从传统的硬件连接方式进入到软件设计、仿真调试系统的实验方式,并使传统的硬件设计方式用EDA技术实现。
这与用连线搭接电路的实验方式相比,不仅故障率大大降低,而且节省了时间、提高了实验效率。
同时,也使学生获得的知识紧跟国际数字技术的先进水平。
EDA实验教程是为适应数字逻辑课程的教学改革而编写的。
考虑到现代教育不仅使学生通过实验能够掌握所学理论知识,而且有利于激发和培养学生的创新意识和创造能力,该教程结合实验室已更新的EDA实验开发系统,为学生提供了一些以设计性和综合性实验为主的、具有任意可选性的基础实验课题;同时也为数字逻辑课程设计提供了一些即具有实用价值、趣味性又较强的数字系统设计项目。
该教程适用于“数字逻辑”课程教学实验和课程设计。
因时间短促,还存在很多不足及错误,敬请各位老师及同学指正。
“数字逻辑”课程组2008年10月目录前言第一章MAX+PLUSⅡ基本操作 (3)1.1 设计环境与设计方法 (3)1.1.1 系统配置与安装 (3)1.1.2 MAX+PLUSⅡ操作环境 (5)1.1.3 MAX+PLUSⅡ的设计方法 (6)1.2 设计输入 (8)1.2.1 建立图形设计文件 (8)1.2.2建立文本设计文件(VHDL) (14)1.2.3 VHDL语言和原理图混合输入方式 (16)1.3 设计项目的编译 (16)1.4 设计校验 (23)1.4.1 仿真 (23)1.4.2 定时分析 (26)1.5 器件编程 (28)第二章数字逻辑基础实验 (30)2.1 交通控制灯监视电路 (30)2.2 五人表决器 (30)2.3 逻辑运算电路 (31)2.4 3:8线译码器 (31)2.5 逻辑函数发生器 (32)2.6 4位二进制数∕BCD码变换器 (32)2.7 格雷码变换器 (33)2.8 BCD码加法器 (33)2.9 四位并行乘法器 (33)2.10 BCD∕七段数字显示译码器 (34)2.11 基本触发器 (35)2.12 同步十进制计数器 (35)2.13 动态扫描数码显示器 (36)2.14 双向移位寄存器 (37)2.15 环形计数器与扭环计数器 (37)2.16 二十四进制计数器 (38)第三章数字系统综合设计 (40)3.1 多功能数字电子钟 (40)3.2 数字密码锁电路 (42)3.3 8位数字频率计 (42)3.4 等精度数字频率计 (44)3.5 快速加法器 (46)3.6 移位乘法器 (46)3.7 篮球30秒定时控制电路 (48)3.8 交通灯控制电路 (48)3.9 序列检测器 (49)3.10 出租车计费器 (50)3.11 智力竞赛抢答器 (51)3.12 模拟乒乓球游戏机 (52)附表SE-5M(EPF10K10)引脚对应表 (54)第一章MAX+PLUSⅡ基本操作本章介绍Altera公司的CPLD的开发工具软件MAX+PLUSⅡ。
EDA课程设计--VHDL四路智力抢答器

VHDL四路智力抢答器EDA课程设计一、任务与目的1.1熟练掌握EDA工具软件Quartus的使用1.2熟悉使用VHDL硬件描述语言描述数字电路1.3学会使用VHDL进行大规模集成电路设计1.4学习使用CPLD/FPGA实验系统硬件验证电路设计的正确性1.5初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力二、设计题目与要求2.1设计题目四路智力竞赛抢答器2.2设计要求1.按所布置的题目要求,每一位学生独立完成全过程2.分模块层次化的设计;3.各功能模块的底层文件必须用VHDL语言设计,顶层文件可以用VHDL语言设计,也可以用原理图设计。
2.3设计内容设计一个可容纳四组参赛者同时抢答的数字抢答器。
主持人可控制系统发的清零和抢答的开始,控制电路可实现最快抢答选手按键抢答的判别和锁定功能,并禁止后续其他选手抢答。
抢答选手确定后给出选手编号的显示,抢答选手的编号显示保持到系统被清零为止,若提前抢答则对相应的抢答组发出警告。
*扩展内容:增加答题限时的功能,在确定了抢答成功有效后,有主持人按下答题限时功能键,开始9s的倒计时。
在计时结束后,超时提示LED闪烁。
在主持人按下clear开关时限时复位。
三、功能分析四路智力竞赛抢答器按功能设计分为三个模块1.抢答锁存模块,在主持人发出抢答指令后(start=’1’),若有参赛者按下抢答按钮,则显示器显示抢答组别,同时电路处于自锁状态,使其它组的抢答器不起作用。
主持人可以用清零按钮进行清零(clr=’0’).若抢答指令未发出(start=’0’),而有参赛者按下抢答按钮,则发出警告信号(alm=1).2.显示功能模块,在参赛者抢答信号(组别)发出后,对参赛者信号进行译码,然后用7段数码管显示出来。
3.计时模块,在确定了抢答成功有效后,有主持人按下答题限时功能键,开始9s的倒计时。
在计时结束后,超时提示LED亮。
在主持人按下clear开关时限时复位。
(扩展模块)四、设计思路分析,设计方案合理性分析与选择。
四人抢答器课程设计

四人抢答器课程设计一、课程目标知识目标:1. 学生能理解抢答器的基本原理,掌握其电路组成及功能。
2. 学生能运用所学的电子技术知识,分析并设计简单的抢答器电路。
3. 学生了解抢答器在现实生活中的应用,认识到电子技术在实际问题解决中的价值。
技能目标:1. 学生能独立完成抢答器电路图的绘制,并正确识别电路中的元件。
2. 学生通过动手实践,掌握基本的焊接技巧,能够组装和调试抢答器电路。
3. 学生能够运用抢答器进行团队竞赛,提高沟通与协作能力。
情感态度价值观目标:1. 学生通过抢答器的设计与制作,培养创新意识和实践能力,增强对电子技术的兴趣。
2. 学生在团队协作中,学会尊重他人,培养合作精神,提高团队荣誉感。
3. 学生认识到科技发展对社会进步的重要性,激发学习科学技术的热情,树立为国家和民族发展贡献力量的信心。
课程性质:本课程为电子技术实践课程,注重培养学生的动手能力、创新能力和团队协作能力。
学生特点:五年级学生,具有一定的电子技术基础,好奇心强,喜欢动手实践,团队合作意识逐渐形成。
教学要求:教师应关注学生的个体差异,提供适当的指导与帮助,鼓励学生积极参与,确保课程目标的实现。
同时,注重将理论与实践相结合,引导学生将所学知识应用于实际问题解决。
通过课程学习,使学生达到预期的学习成果。
二、教学内容本课程教学内容主要包括以下三个方面:1. 抢答器基本原理及电路组成- 介绍抢答器的工作原理,包括信号发射、接收和处理过程。
- 分析抢答器电路的组成,包括按键、编码器、解码器、指示灯等。
- 引导学生结合课本第四章第二节内容,了解抢答器各部分功能及相互关系。
2. 抢答器电路设计与制作- 讲解抢答器电路图的绘制方法,引导学生识别电路中的各个元件。
- 指导学生运用第五章第一节所学知识,设计简单的抢答器电路。
- 安排实践环节,让学生动手焊接组装抢答器,并学会调试电路。
3. 抢答器应用与团队竞赛- 介绍抢答器在实际生活中的应用场景,激发学生学习兴趣。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要现代生活中,数字电路产品与我们接触的是越来越平凡了,包括计算机、电子表、智能仪器表及其它很多领域中,它给我们带来的不仅是工作上的方便,而且也给我们的生活娱乐添滋加彩。
这次EDA课程设计中,我做的是四人抢答器,基于设计要求,本文主要是从锁存器及计数器功能和VHDL语言着手,但侧重点在用VHDL语言上。
首先简单介绍一下数字电路、EDA、VHDL等的有关知识,其次介绍了一下设计要求和我的设计构想,再运用VHDL语言特点,写出程序代码,最后是一些总结和抢答器部分实验电路图与倒计时设计的电路图和用MAX+PLUSII软件仿真的结果部分图附录等部分。
关键词:置位;复位;锁存;计数器;七段显示器;MAX+PLUSII;译码器目录摘要: (1)引言: (2)一、设计任务及要求: (2)二、题目分析与整体构思: (2)三、VHDL程序设计: (3)四、心得体会及模型评价与推广: (5)附录: (6)参考文献: (10)引言数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。
EDA技术又称电子设计自动化,它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。
前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统级的设计工具。
VHDL(VERY HIGH SPEED INTEGRA TED CIRCUIT HARDW ARE DESCRIPTION LANGUAGE)语言最早是有美国国防部提出的,它支持行为领域和结构领域的硬件描述,并且可以从最抽象的系统级一直到最精确的逻辑级,在描述数字系统时,可以使用前后一致的语义和语法跨越多个层次,并且使用跨越多个级别的混合描述模拟该系统。
因此,它可以由高层次行为描述子系统及低层次详细实现子系统所组成的系统模拟。
它有两个版本IEEEStd1076-1987[LRM87]和IEEEStd1076-1993[LRM93],他们并不完全兼容,但做一些修改就可以兼容了。
许多公司都为VHDL开发出了编译和仿真软件,其中Max+plusII(或写成Maxplus2,或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:QuartusII,主要用于设计新器件和大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。
设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。
其设计速度非常快。
对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。
设计处理一般在数分钟内内完成。
特别是在原理图输入等方面。
一、设计任务及要求:本设计要求做一个四人抢答器,并要求当有某一参赛者首先按下抢答开关时,相应显示灯亮并报警,此时抢答器不再接受其他输入信号。
电路具有回答问题时间控制功能。
要求回答问题时间小于等于100s(显示0-99),时间采用倒计时方式。
当到达限定时间,发出警告。
二、题目分析与整体构思:对于一个四人抢答器,四个选手在电路中的起始控制作用是一样的,当裁判员宣布开始抢答时,谁先按下他前面的控制开关,他的灯就会亮,而且这时其他人再怎么按,也就不会亮了,说明每个人对其他人都有一个先发制人的作用,及每个人都在时间控制下,能锁存住其他选手的功能。
当有一个指示灯亮了,计数器就开始从99开始倒计时,到0时还要警告声,这样计数器开始工作就是在指示灯的指示下工作。
可以设四个人分别为输入端A,B,C,D;因为四个输入端在VHDL中,要求四个输入端应该是相等优先级别,但只要有一个输入端接入高电平时,就给其他信号一个反馈,使得他们的输入无效,及他们对应的指示灯不亮;所以我们可以也并行语句,让它们分为四个进程(process),同时也要求每个进程中都有反馈信号传给其他进程语句中,这样就可以完成抢答器基础部分了,设计的逻辑电路图部分见附录图一。
其次就是计数器部分,当有人开始进入回答部分,指示灯亮,同时计数器开始工作,并要求是倒计时方式并七段显示出,通过这些消息我们可知,指示灯即是计数器开始倒计时的信号,本设计中采用了元件例化(component)语句,在抢答器中给个选手已经开始回答了的信号插口,给计数器中的置零输入端,这样就基本上完成了设计,计数器采用倒计时方式,实现方式也很简单,只要给他们最初赋值为99,而后在每个上升沿来到减一,具体设计情况还是看看程序设计部分吧,在附录部分还有这个99倒时计数器的逻辑电路图。
三、VHDL程序设计:根据上面的分析可知,我们只要用四个进程语句,就可以处理好四位选手的相互限制的问题,再将四个指示灯用相与来控制计数器的置零端set,再用一个元件话语句component 连接计数器,下面是具体的抢答器的VHDL语言代码:代码中A、B、C、D分别代表四位参赛选手,RESET是主裁判员的控制开关,CLK是计数器的时钟信号,MUSIC是警告的控制开关,COUNT1和CONT2代表的是99倒计时的七段显示二进制码直接与LED显示器连接,ALIGHT,BLIGHT,CLIGHT,DLIGHT分别代表四位选手的显示灯。
library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity Qiang_DA isport(A,B,C,D,RESET:in std_logic;CLK:in std_logic;MUSIC:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0);ALIGHT,BLIGHT,CLIGHT,DLIGHT:out std_logic);end;architecture one of Qiang_DA iscomponent COUNTER99port(SET,CLK:in std_logic;MUSIC:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0));end component;signal A1,B1,C1,D1:std_logic;signal A2,B2,C2,D2:std_logic;signal SET:std_logic;beginA2<=not A1 ;B2<=not B1 ;C2<=not C1 ;D2<=not D1 ;L1:process(A)beginA1<=(A and B2 and C2 and D2) ;end process L1;L2:process(B)beginB1<=(B and A2 and C2 and D2);end process L2;L3:process(C)beginC1<=(C and A2 and B2 and D2);end process L3;L4:process(D)beginD1<=(D and A2 and C2 and B2);end process L4;L5:process(A1,B1,C1,D1,RESET)beginif RESET='0' thenALIGHT<='0';BLIGHT<='0';CLIGHT<='0';DLIGHT<='0';SET<='0';else ALIGHT<=A1;BLIGHT<=B1;CLIGHT<=C1;DLIGHT<=D1;SET<=(A1 or B1 or C1 or D1); end if;end process L5;U0:COUNTER99 port map(SET,CLK,MUSIC,COUT1,COUT2);end;下面是99倒数计数器的VHDAL语言代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity COUNTER99 isport( SET,CLK:in std_logic;MUSIC:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0));end;architecture behave of COUNTER99 issignal MUSIC1:std_logic;signal HIGH:std_logic_vector(3 downto 0):="1001";signal LOW:std_logic_vector(3 downto 0):="1001";beginC1:process(SET,CLK,MUSIC1)beginif SET='0' thenMUSIC1<='0';HIGH<="1001";LOW<="1001";elseif RISING_EDGE(CLK) thenif LOW="0000" thenLOW<="1001";if HIGH="0000" thenHIGH<="1001";else HIGH<=HIGH-1;end if;else LOW<=LOW-1;end if ;end if;if (HIGH="0000" and LOW="0001") thenMUSIC1<='1';end if;end if;end process C1;C5:process(HIGH,LOW)function decode(four:std_logic_vector(3 downto 0)) return std_logic_vector is variable outdata:std_logic_vector(6 downto 0);begincase four isWHEN "0000"=>outdata:="1111110";WHEN "0001"=>outdata:="0110000";WHEN "0010"=>outdata:="1101101";WHEN "0011"=>outdata:="1111001";WHEN "0100"=>outdata:="0110011";WHEN "0101"=>outdata:="1011011";WHEN "0110"=>outdata:="1011111";WHEN "0111"=>outdata:="1110000";WHEN "1000"=>outdata:="1111111";WHEN "1001"=>outdata:="1111011";WHEN others=>outdata:="0000000";end case;return(outdata);end decode;beginCOUT1<=decode(LOW);COUT2<=decode(HIGH);MUSIC<=MUSIC1;end process C5;end;在附录部分有上述代码在MAX+PLUXII软件中的部分仿真结果,具体电路模拟结果参照附录。