上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.3 2对1多任务器
多任务器是一种数据处理的逻辑电路,可以在许多的输入数据中选取一个并将它送至单一输出线上,也称为数据选择器。多任务器主要分为三部分:控制线,数据线和输出线。例如16对1的多任务器有4条控制线,16条数据线,1条输出线。下面以2对1多任务器电路作为范例来进行说明。
NI Multisim 11中“2对1多任务器”电路如图1.2.9所示。
图1.2.9 “2对1多任务器”电路
NI Multisim 11中产生的“2对1多任务器”的VHDL代码如下所示。
--------------------------------------------------- -- Source File: E:\_uc3300a57fa4e8e~1\_uc34e0a7bc757fa~1\_ uc37b2c4e8c7ae0~1\2_uc15bf91_uc1591a~1.MS1 -- Sheet: 2_uc15bf91_uc4591a4efb52a15668_1 -- RefDes: PLD1 -- Part Number: -- Generated By: NI Multisim -- -- Author: ni -- Date: Friday, August 27 08:39:15, 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.2_uc15bf91_uc4591a4efb52a15668_pkg.ALL; entity \2_uc_uc15bf91_uc_uc4591a4efb52a15668_1\ is port ( S : in std_logic; D0 : in std_logic; D1 : in std_logic; Y : out std_logic ); end \2_uc_uc15bf91_uc_uc4591a4efb52a15668_1\; architecture behavioral of \2_uc_uc15bf91_uc_uc4591a4efb52a15668_1\ is component AND2_NI port ( 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; component OR2_NI port ( B : in STD_LOGIC := ' X' ; 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; begin S_AUTOBUF : AUTO_IBUF port map( I => S, O => \3\ ); D0_AUTOBUF : AUTO_IBUF port map( I => D0, O => \2\ ); D1_AUTOBUF : AUTO_IBUF port map( I => D1, O => \1\ ); Y_AUTOBUF : AUTO_OBUF port map( I => \7\, O => Y ); U1 : BUF_INV_NI port map( Y => \4\, A => \3\ ); U2 : AND2_NI port map( A => \4\, B => \2\, Y => \5\ ); U3 : AND2_NI port map( A => \3\, B => \1\, Y => \6\ ); U4 : OR2_NI port map( A => \5\, B => \6\, Y => \7\ ); end behavioral;
NI Multisim 11中“2对1多任务器”电路的仿真实例如图1.2.10所示。
图1.2.10 “2对1多任务器”电路仿真实例
输出波形如图1.2.11所示。
图1.2.11 “2对1多任务器”输出波形