由图看出:当E=1时,输出q才随输入d变化。结果正确。
四、思考题
在本次实验中你使用的VHDL描述方式是和实验二中一样的结构化描述还是行为级描述?这两种方式描述的编译出来的仿真结果是否相同?
答;本次实验中采用的VHDL描述方式是行为级描述。
实验四
异步清零和同步时钟使能的4位加法计数器
一、实验目的:
学习计数器的设计、仿真和实际硬件电路测试方法;进一步练习用VHDL语
言设计数字逻辑电路。 二、实验原理
下面给出的是本试验中所要设计的计数器的结构框图,由4位带异步清零的
加法计数器和一个4位锁存器组成。其中,rst是异步清零信号,高电平有效;clk是计数时钟;ENA为计数器输出使能控制。当ENA为‘1’时,加法计数器的计数值通过锁存器输出;当ENA为‘0’时锁存器输出为高阻态。
三、实验内容
1)用VHDL语言完成上述计数器的行为级设计。
可以采用分层描述的方式,分别设计计数器和输出锁存器模块,然后将两个模块组合成一个顶层模块。注意输出锁存器输出高阻时的描述的方式。 2)用QuartusⅡ对上述设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。
仿真波形:
由图看出:当ENA=1且RST=0时计数器开始计数,当ENA=0时停止计数。若RST=1则计数器OUTY=1111时,进位信号COUT=1。结果正确。
3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。 引脚锁定:clk: clk1 1 clk1 rst: PIO24 35 SW2
ena: PIO23 30 SW1
计数输出outy(3) PIO19 29 LED12 outy(2) PIO20 28 LED11 outy(1) PIO21 27 LED10 outy(0) PIO22 25 LED9 cout PIO12 23 LED7 四、思考题
如果需要设计带并行预置初始值的计数器,用VHDL应如何描述? 答:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4A IS
PORT (CLK : IN STD_LOGIC; RST : IN STD_LOGIC; ENA : IN STD_LOGIC;
OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC ); END CNT4A;
ARCHITECTURE behav OF CNT4A IS
SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
P_REG: PROCESS(CLK, RST, ENA) BEGIN
IF RST = '1' THEN CQI <= \ ELSIF CLK'EVENT AND CLK = '1' THEN
IF ENA = '1' THEN CQI <= CQI + 1; END IF; END IF;
OUTY <= CQI ;
END PROCESS P_REG ;
COUT<=CQI(0) AND CQI(1) AND CQI(2) AND CQI(3); END behav;
实验五 七段数码显示译码器设计
一、
实验目的:
学习7段数码显示译码器的设计和利用VHDL语言进行层次化电路设计的方法。
二、实验原理:
七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构
成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。
七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数
码管显示出该字符的编码。 三、实验内容
1)用VHDL设计7段数码管显示译码电路,并在QuartusⅡ平台下对设计的译码器进行时序仿真,给出仿真的波形。 仿真波形
2)数码管显示电路设计
利用以上设计的译码器模块,设计一个可以在8个数码管上同时显示字符
的电路。快速轮流点亮8个数码管,这样就可以实现同时显示8个字符的效果(尽
相关推荐: