当前位置:
文档之家› 基于Quartus完成的四路抢答器设计_豆晓东
基于Quartus完成的四路抢答器设计_豆晓东
F
答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。 5.2 报警模块(已包含在抢答鉴别模块里) 在这个模块中主要实现抢答过程中的报警功能,当主 持人按下控制键,有人抢答时蜂鸣器开始报警,有效电平 输入信号i;状态输出信号q;计数脉冲clk2。 5.3 译码模块 在这个模块中主要实现抢答过程中将选手的台号转换 成二进制码并送给数码管显示。 各模块程序如下: 抢答鉴别模块: 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 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 ;
◆
中图分类号:TM571.61
Computer CD Software and Applications
23
产业聚焦
智慧城市
Industry focus
END YMQ; ARCHITECTURE ART OF YMQ IS BEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS WHEN "0001"=>DOUT7<="0110000"; --1 WHEN "0010"=>DOUT7<="1101101" --2 WHEN "0011"=>DOUT7<="1111001"; --3 WHEN "0100"=>DOUT7<="0110011"; --4 WHEN OTHERS=>DOUT7<="0000000"; END CASE; END PROCESS; END ARCHITECTURE ART; 6 结束语 本文利用硬件描述高级语言VHDL设计的优点完成了 对应单元的电路设计,使系统较为简洁合理。利用复杂可 编程器件实现了抢答器的系统功能,使电路引脚定义自 如,实际印板布线灵活,应用可靠。通过以上实例可以 看出,用VHDL语言设计数字系统,是自上至下地进行设 计,十分方便灵活。由于VHDL具有并行同时语句,设计 的电路延迟小。
抢答鉴别仿真结果
译码器仿真
四路抢答器模块示意图
参考文献: [1]谭会生,瞿遂春.EDA技术综合应用实例与分析[M].西安:西安电子科技大学出版社,2004. [2]李国洪,胡辉,沈明山.EDA技术与实验[M].北京:机械工业出版社,2008. [3]王道宪,贺名臣,刘伟.VHDL电路设计技术[M].北京:国防工业出版社,2004. 作者简介:豆晓东(1989-),男,山西应县人,北华航天工业学院,学生,学士学位,研究方向:自动化; 倪春伟(1990-),男,河北唐山人,北华航天工业学院,学生,学士学位,研究方向:自动化; 周振(1989-),男,苗族,湖南怀化人,北华航天工业学院,学生,学士学位,研究方向:自动化。
24
Computer CD Software and Applications
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; 译码模块: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.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));
1 FLEX10K LEX10K 系列器件首次采用嵌入式阵列,其容 量高达25万门。由于它的高密度和易于在设计 中实现复杂宏函数和存储器,因此可以把一个 子系集成在单一芯片上,而每个FLEX10K器件都包含一个 嵌入式阵列,每个嵌入式阵列可以实现专用的功能,因此 嵌入式阵列可以减少芯片的体积,使其运行速度更快,使 用更灵活。 2 VHLD硬件描述语言简介 VHDL 最早是由美国国防部提出的。作为硬件描述 语言的第一个国际标准,VHDL描述电路行为的算法有很 多优点:( 1 )设计层次较高,用于较复杂的计算时,能 尽早发现存在的问题,缩短设计周期。( 2 )独立实现、 修改方便。( 3 )移植性强,其源代码已成为一种输入标 准,可用于各种不同的EDA工具。(4)VHDL类型众多而 且支持用户自定义类型,支持自顶而下的设计方法和多种 电路的设计。 3 QuartusⅡ简介 Altera的QuartusⅡ设计软件继承了MAX+plusⅡ的所有 优点,是更加完善的PLD设计工具。它提供了完整的多平 台设计环境,能够直接满足特定设计需要,为可编程芯片 系统(SOPC)提供全面的设计环境。 4 设计思路 设计制作一个竞赛抢答器,每组受控于一个抢答按 键,分别为s0、s1、s2、s3,设置主持人控制键rst,用于 控制整个系统清零和抢答有效控制。按下复位键时,系统 清零;抬起复位键时,抢答开始;系统具有第一抢答信号 鉴别和锁存功能。在主持人将系统复位并使抢答有效开始 后,第一抢答者按下抢答按钮,电路应记忆下第一抢答者 的组别,并封锁其他各组的按钮,即其他任何一组按键都 不会使电路响应;系统以两种方式指示第一抢答者:一是 通过对应的输出引脚让数码管显示组别号;二是在第一抢 答者产生时,蜂鸣器响起。 5 原理分析 5.1 抢答器鉴别模块 在这个模块中主要实现抢答过程中的抢答功能,还 能记录抢答者的台号,并且能实现当有一路抢答按键按 下时,其余各路被封锁的功能。其中有四个抢答信号s0、 s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢
Industry focus 智慧城市
产业聚焦
基于Quartus完成的四路抢答器设计
豆晓东, 倪春伟, 周振 / 北华航天工业学院电子工程系, 河北廊坊 065000
摘 要:针对实际应用的需要,利用可编程逻辑器件设计了抢答器。该抢答器单元电路的软件设计利用硬件描述语言设 计完成。设计了控制主电路、数字显示电路、编码译码电路功能,并利用Quartus工具软件完成了编译仿真验证;硬件 选择FLEX10K系列的EPF10K10LC84-4芯片来实现抢答器的系统功能。该抢答器具有很强的功能扩充性,应用效果良好。 关键词:可编程逻辑器件;抢答器;硬件描述语言;仿真;系统可编程