EDA课程设计

发布 2022-09-30 19:39:28 阅读 7246

[,华东交通大学理工学院。

课程设计报告书。

所属课程名称 eda技术及应用课程设计

题目基于vhdl的四路抢答器

分院电信分院。

专业班级 07通信工程(2)班

学号 22号。

学生姓名刘高斐。

指导教师李房云。

2024年7月1日。

华东交通大学理工学院。

专业 07通信工程班级 2班姓名刘高斐

一、课程设计(**)题目: 基于vhdl的四路抢答器。

二、课程设计(**)工作:自 2010 年 6 月 30 日起至 2010 年 7 月 3 日止。

三、课程设计(**)的内容要求:

1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮s0~ s3表示。

2.设置一个系统清除和抢答控制开关s,该开关由主持人控制。

3.抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在led数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

学生签名。20 年月日。

课程设计(**)评阅意见:

评阅人: 职称。

20 年月日。

目录。课程设计( ** )任务书 2

第一章程序设计目的 5

第二章程序实现思路 6

第三章程序清单或正文 8

第四章课程设计心得 14

附录参考文献 15

第一章程序设计目的。

1、了解四路抢答器的工作原理。

2、综合应用所学知识对四路抢答器的设计,了解用vhdl语言来实现数字系统的设计。

3、通过对vdhl语言的熟练掌握,了解vhdl在其他领域的应用。

这次设计的四人抢答器,它主要由抢答鉴别模块、分频器、计时模块、选择控制和报警器组成。在整个抢答器中最关键的是如何实现抢答封锁,在控制键按下的同时计数器倒计时显示有效剩余时间。除此之外,整个抢答器还需有一个使能信号和一个归零信号,以便抢答器能实现公平抢答和停止。

抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为bcd码输出,这样便于和显示译码器连接。抢答器具有四路抢答输入,主持人按下复位键后,系统复位进入抢答状态,计时显示初始值;当某组首先按下抢答键时,该路抢答信号,抢答器能够设别最先抢答的信号,锁定该信号,同时扬声器响起,参赛小组的序号在数码管上显示;主持人对抢答结果进行确认,给出倒计时计数允许信号,开始回答问题,计时显示器从初始值30开始以秒为单位倒计时,计数至0时,停止计数,扬声器发出超时报警信号,以中止继续回答问题;当主持人给出倒计时计数禁止信号时,扬声器停止鸣叫;参赛者在规定时间内回答完问题,主持人给出倒计时计数禁止信号,以免扬声器鸣叫,按下复位键,又可开始新一轮的抢答。

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、 顶层文件:

在这个模块中是对前五个模块的综合编写的顶层文件。

第三章程序清单或正文。

一)抢答鉴别模块。

library ieee;

use use

entity qdjb is

port( clk,rst:in std_logic;

warn:in std_logic;

s0,s1,s2,s3:in std_logic;

states:out std_logic_vector(3 downto 0);

stop:out std_logic;

led:out std_logic_vector(3 downto 0));

end qdjb;

architecture one of qdjb is

signal st:std_logic_vector(3 downto 0);

beginprocess(rst,clk,s0,s1,s2,s3)

beginif rst='1' then st<="0000";led<="0000";stop<='0';-复位信号有效时清零。

elsif clk event and clk='1' then

if warn='0' then

if( s3='1')and not(st(0)='1' or st(1)='1' or st(2)='1') then

st(3)<=1';led(3)<=1';

elsif( s2='1')and not(st(0)='1' or st(1)='1' or st(3)='1') then

st(2)<=1';led(2)<=1';

elsif( s1='1')and not(st(0)='1' or st(2)='1' or st(3)='1') then

st(1)<=1';led(1)<=1';

elsif( s0='1')and not(st(1)='1' or st(2)='1' or st(3)='1') then

st(0)<=1';led(0)<=1';

end if;

stop<=st(0) or st(1) or st(2) or st(3);

end if;

end if;

case st is

when "0001"=>states<="0001";

when "0010"=>states<="0010";

when "0100"=>states<="0011";

when "1000"=>states<="0100";

when others=>states<="0000";

end case;

end process;

end architecture one;

二)计时模块。

library ieee;

use use

entity js is

port(clk,clear,stop,en:in std_logic;

warn:out std_logic;

high,low:out std_logic_vector(3 downto 0));

end js;

architecture three of js is

signal hs:std_logic_vector(3 downto 0);

signal ls:std_logic_vector(3 downto 0);

beginprocess(clk)

beginif clear='1' then

hs<="1001";ls<="1001";warn<='0';

elsif clk'event and clk='1' then

ls<=ls-1;

if ls="0000" then

ls<="1001";hs<=hs-1;

if hs="0000" and ls="0000" then

warn<='1';hs<="0000";ls<="0000";

EDA课程设计

题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...

eda课程设计

哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...

eda课程设计

目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...