——四路抢答器。
学院:物理电气信息学院。
班级:10级。
姓名:学号:
指导老师:杨泽林。
一方案设计。
将该任务分成七个模块进行设计,分别为:抢答器鉴别模块、抢答器计时模块、抢答器记分模块、分频模块、译码模块、数选模块、报警模块,最后是顶层文件。
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. 顶层文件:
在这个模块中是对前七个模块的综合编写的顶层文件。
二单元电路设计。
一)抢答模块。
源程序。library ieee;--抢答鉴别模块。
use use
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);
beginp1:process(s0,rst,s1,s2,s3,clk2)
beginif rst='0' then
tmp<='0';st<="0000";
elsif clk2'event 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)='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.抢答鉴别模块符号图。
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。
二)计时模块。
源程序。library ieee;
use use
entity js is
port(clk,rst,s,stop:in std_logic;
warn:out std_logic;
ta,tb:buffer std_logic_vector(3 downto 0));
end js;
architecture one of js is
signal co:std_logic;
beginp1:process(clk,rst,s,stop,ta)
beginif rst='0' or stop='1' then
ta<="0000";
elsif clk'event and clk='1' then
co<='0';
if s='1' then
if ta="0000" then
ta<="1001";co<='1';
else ta<=ta-1;
end if;
end if;
end if;
end process p1;
p2:process(co,rst,s,stop,tb)
beginif rst='0' or stop='1' then
tb<="0010";
elsif co'event and co='1' then
if s='1' then
if tb="0000" then tb<="0011";
else tb<=tb-1;
end if;
end if;
end if;
end process p2;
end one;
2.**图。
3.计时模块符号图。
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
三)数据选择模块。
源程序。library ieee;
use use
use 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);
begins<=count;
process(clk2,rst)
beginif(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;
2.**图。
3.数据选择模块符号图。
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..
0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
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计时...