基于NI Multisim 11的PLD/PIC/PLC的仿真设计
上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解任务器”输出波形图