Tải bản đầy đủ (.ppt) (43 trang)

BÀI GIẢNG THIẾT KẾ LOGIC SỐ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (851.03 KB, 43 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÀI GIẢNG MÔN

THIẾT KẾ LOGIC SỐ

Giảng viên:

TS. Nguyễn Ngọc Minh

Điện thoại/E-mail:

84-4- 3351 9391

Bộ môn:

KTĐT-Khoa KTĐT

Học kỳ/Năm biên soạn: Kỳ 1/2012
1


CHƯƠNG 5
THIẾT KẾ CÁC HỆ THỐNG SỐ
ỨNG DỤNG VHDL
TS. Nguyễn Ngọc Minh
Khoa KTĐT1

2



BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

NỘI DUNG CHÍNH CỦA CHƯƠNG
5.1 THIẾT KẾ ĐIỀU KHIỂN HIỂN THỊ LED, MA
TRẬN LED, LED 7 ĐOẠN, VGA, LCD.
5.2 THIẾT KẾ MẠCH ĐIỀU KHIỂN MA TRẬN BÀN
PHÍM.
5.3. THIẾT KẾ GIAO TIẾP PS2 VỚI BÀN PHÍM
5.4 THIẾT KẾ GIAO TIẾP TRUYỀN THÔNG UART
5.5 THIẾT KẾ BỘ TRUY NHẬP VỚI SDRAM NGOÀI

3

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1. THIẾT KẾ MẠCH ĐIỀU KHIỂN HIỂN THỊ LED
5.1.1 Thiết kế mạch
điều khiển màn chỉ
thị số LED

4

www.ptit.edu.vn



BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

Nguyên lí quét :
+ Ban đầu LED 1 sẽ được hiển thị bằng cách cấp
nguồn cho LED1, và dữ liệu sẽ được đưa váo các
chân điều khiển của LED1.
+ Sau đó lần lượt các LED2, LED3,LED4 được hiển
thị với dữ liệu tương ứng của tưng con LED 7
thanh trong rất nhiều chu kì.
+ Và cứ tiếp tục như vậy các LED được quét theo
thứ tự.
+ Do sự lưu ảnh trên võng mạc nên khi ta quan sát
gần như sáng liên tục.

5

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

Sơ đồ triển khai ứng dụng
6

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ

CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

Yêu cầu viết VHDL gồm có các modul sau:
1. Khai báo các tín hiệu
2. Xây dựng bộ chia tần (tần số xung clk
chuẩn la 50M)
3. Xây dựng bộ điều khiển, thực tế chính là
bộ đếm mức 4
4. Xây dựng khối điều khiển quét LED và
chọn kênh
5.Xây dựng khối lưu các mã
7

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL
process(count_chiatan)
begin
if(count_chiatan="110010") then
CLK_1M<= not CLK_1M;
end if;
process(CLK_1M,countmode4)
end process;
begin
if(CLK_1M'event and
CLK_1M='1') then
countmode4<=countmode4+1;
end if;

process(countmode4)
end process;
begin
case countmode4 is
when "00" => temp<=HN;AN<="1000";
when "01" => temp<=HT;AN<="0100";
when "10" => temp<=HC;AN<="0010";
when others => temp<=HDV;AN<="0001";
end case;
end process;

www.ptit.edu.vn

8


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.2 Thiết kế mạch điều khiển ma trận LED (8x8)

9

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

Nguyên lý quét

10

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.2 (tt)

Xây dựng
mô hình
Mạch điều
khiển hiển
thị ma trận
LED

11

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.2 (tt)
process(count_mode8)
begin
case count_mode8 is
when "000" => colum<= "10000000";

when "001" => colum<= "01000000";
when "010" =>
when "011" =>
when "100" =>
when "101" =>

colum<= "00100000";
colum<= "00010000";
colum<= "00001000";
colum<= "00000100";

when "110" => colum<= "00000010";
when others => colum<= "00000001";
end case;

www.ptit.edu.vn

12


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.2 (tt)
row <= a(63 downto 56) when count_mode8 =x"0" else
a(55 downto 48) when count_mode8 =x"1" else
a(47 downto 40) when count_mode8 =x"2"
else
a(39 downto 32) when count_mode8 =x"3"
else

a(31 downto 24) when count_mode8 =x"4"
else
a(23 downto 16) when count_mode8 =x"5"
else
a(15 downto 8) when count_mode8 =x"6"
else
a(7downto 0);
end Behavioral;

13

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.2 (tt)
process(clk) --xung 2Kz
begin
if clk='1' and clk'event then
if dem = 12500 then
dem <= 0;
clk2khz <= not clk2khz;
else
dem <= dem +1;
end if;
end if;
end process;
14


www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL
5.1.3 THIẾT KẾ BỘ ĐẾM TẦN SỐ TỰ ĐỘNG THAY ĐỔI THANG ĐO

Yêu cầu:Mạch vào sẽ có nhiệm vụ biến đổi tín hiệu vào thành
dạng xung có mức logic CMOS và có cùng chu kỳ với tín hiệu
vào. Dạng xung này được đưa vào bộ đếm tấn để thực hiện
đo tần số, kết quả sẽ được chỉ thị trên cơ cấu chỉ thị số LED
7 đoạn
15

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL
5.1.3 THIẾT KẾ BỘ ĐẾM TẦN SỐ TỰ ĐỘNG THAY ĐỔI THANG ĐO (tt)

Xây dựng sơ đồ triển khai cho yêu cầu 3.1.3
16

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL


5.1.3 (tt)

Lưu đồ thuật toán
điều khiển trong
bộ đếm tần

17

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.3 (tt)

entity auto_freq_counter is
port( fx : in std_logic;
clk: in std_logic;
Seg : out std_logic_vector(6 downto 0);
dot: out std_logic;
AN : out std_logic_vector(2 downto 0);
Unit : out std_logic_vector(2 downto
0));
end auto_freq_counter;

18

www.ptit.edu.vn



BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.3 (tt)

else

process (clk)
begin
if clk='1' and clk'event then
if(over1='0') then
case scale is
when "00" =>
if chiatan=x"F423F" then
--clk=10MHz, T=0,1s.
chiatan<=x"00000";
Tch<='1';
else
chiatan<=chiatan+1;
Tch<='0';
end if;
when "01" =>
if chiatan=x"1869F" then
--T=0,1ms;
chiatan<=x"00000";
Tch<='1';
else


chiatan<=chiatan+1;
Tch<='0';
end if;
when "10" =>
if chiatan=x"0270F" then
chiatan<=x"00000";
Tch<='1';
else
chiatan<=chiatan+1;
Tch<='0';
end if;
when others =>
if chiatan=x"F423F" then
chiatan<=x"00000";
Tch<='1';
else
chiatan<=chiatan+1;
Tch<='0';
end if;

--1us

19

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL


5.1.3 (tt)
end case;
else
chiatan<=x"00000";
Tch<='1';
-- Tao xung vao
end if;
process(clk)
end if;
end process;
begin

if clk='1' and clk'event then
fx1<=fx;
fx2<=fx1;
end if;
end process;
fx3<= fx1 and (not fx2); -- dong bo xung dem fx va clk

20

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.4. THIẾT KẾ MẠCH GIAO TIẾP ĐIỀU KHIỂN VGA
a. Giới thiệu chuẩn VGA


Sơ đồ khối màn hình VGA
21

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.4. THIẾT KẾ MẠCH GIAO TIẾP ĐIỀU KHIỂN VGA (tt)
Kết quả kết hợp màu từ 3
màu cơ bản như bảng
sau

22

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.4. THIẾT KẾ MẠCH GIAO TIẾP ĐIỀU KHIỂN VGA (tt)

Đồ thị thời gian xung quát mành
www.ptit.edu.vn

23



BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.4. THIẾT KẾ MẠCH GIAO TIẾP ĐIỀU KHIỂN VGA (tt)

Đồ thị thời gian điều khiển VGA
24

www.ptit.edu.vn


BÀI GIẢNG: THIẾT KẾ LOGIC SỐ
CHƯƠNG 5- THIẾT KẾ CÁC HỆ THỐNG SỐ ỨNG DỤNG VHDL

5.1.4. THIẾT KẾ MẠCH GIAO TIẾP ĐIỀU KHIỂN VGA (tt)
Sơ Đồ
khối bộ
điều
khiển
VGA

Các tín hiệu Hsync, Vsync kết nối với cổng VGA điều
khiển quét ngang,dọc màn hình .
Thiết kế dựa trên 1 VGA 640x480 pixel ,tốc độ quét
mỗi pixel là 25MH .
www.ptit.edu.vn

25



×