最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于VHDL的四路抢答器

来源:动视网 责编:小OO 时间:2025-09-24 11:13:13
文档

基于VHDL的四路抢答器

《EDA技术综合设计》课程设计报告报告题目:基于VHDL的四路抢答器作者所在系部:电子工程系作者所在专业:作者所在班级:作者姓名:指导教师姓名:完成时间:一概述………………………………………………………………………3二方案设计与论证………………………………………………………………3三单元电路设计…………………………………………………………………33.1抢答鉴别模块……………………………………………………33.1.1源程序设计…………………………………………………………43.1.2仿真图…………
推荐度:
导读《EDA技术综合设计》课程设计报告报告题目:基于VHDL的四路抢答器作者所在系部:电子工程系作者所在专业:作者所在班级:作者姓名:指导教师姓名:完成时间:一概述………………………………………………………………………3二方案设计与论证………………………………………………………………3三单元电路设计…………………………………………………………………33.1抢答鉴别模块……………………………………………………33.1.1源程序设计…………………………………………………………43.1.2仿真图…………
《EDA技术综合设计 》

课程设计报告

报 告  题 目:  基于VHDL的四路抢答器    

作者所在系部:        电子工程系           

作者所在专业:                       

作者所在班级:                      

作 者 姓 名 :                         

指导教师姓名:                       

完 成 时 间 :                    

一 概 述………………………………………………………………………3

二 方案设计与论证………………………………………………………………3

三 单元电路设计…………………………………………………………………3

3.1抢答鉴别模块……………………………………………………3

3.1.1源程序设计 ………………………… ……………………………… 4                                               

3.1.2 仿真图………………………………………… …………………… 4

3.2 抢答计时模块 ………………………………………… ……………… 5

3.2.1源程序设计 ………………………………………………………… 5

3.2.2 仿真图 ………………………………………………………………6

3.3 数据选择模块 ……………………………………………………………6

 3.3.1源程序设计 ………………………………………………………… 6

3.3.2 仿真图……………………………………………………………… 7

3.4报警模块……………………………………………… ………………… 7

 3.4.1源程序设计 ………………………………………………………… 7

3.4.2 仿真图………………………………………… …………………… 8

3.5分频模块……………………………………………………………………8

 3.5.1源程序设计 ………………………………………………………… 8

3.5.2 仿真图…………………………………………………………………9

3.6 顶层文件………………………………………………………………… 9

3.6.1源程序设计……………………………………………………………9

3.6.2 仿真图 ………………………………………………………………10

3.7顶层文件……………………………………………………………………10

3.8 主电路连线图………………………………………………………………10

四、器件编程与下载 ……………………………………………………………11

五 性能测试与分析………………………………………………………………12

(要围绕设计要求中的各项指标进行)

六 实验设备………………………………………………………………………12

七 心得体会………………………………………………………………………12

八 参考文献………………………………………………………………………13

课程设计任务书

课题

名称基于VHDL的四路答器

完成

时间

指导

教师

职称学生

姓名

班级
总体设计要求和技术要点
设计要求:

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

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

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

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

5. 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

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

技术要点:1、实现封锁功能; 3、总程序的编译、仿真、打包并下载到实验箱。

工作内容及时间进度安排

工作内容:1、编程、仿真、打包、编辑总程序,编译。2、下载到实验箱,验证结果。

进度安排:周一到周五上机调试程序。周六并下载验证,做硬件实验。周日课设验收并总结报告。

课程设计成果
1.与设计内容对应的软件程序         2.课程设计报告书

3.成果使用说明书                   4.设计工作量要求

  课程设计流程图 

一、概述 

抢答器主要由抢答鉴别模块、抢答计时模块、数据选择模块、报警器、译码模块和分频模块组成。在设计中,要实现倒计时功能,并且主持人按键后才能抢答,一人抢答后,其他人就不能再抢答了。抢答器共有3个输出显示,选手代号、计数器的个位和十位,把这三个输出与显示译码器连接,实现显示功能。当主持人按下控制键、选手按下抢答键或倒计时到时蜂鸣器短暂响起。

二、方案设计与论证

将该任务分成六个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、数据选择模块、报警模块、译码模块和分频模块,最后是撰写顶层文件。

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

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

