8. МУЛЬТИПЛЕКСОР




Def
===
	МУЛЬТИПЛЕКСОР - устройство подключающее один из входных каналов
к выходному под воздействием управляющих входов. (Multiplexer)


ANSI/DIN


Простейший мультиплексор 2 в 1. Если S0 == 0 то O = D0 Если S0 == 1 то O = D1 ---------------- S0 D1 D0 | O ---------+------ 0 0 0 | 0 // D0 0 0 1 | 1 // D0 0 1 0 | 0 // D0 0 1 1 | 1 // D0 1 0 0 | 0 // D1 1 0 1 | 0 // D1 1 1 0 | 1 // D1 1 1 1 | 1 // D1 ----------------





Мультиплексор легко реализуется на CMOS.

Программа для Мультиплексора 2 в 1 на Verilog (switch-level): module mux2_1(out,s,i0,i1); output out; input s,i0,i1; wire sinv; // sinv = ~ s not(sinv,s); cmos(out,i0,sinv,s); cmos(out,i1,s,sinv); endmodule;


Программа на VHDL (для мультиплексора 2x1): library ieee; use ieee.std_logic_1164.all; entity MUX1 is port ( SEL, X0, X1 : in std_logic; F : out std_logic); end MUX1; architecture RTL of MUX1 is begin F <= X0 when SEL = '0' else X1; end RTL; Результаты эмуляции:



Программа на Verilog для мультиплексора 4 в 1: module MUX4(C,D,E,F,S,MUX_OUT); input C,D,E,F; input [1:0] S; output MUX_OUT; reg MUX_OUT; always @(C or D or E or F or S) begin case(S) 2'b00 : MUX_OUT = C; 2'b01 : MUX_OUT = D; 2'b10 : MUX_OUT = E; default : MUX_OUT = F; endcase end endmodule


Пример мультиплексора 4 в 1:



Его реализация на CMOS:




Реализация логики с помощью MUX:



AND: ------------------ | 0 x | y | s0 s1 | out ---+--------+----- 0 | 0* 0 | 0 0 | 0* 1 | 0 1 | 0 0* | 0 1 | 0 1* | 1 ------------------ OR: ------------------ | X 1 | y | s0 s1 | out ---+--------+----- 0 | 0* 1 | 0 0 | 1* 1 | 1 1 | 0 1* | 1 1 | 1 1* | 1 ------------------ XOR: ------------------ | X X# | y | s0 s1 | out ---+--------+----- 0 | 0* 1 | 0 0 | 1* 0 | 1 1 | 0 1* | 1 1 | 1 0* | 0 ------------------

Index Prev Next