Đặt vấn đề Bộ phân kênh hay còn gọi là mạch tách kênh Demux có chức năng ách kênh truyền thành 1 trong các kênh dữ liệu đầu ra phụ thuộc ngõ đầu vào.. Có thể coi mạch tách kênh giống như
Trang 1ĐỒ ÁN MÔN HỌC: THIẾT KẾ LOGIC SỐ
Đề Tài: Thiết kế bộ phân kênh 1 đầu vào, 4 đầu ra
Bài làm:
I. Đặt vấn đề
Bộ phân kênh hay còn gọi là mạch tách kênh Demux có chức năng ách kênh truyền thành 1 trong các kênh dữ liệu đầu ra phụ thuộc ngõ đầu vào Có thể coi mạch tách kênh giống như một công tắc cơ khí được điều khiển chuyển mạch bởi mã số Tùy theo mã số được áp vào ngõ chọn mà dữ liệu từ một đường sẽ được đưa ra một trong số đường ra song song
Các mạch Demux thường được chọn từ 1 ngõ vào đưa ra các đường song song là 2n Trong Đồ án này bộ phân kênh là : Thiết kế bộ phân kênh 1 đầu vào, 4 đầu ra (đầu ra là 22)
II. Sơ đồ khối và bảng sự thật Demux 1_4
1. Sơ đồ khối Demux 1_4
Trang 2Mạch tách kênh từ 1 kênh sang 4 kênh ta cần phải có ngõ vào 2 bit
- Khi ngõ vào cho phép Bitin ở mức ‘0’ thì cấm không cho phép dữ liệu vào được truyền ra bất kì ngõ nào nên tất cả các ngõ ra ở mức ‘0’
- Khi ngõ vào cho phép Bitin = 1,
Kênh đầu ra Y0 được nối với kênh đầu vào khi AA=00 Kênh đầu ra Y1 được nối với kênh đầu vào khi AA=01 Kênh đầu ra Y2 được nối với kênh đầu vào khi AA=10 Kênh đầu ra Y3 được nối với kênh đầu vào khi AA=11 Như vậy ta có bảng sự thật
2.Bảng sự thật
Ta có bìa Karnaugh của Y0 :
Bitin 0 1
Trang 3Biểu thức Logic của ngõ ra sẽ là : Y0 = ĀBBitin
Ta có bìa Karnaugh của Y1 :
Bitin
Biểu thức Logic của ngõ ra sẽ là : Y1 = ĀBBitin
Ta có bìa Karnaugh của Y2 :
Bitin
Biểu thức Logic của ngõ ra sẽ là : Y2 = ABBitin
Ta có bìa Karnaugh của Y3 :
Bitin
Trang 411 0 1
Biểu thức Logic của ngõ ra sẽ là : Y3 = ABBitin
Từ đây ta có thể dùng các cổng Logic để thiết kế mạch tách kênh Demux 1_4 :
III. CODING DEMUX14
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Demux14 is
port (
y0 : out std_logic;
y1 : out std_logic;
Trang 5y2 : out std_logic;
y3 : out std_logic;
ab: in std_logic_vector(1 downto 0);
bitin : in std_logic
);
end Demux14;
architecture Behavioral of Demux14 is
begin
process(bitin,ab)
begin
case ab is
when "00" => y0 <= bitin; y1 <= '0'; y2 <= '0'; y3 <='0'; when "01" => y1 <= bitin; y0 <= '0'; y2 <= '0'; y3 <='0'; when "10" => y2 <= bitin; y0 <= '0'; y1 <= '0'; y3 <='0'; when others => y3 <= bitin; y0 <= '0'; y1 <= '0'; y2 <='0'; end case;
end process;
end Behavioral;
library IEEE;
use IEEE.Std_logic_1164.all;
use IEEE.Numeric_Std.all;
entity Demux14_tb is
end;
architecture bench of Demux14_tb is
component Demux14
port (
y0 : out std_logic;
y1 : out std_logic;
y2 : out std_logic;
y3 : out std_logic;
ab : in std_logic_vector(1 downto 0);
bitin : in std_logic
);
end component;
signal y0: std_logic;
Trang 6signal y1: std_logic;
signal y2: std_logic;
signal y3: std_logic;
signal ab: std_logic_vector(1 downto 0);
signal bitin: std_logic ;
begin
uut: Demux14 port map ( y0 => y0,
y1 => y1,
y2 => y2,
y3 => y3,
ab => ab,
bitin => bitin );
stimulus: process
begin
bitin <= '0';
wait for 2000 ns;
bitin <= '1';
ab <="00";
wait for 200 ns;
ab <="01";
wait for 200 ns;
ab <="10";
wait for 200 ns;
ab <="11";
wait for 200 ns;
wait;
end process;
end;
Configuration Declaration
configuration cfg_Demux14_tb of Demux14_tb is
for bench
for uut: Demux14
end for;
end for;
end cfg_Demux14_tb;
configuration cfg_Demux14_tb_Behavioral of Demux14_tb is for bench
Trang 7for uut: Demux14
use entity work.Demux14(Behavioral);
end for;
end for;
end cfg_Demux14_tb_Behavioral;
end for;
end for;
end cfg_Demux14_tb_Behavioral;
1. Nhận xét: Mạch phân kênh 1 đầu vào, 4 đầu ra nói riêng và mạch phân kênh nói chung được thiết kế bằng các IC NOT như 74LS04, 74HC04, 4049,4050, 4069 các IC AND như: 74LS08, 74HC08,74HC808, 74HCT08 Mạch phân kênh cũng được ứng dụng nhiều trong việc
thường được dùng như mạch giải mã địa chỉ trong các mạch điều khiển
và trong máy tính
Trên thực tế có nhiều IC được ứng dụng phân kênh như:
74LS155 IC gồm 2 bộ tách kênh 1 đầu vào, 4 đầu ra
Trang 8 74LS138 IC MSIgiải mã 3 đường sang 8 đường hay tách kênh 1 đường sang 8 đường
74139/LS139 gồm 2 bộ giải mã 2 sang 4 hay 2 bộ tách kênh 1 sang 4, chúng có ngõ cho phép (tác động mức thấp) và ngõ chọn riêng
74154/LS154 bộ giải mã 4 sang 16 đường hay tách kênh 1 sang 16 đường
74159/LS159 giống như 74154 nhưng có ngõ ra cực thu để hở
74155/LS155 như đã khảo sát ở trên : gồm 2 bộ giải mã 2 sang 4 hay 2 bộ tách kênh 1 sang 4 Đặc biệt 74155 còn có thể hoạt động như 1 bộ giải mã
3 sang 8 hay tách kênh 1 sang 8 khi nối chung ngõ cho phép với ngõ vào
dữ liệu nối tiếp và nối chung 2 ngõ chọn lại với nhau
74156/LS156 giống như 74155 nhưng có ngõ ra cực thu để hở
Công nghệ CMOS cũng có các IC giải mã/tách kênh tương ứng như bên TTL chẳng hạn có 74HC/HCT138, Hơn thế nữa nhiều IC họ CMOS còn cho phép truyền cả dữ liệu số lẫn dữ liệu tương tự Một số IC là:
74HC/HCT4051 dồn/tách kênh tương tự số 1 sang 8 và ngược lại
74HC/HCT4052 dồn/tách kênh tương tự số 1 sang 4 và ngược lại
74HC/HCT4053 dồn/tách kênh tương tự số 1 sang 2 và ngược lại
2. Nhiều mạch tách kênh còn có chức năng như 1 mạch giải mã Thật vậy, vào dữ liệu Bitin không được dùng như 1 ngõ vào dữ liệu nối tiếp mà lại dùng như ngõ vào cho phép còn các ngõ vào chọn AB khi này lại được dùng như các ngõ vào dữ liệu và các ngõ ra vẫn giữ nguyên chức năng thì mạch đa hợp lại hoạt động như 1 mạch giải mã.
Tuỳ thuộc mã dữ liệu áp vào ngõ AB mà một trong các ngõ ra sẽ lên cao hay xuống thấp tuỳ cấu trúc mạch Như vậy mạch tách kênh 1:4 như ở trên đã trở thành mạch giải mã 2 sang 4 Thực tế ngoài ngõ Bitin khi này trở thành ngõ cho phép giải mã, mạch trên sẽ phải cần một số ngõ điều khiển khác để cho phép mạch hoạt động giải mã hay tách kênh; còn cấu tạo logic của chúng hoàn toàn tương thích nhau.
Tương tự như vậy ta cũng có mạch vừa tách kênh 1:8 vưa giải mã 3:8 ; mạch vừa tách kênh 1:16 vưa giải mã 4:16