上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4 1对4解任务器
解多任务器功能恰恰与多任务器相反。解多任务器可将单一输入线上的信号传送到很多可能的输出线上,加入控制信号,可将输入信号传送到所要的输出线上。解多任务器主要分为三部分:控制线,数据线与输出线。例如1对4解多任务器有2条控制线,1条数据线,4条输出线。在此以1对4解多任务器电路作为范例。
NI Multisim 11中“1对4解任务器”电路如图1.2.12所示。
图1.2.12 “1对4解任务器”电路
NI Multisim 11中产生的“1对4解任务器”的VHDL代码如下所示。
--------------------------------------------------- -- Source File: -- Sheet: 1_uc15bf94_uc489e34efb52a15668 -- RefDes: PLD1 -- Part Number: -- Generated By: NI Multisim -- -- Author: ni -- Date: Friday, August 27 09:23:21, 2010 --------------------------------------------------- --------------------------------------------------- -- Use: This file defines the top-level of the design -- Use With File: --------------------------------------------------- library ieee; use ieee.std_logic_1164.ALL; use ieee.numeric_std.ALL; library work; use work.1_uc15bf94_uc489e34efb52a15668_pkg.ALL; entity \1_uc_uc15bf94_uc_uc489e34efb52a15668\ is port ( S1 : in std_logic; S0 : in std_logic; D : in std_logic; Y0 : out std_logic; Y1 : out std_logic; Y2 : out std_logic; Y3 : out std_logic ); end \1_uc_uc15bf94_uc_uc489e34efb52a15668\; architecture behavioral of \1_uc_uc15bf94_uc_uc489e34efb52a15668\ is component AND3_NI port ( C : in STD_LOGIC := ' X' ; B : in STD_LOGIC := ' X' ; A : in STD_LOGIC := ' X' ; Y : out STD_LOGIC := ' U' ); end component; component AUTO_IBUF port( I : in std_logic; O : out std_logic ); end component; component AUTO_OBUF port( I : in std_logic; O : out std_logic ); end component; component BUF_INV_NI port ( A : in STD_LOGIC := ' X' ; Y : out STD_LOGIC := ' U' ); end component; signal \1\ : std_logic; signal \2\ : std_logic; signal \3\ : std_logic; signal \4\ : std_logic; signal \5\ : std_logic; signal \6\ : std_logic; signal \7\ : std_logic; signal \8\ : std_logic; signal \9\ : std_logic; begin S1_AUTOBUF : AUTO_IBUF port map( I => S1, O => \2\ ); S0_AUTOBUF : AUTO_IBUF port map( I => S0, O => \1\ ); D_AUTOBUF : AUTO_IBUF port map( I => D, O => \3\ ); Y0_AUTOBUF : AUTO_OBUF port map( I => \6\, O => Y0 ); Y1_AUTOBUF : AUTO_OBUF port map( I => \7\, O => Y1 ); Y2_AUTOBUF : AUTO_OBUF port map( I => \8\, O => Y2 ); Y3_AUTOBUF : AUTO_OBUF port map( I => \9\, O => Y3 ); U1 : BUF_INV_NI port map( Y => \5\, A => \1\ ); U2 : BUF_INV_NI port map( Y => \4\, A => \2\ ); U3 : AND3_NI port map( A => \4\, B => \5\, C => \3\, Y => \6\ ); U4 : AND3_NI port map( A => \4\, B => \1\, C => \3\, Y => \7\ ); U5 : AND3_NI port map( A => \2\, B => \5\, C => \3\, Y => \8\ ); U6 : AND3_NI port map( A => \2\, B => \1\, C => \3\, Y => \9\ ); end behavioral;
NI Multisim 11中“1对4解任务器”电路的仿真实例如图1.2.13所示。
图1.2.13 “1对4解任务器”电路的仿真实例
波形图如图1.2.14所示。
图1.2.14 “1对4解任务器”输出波形图