7. ДЕШИФРАТОР




Def
===
	Дешифратор - устройство для которого определенный код на входных ногах
	приводит к сигналу на соответствующей выходной ноге
	(Decoder)

Def
===
	Полный дешифратор - дешифратор для которого определенный входной
	код приводит к сигналу на одной уникальной соответсвующей ноге.


Полный дешифратор 1 в 2



------------ A0 | S0 S1 ----+------- 0 | 1 0 1 | 0 1 ------------


Полный дешифратор 2 в 4

ANSI/DIN



-------------------- A1 A0 | S0 S1 S2 S3 ------+------------- 0 0 | 1 0 0 0 0 1 | 0 1 0 0 1 0 | 0 0 1 0 1 1 | 0 0 0 1 --------------------


VHDL програма для полного дешифратора 2 в 4 library ieee; use ieee.std_logic_1164.all; entity DC_2X4 is port( A : in std_logic_vector(1 downto 0); S : out std_logic_vector(3 downto 0)); end DC_2X4; architecture Example of DC_2X4 is signal Y: std_logic_vector(3 downto 0); begin process(A,Y) -- Very important to set here dependency of Y !! begin case A is when "00" => Y <= "0001"; when "01" => Y <= "0010"; when "10" => Y <= "0100"; when "11" => Y <= "1000"; when others => Y <= "XXXX"; end case; S <= Y; end process; end Example; Результат моделирования:



Программа на Verilog для дешифратора 3 в 8: module DECODE (A, EN, Y); input EN; input [2:0] A; output [7:0] Y; reg [7:0] Y; always @(EN or A) begin if (!EN) Y = 8'b0; else case (A) 3'b000: Y = 8'b00000001; 3'b001: Y = 8'b00000010; 3'b010: Y = 8'b00000100; 3'b011: Y = 8'b00001000; 3'b100: Y = 8'b00010000; 3'b101: Y = 8'b00100000; 3'b110: Y = 8'b01000000; default: Y = 8'b10000000; endcase end endmodule


Дешифратор 2x4 с разрешением



Оптимизация на транзисторах


Типы дешифраторов

Дешифратор / | \ Одноступенчатый Пирамидальный N-ступенчатый В дешифраторе для образования логических функций выходов используются A0..AN и A0#...AN# Число входов: N Число выходов: 2 ** N (2 в степени N) Одноступенчатый - каждый с каждым (A0*A1#*A2...) число элементов = (N * (2 ** N))/2 N-ступенчатый - сначала дешифратор на m1 потом на m2 ((A1*A2#) * (A3*A4)) Пирамидальный - как только какие то произведения вычислены они используются в каскаде. число элементов: ~ 2*((2 ** N) - 1) /\ / \ / \ A1 A1# / \ / \ / \ / \ A1A2 A1A2# A1#A2 A1#A2# / | / \ / \ \ \_____ / | / \ A1#A2A3 A1A2#A3# A1#A2#A3 A1#A2#A3# A1A2A3 A1A2A3# A1A2#A3 A1A2#A3#

Index Prev Next