2)用VHDL语言设计一个四选一数据选择器电路。
要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。
a0a1=00.选d0; a0a1=10 选d1; a0a1=01 选d2 ;a0a1=11 选d3;可以看到仿真正确.
3)硬件测试(选用器件 EPF10K10 Pin84) 管脚锁定:
四选一数据选择器 a1 PIO23 30 SW1 a0 PIO24 35 SW2
d3 PIO27 38 SW5 d2 PIO28 39 SW6 d1 PIO29 47 SW7 d0 PIO30 42 SW8 yout 29 LED12
四、思考题
如果不使用元件例化语句,而是直接设计四选一数据选择器mux41,应如何
用VHDL进行描述?
答:
library ieee;
use ieee.std_logic_1164.all; entity mux41 is
port(a,b,c,d,s1,s0:in std_logic; y:out std_logic ); end entity mux41;
architecture one of mux41 is
signal s1s0:std_logic_vector(1 downto 0); begin
s1s0 <=s1&s0; process (s1s0) begin
case s1s0 is when \when \when \when \when others=>null; end case; end process;
end architecture one;
仿
真
波
形
如
下
实验三 简单时序电路的设计
一、实验目的:
掌握QuartusⅡ环境下以VHDL作为输入的整个设计过程,学习简单时序电路
的设计、仿真和硬件测试方法。 二、实验原理
时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的
90%以上。触发器是时序电路的基本单元,本实验中将涉及到边沿触发和电平触发两种电路结构,其中边沿触发是实际电路实现的主要方式。 三、实验内容
1) 设计一个上升沿触发的D触发器
输入:D 输出:Q 触发时钟:CLK
2) 设计同步/异步清零D触发器
触发器有两种清零方式:同步——当触发沿到来时,若清零信号有效,则实现清零;异步——任何时候清零信号一旦有效,触发器马上清零,而不论触发沿是否到来。
在以上设计的D触发器基础上,加入清零端rst,分别实现同步和异步清零方式。
3) 设计一个高电平有效的锁存器
输入:D 输出:Q 触发:E
电平触发的锁存器与沿触发的触发器不同之处在于当触发端处于有效电平
时,输出等于输出,随输入变化;触发端无效时输出保持不变。
4) 在QuartusⅡ环境下对以上设计的模块进行编译,记录时序分析数据和仿真波形,并在实验电路上进行硬件测试。
管脚锁定: D
PIO23 30 SW1
CLK1 1 频率源(35 SW2)
CLK
Q PIO19 29 LED12
5) 请分析和比较1)和3)的仿真和实测结果,说明两者之间的异同点。
答:相同点是:两者均能在CLK高电平上升沿到达时输出等于输入,且在CLK处于低电平时输出保持低电平之前的一个高电平时的输出状态;
不同点是:前者直到下一个CLK高电平到达前均保持相同输出,而后者在CLK保持高电平期间,若输入D发生变化,则输出Q也随之变化。
D触发器 仿真波形;
由图看出:在上升沿触发时,才有Q=D,结果正确。 异步清零D触发器
仿真波形
由图看出:当RST=1时,就将触发器置0了,结果正确。 同步清零D触发器
仿真波形:
由图看出:当RST=1时,只有下一个上升沿到的时候才能将触发器置0,结果正确。 锁存器 仿真波形
相关推荐: