EDA四选一选择器设计 下载本文

内容发布更新时间 : 2024/5/5 14:11:54星期一 下面是文章的全部内容请认真阅读。

4选1数据选择器

1·设计背景和设计方案 1·1设计背景

该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。

1·2设计方案

用拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证四选一数据选择器设计的正确性。使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。

其逻辑电路图如下:

Y>1&AA1110DDDD0123

其示意框图如下:

其中输入数据端口为D0、D1、D2、D3,A、A’为控制信号,Y为输出。 令AA’=“00”时,输出Y=D0; 令AA’=“01”时,输出Y=D1; 令AA’=“10”时,输出Y=D2; 令AA’=“11’ 时,输出Y=D3;

4 选 1 输入 D 1 Y 数 据 选 择 器 数据 D 2 D0

D 3

A A′

真值表如下: 输入 D A1 A0 D0 0 0 D1 0 1 D2 1 0 输出 Y D0 D1 D2 D3 1 1

D3 2·方案实施 1)程序1

2·1·1 设计思路

四选一多路选择器设计时,定义输入S为标准以内漏记为STD_LOGIC,输出的信号Z的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR( 1 DOWNTO 0 ).使用LIBRATY语句和USE语句,来打开IEEE库的程序包STD_LOGIC_1164.ALL。当输入信号时,程序按照输入的指令来选择输出,例如输入信号为“00”时,将a的值给z,进而输出z的值,输入信号为“11”是,将a的值给z,进而输出z的值。若输入信号是已经定义的四个信号之外的值时(即当IF条件语句不满足时),输出值为x,并将x的值给输出信号z。这样即可实现四选一数据选择的功能。 2·1·2 程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 is

PORT (a,b,c,d :IN STD_LOGIC;

s :IN STD_LOGIC_VECTOR(1 DOWNTO 0); z : OUT STD_LOGIC); END mux41;

ARCHITECTURE one OF mux41 IS BEGIN

PROCESS( s,a,b,c,d) BEGIN CASE s IS

WHEN \ WHEN \ WHEN \ WHEN \

WHEN OTHERS => z <=null; END CASE; END PROCESS; END one; 2·1·3 运行结果

当输入信号“00”时,输出信号z的值为‘a’;

当输入信号“01”时,输出信号z的值为‘b’; 当输入信号“10”时,输出信号z的值为‘c’; 当输入信号“11”时,输出信号z的值为‘d’; 2·1·4 波形仿真及描述 输入:

a 的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8ns。s[1]的波形周期为5ns,s[2]的波形周期为10ns。

输出:

2)程序2

2·2·1 设计思路

定义6个输入信号,一个输出信号,当控制信号A=‘1’时,muxval的值加1,即muxval=muxval+1;当控制信号B=‘1’时muxval的值加2,即muxval=muxval+2。当输入值为‘i0’时,输出q的值为0,当输入的值为‘i1’时,输出q的值为1,当输入值为‘i2’时,输出q的值为2,当输入值为‘i3’时,输出q的值为3。

2·2·2程序 LIBRARY IEEE;