1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo thực hành thiết kế hệ thống số 2 chủ Đề thực hành thiết kế bộ giãi mã decoder 3x8 và viết code vhdl của bộ giãi mã sơ Đồ bộ giãi mã decoder 3x8

19 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Bộ Giãi Mã Decoder 3x8 Và Viết Code VHDL Của Bộ Giãi Mã
Tác giả Nguyễn Thành Trung, Hồ Anh Khoa, Nguyễn Khánh Hưng, Nguyễn Phương Nam
Người hướng dẫn Thầy Võ Phú Thoại
Trường học Trường Đại Học Tôn Đức Thắng
Thể loại báo cáo thực hành
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 76,93 KB

Nội dung

Nguyên lí hoạt động- Bộ giãi mã có tác dụng phiên dịch mã nhị phân từ A0, A1,A2 sang mã bát phân để từ đó kích hoạt chân Y theo vị trí được... TIẾN TRÌNH THỰC HÀNH I, Thiết kế bộ giải mã

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA ĐIỆN – ĐIỆN TỬ

BÁO CÁO THỰC HÀNH

THIẾT KẾ HỆ THỐNG SỐ 2

Sinh viên thực hiện : Nguyễn Thành Trung | 42200217

Hồ Anh Khoa | 42200154 Nguyễn Khánh Hưng | 42200200 Nguyễn Phương Nam | 42200208

GVHD : thầy Võ Phú Thoại

Chủ đề thực hành : Thiết kế bộ giãi mã Decoder

3x8 và viết code VHDL của bộ giãi mã

Sơ đồ bộ giãi mã Decoder 3x8

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024

Trang 2

Nguyên lí hoạt động

- Bộ giãi mã có tác dụng phiên dịch mã nhị phân từ A0, A1,A2 sang mã bát phân để từ đó kích hoạt chân Y theo vị trí được

Trang 3

VD : nếu input của đầu A là 1|0|1, khi phiên input từ mã nhị phân qua giá trị bát phân thì đèn ở vị trí số 5 hay D4 sẽ nhận được tín hiệu từ đầu vào

TIẾN TRÌNH THỰC HÀNH

I, Thiết kế bộ giải mã Decoder 3x8 và viết code cho

bộ giãi mã.

Bước 1 : Lập bảng sự thật.

Trang 4

A B C D0 D1 D2 D3 D4 D5 D6 D7

Bước 2 : Sử dụng bìa Karnaugh

 D0= A B C

1

AB

C

Trang 5

 D1=

A B C

 D2=

A B C

0

AB

C

0

0

1

1

AB

C

Trang 6

 D3= A BC

 D4=

A B C

0

1

0

1

AB

C

0

1

1

AB

C

Trang 7

 D5= A B C

0

1

1

AB

C

0

1

0 1

AB

C

Trang 8

 D6=

AB C

 D7= ABC

0

1

1

0 AB

C

Trang 9

Bước 3 : Vẽ sơ đồ của bộ cộng toàn phần 1 bit.

Trang 11

Bước 4 : Viết code VHDL cho bộ giãi mã Decoder 3 x 8

Cách 1 : Sử dụng Case – When ( gán một giá trị lục phân tương ứng cho dãy nhị phân )

Library ieee;

Use ieee.std_logic_1164.all;

Entity decoder_3x8 is

Port ( a : in std_logic_vector (0 to 2 );

( d : out std_logic_vector( o to 7 );

End decoder _x8;

Trang 12

Architecture decoder_arch of decocder_3x8 is

Begin

Process ( a)

Begin

Case a is // gán giá trị d ứng với từng mã nhị phân đầu vào bằng case

When “ 000” => d <= “00000001”

When “ 001” => d <= “00000010”;

When “ 010” => d <= “00000100”;

When “ 011” => d <= “00001000”;

When “ 100” => d <= “00010000”;

When “ 101” => d <= “00100000”;

When “ 110” => d <= “01000000”;

Trang 13

When others => d <= “00000000”;

End case;

End process;

End decoder_arch;

Cách 2 : sử dụng If – Else ( Xét lần lượt trường hợp của từng ngõ vào A, B, C và tách Output thành từng ngõ ra riêng biệt )

library ieee;

Trang 14

use ieee.std_logic_1164.all;

entity decoder is

port (

a, b, c : in std_logic; Các đầu vào a, b, c

d, e, f, g, h, i, j, k : out std_logic Các đầu ra d, e, f, g, h, i, j, k

);

end decoder;

architecture behavior of decoder is

begin

process(a, b, c)

Trang 15

Mặc định tất cả các đầu ra ở mức 0

d <= '0';

e <= '0';

f <= '0';

g <= '0';

h <= '0';

i <= '0';

j <= '0';

k <= '0';

Lựa chọn đầu ra theo các tổ hợp đầu vào sử dụng lệnh if

if (a = '0' and b = '0' and c = '0') then

d <= '1'; Đầu vào 000, đầu ra d = 1

elsif (a = '0' and b = '0' and c = '1') then

Trang 16

e <= '1'; Đầu vào 001, đầu ra e = 1 elsif (a = '0' and b = '1' and c = '0') then

f <= '1'; Đầu vào 010, đầu ra f = 1 elsif (a = '0' and b = '1' and c = '1') then

g <= '1'; Đầu vào 011, đầu ra g = 1 elsif (a = '1' and b = '0' and c = '0') then

h <= '1'; Đầu vào 100, đầu ra h = 1 elsif (a = '1' and b = '0' and c = '1') then

i <= '1'; Đầu vào 101, đầu ra i = 1 elsif (a = '1' and b = '1' and c = '0') then

j <= '1'; Đầu vào 110, đầu ra j = 1 elsif (a = '1' and b = '1' and c = '1') then

k <= '1'; Đầu vào 111, đầu ra k = 1

Trang 17

end process;

end behavior;

Cách 3 : Sử dụng các cổng logic

library ieee;

use ieee.std_logic_1164.all;

entity duphong is

port (

a, b, c : in std_logic; Các đầu vào a, b, c

Trang 18

d, e, f, g, h, i, j, k : out std_logic Các đầu ra d, e, f, g, h, i, j, k

);

end duphong;

architecture behavior of duphong is

begin

process(a, b, c)

begin

d <= (not a) and (not b) and(not c);

e <= (not a)and (not b)and c;

f <= (not a) and b and (not c);

Trang 19

h <= a and (not b) and (not c);

i <= a and (not b) and c;

j <= a and b and (not c);

k <= a and b and c;

end process;

end behavior;

Ngày đăng: 25/12/2024, 19:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w