一、单元电路设计

3.1抢答鉴别模块

  3.1.1、VHDL源程序

library ieee;--抢答鉴别模块

use ieee.std_logic_11.all;

use ieee.std_logic_unsigned.all;

entity qdjb is

  port(rst,clk2:in std_logic;

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 (s1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' ) then st(1)<='1';

if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' ) then st(2)<='1';

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

tmp<=s0 or s1 or s2 or s3;

end if ;

end process p1;

p2:process(states(0),states(1),states(2),states(3))

 begin

 if (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;

3.1.2、仿真图:

3.2抢答计时模块

3.2.1、VHDL源程序

library ieee;--抢答器计时模块

use ieee.std_logic_11.all;

use ieee.std_logic_unsigned.all;

entity js is

  port(clk,rst,s,stop:in std_logic;

end js;

architecture one of js is

signal co:std_logic;

begin

p1:process(clk,rst,s,stop,ta)

end process p1;

p2:process(co,rst,s,stop,tb)

end process p2;

3.2.2、仿真图

3.3数据选择模块

  3.3.1、VHDL源程序

LIBRARY  IEEE;

USE  IEEE.STD_LOGIC_11.ALL;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

ENTITY  sjxz  IS

 PORT (a,b,c: IN  STD_LOGIC_vector(3 downto 0);

clk2,rst: IN  STD_LOGIC;

         s: out  STD_LOGIC_vector(1 downto 0);

             y: OUT STD_LOGIC_vector(3 downto 0) );

 END sjxz;

ARCHITECTURE body_chooser OF sjxz IS

  SIGNAL  count: STD_LOGIC_VECTOR(1 DOWNTO 0);

  BEGIN

s<=count;

  PROCESS(clk2,rst)

  BEGIN

if(rst='0')then count<="00";

     elsif(clk2'event and clk2='1')then 

if(count>="10")then

count<="00";

else count<=count+1;

 end if;

end if;

case count is

WHEN "00"=>y<=a;

WHEN "01"=>y<=b;

WHEN "10"=>y<=c;

WHEN OTHERS=>NULL;

   END CASE; 

   END PROCESS;

   END body_chooser;

3.3.2、仿真图

3.4报警模块

3.4.1、VHDL源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ALARM IS

PORT(CLK,I:IN STD_LOGIC;

END ALARM;

ARCHITECTURE BEHAVE OF ALARM IS

  SIGNAL warn:STD_LOGIC;

  SIGNAL N:INTEGER RANGE 0 TO 20;

BEGIN

Q<=warn;

  PROCESS(CLK)

END PROCESS;

END BEHAVE;

3.4.2、仿真图

3.5译码模块

3.5.1、VHDL源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY YMQ IS

  PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

       DOUT7:  OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

END YMQ;

ARCHITECTURE ART OF YMQ IS

BEGIN

  PROCESS(AIN4)

    BEGIN

   CASE AIN4 IS

    WHEN "0000"=>DOUT7<="1111110";              --0

    WHEN "0001"=>DOUT7<="0110000";              --1

WHEN "0010"=>DOUT7<="1101101"; --2

WHEN "0011"=>DOUT7<="1111001"; --3

WHEN "0100"=>DOUT7<="0110011"; --4

WHEN "0101"=>DOUT7<="1011011"; --5

WHEN "0110"=>DOUT7<="1011111"; --6

    WHEN "0111"=>DOUT7<="1110000";              --7

WHEN "1000"=>DOUT7<="1111111"; --8

WHEN "1001"=>DOUT7<="1111011"; --9

WHEN OTHERS=>DOUT7<="0000000";

    END CASE;

  END PROCESS;

END ARCHITECTURE ART;

3.5.2、仿真图

3.6分频模块

3.6.1、VHDL源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY clkdiv IS

PORT(clk2 : IN STD_LOGIC;

clk16 : OUT STD_LOGIC);

END clkdiv;

ARCHITECTURE rtl OF clkdiv IS

SIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS(clk2)

BEGIN

IF (clk2'event AND clk2='1') THEN

IF(count="1111") THEN

Count <="0000";

ELSE

Count <= count +1;

END IF ;

END IF ;

END PROCESS;

PROCESS(clk2)

BEGIN

IF (clk2'event AND clk2='1') THEN

IF(count="1111") THEN

clk16 <= '1';

ELSE

clk16 <= '0';

END IF ;

END IF ;

END PROCESS;

END rtl;

3.6.2、仿真图

3.7顶层文件

3.7.1VHDL源程序

library ieee;--抢答器顶层文件

use ieee.std_logic_11.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity qiangdaqi is

  port(clk,clk2,s,s0,s1,s2,s3,stop,rst:in std_logic;

end qiangdaqi;

architecture bhv of qiangdaqi is

component qdjb is

  port(clk2,rst:in std_logic;

           s0,s1,s2,s3:in std_logic;   

end component;

component js is

  port(clk,rst,s,stop:in std_logic;

end component;

component sjxz is

end component;

component ymq is

 port(AIN4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

end component;

component alarm is

end component;

signal states_out,ta_out,tb_out,y_out:std_logic_vector(3 downto 0);

signal ledout:std_logic_vector(6 downto 0);

signal w:std_logic;

begin

a<=ledout(6);b<=ledout(5);c<=ledout(4);d<=ledout(3);e<=ledout(2);f<=ledout(1);g<=ledout(0);

u1:qdjb port map(clk2,rst,s0,s1,s2,s3,tmp=>k,states=>states_out);

u2:js port map(clk,rst,s,stop,warn=>n,ta=>ta_out,tb=>tb_out);

u3:sjxzportmap(clk2=>clk2,rst=>rst,a=>states_out,b=>ta_out,c=>tb_out,s=>m,y_out;

u4:ymq port map(ain4=>y_out,DOUT7=>ledout);

u5:alarm port map(clk2,i=>s,q_out);

end bhv;

3.7.2仿真图

3.8主电路连线图

四、器件编程与下载

将编译好的模块程序下载到CPLD中(注:device选取要与硬件对应,否则会导致实验失败),连线做硬件实验。 

五、性能测试与分析

 按下复位键rst抢答信号清零、计数器清零,按下始能键s,观察数码管是否开始倒计时同时扬声器是否发出报警声,按下抢答键s0观察数码管是否显示相应位数,再按s1,s2.s3均不改变显示实现封锁,按下rst键,观察是否清零,再按s键,不按别的,直到计时时间到,观察是否显示00,扬声器是否发出报警。  

六、实验设备

计算机,EL教学实验箱

七、心得体会

通过这次EDA课程设计,在了解到抢答器的基本工作原理的同时,我还基本掌握了试验软件的使用方法,并且意识到作为二十一世纪的跨世纪电子通讯专业人才,这些软硬件的应用操作常识是必不可少的。在此次实训的过程中,我们虽然碰到了很多困难和问题,到最后还是靠大家的共同努力与坚持的完成了任务。当遇到了自己无法解决的困难与问题的时候,还请教老师给予指导和帮助。这次实训给我最深的印象就是扩大自己的知识面,了解更多与本专业有关的科技信息,与时代共同进步,才能在将来成为有用的科技人才。

八、参考文献

[1] 、李国洪,沈明山:《可编程逻辑器件EDA技术与实践》,[M].机械工业出版社,2004.7

[2]、江国强:《EDA技术习题与实验》 电子工业出版社 ,2002.5

[3]、曹昕燕,周风臣,聂春燕:《EDA技术试验与课程设计》,清华大学出版社,2006.5

[4]、黄仁欣:《EDA技术实用教程》,清华大学出版社,2006.9

[5]、王振红:《数字电路设计与应用实践教程》,机械工业出版社2003.6 

指导教师评语及设计成绩

       评   语     

课程设计成绩:                 

  

指导教师:              

日期:      年    月   日

文档

基于VHDL的四路抢答器

《EDA技术综合设计》课程设计报告报告题目:基于VHDL的四路抢答器作者所在系部:电子工程系作者所在专业:作者所在班级:作者姓名:指导教师姓名:完成时间:一概述………………………………………………………………………3二方案设计与论证………………………………………………………………3三单元电路设计…………………………………………………………………33.1抢答鉴别模块……………………………………………………33.1.1源程序设计…………………………………………………………43.1.2仿真图…………
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top