Một ngôn ngữ mô tả phần cứng Một từ viết tắt cho một từ viết tắt khác V HDL là từ viết tắt của VHSIC Hardware Description Language Còn VHSIC là từ viết tắt của Very High Speed
Trang 1 3.7 Máy hữu hạn trạng thái
3.8 Phương pháp thiết kế đa cấp (Packages, Components, Subprogram).
Trang 23.1 GIỚI THIỆU VHDL (NHẮC LẠI)
VHDL là gì?
Một ngôn ngữ mô tả phần cứng
Một từ viết tắt cho một từ viết tắt khác
V HDL là từ viết tắt của VHSIC Hardware
Description Language
Còn VHSIC là từ viết tắt của Very High Speed
Integrated Circuit
Trang 33.1 GIỚI THIỆU VHDL (NHẮC LẠI)
Phương pháp
thiết kế bằng
HDL
Phương pháp thiết kế
truyền thống
Trang 43.2 - CẤU TRÚC MÃ LỆNH VHDL
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY Cong_And IS PORT (a,b, : in bit;
y :out bit);
END Cong_And;
Architecture dataflow of Cong_And is
begin
y <= a and b;
end dataflow;
LIBRARY ENTITY ARCHITECTURE
VHDL
BASIC
CODE
Trang 5 Thư viện - LIBRARY
Thực thể - ENTITY
Kiến trúc - ARCHITECTURE
3.2 - CẤU TRÚC MÃ LỆNH VHDL
Trang 6THƯ VIỆN - LIBRARY
Trang 7 Khai báo thư viện:
LIBRARY library_name;
USE library_name.pakage_name.package_parts;
Các thư viện thường sử dụng
THƯ VIỆN - LIBRARY
LIBRARY ieee; A semi-colon (;) indicates
USE ieee.std_logic_1164.all; the end of a statement or
LIBRARY std; declaration, while a double
USE std.standard.all; dash ( ) indicates acomment.
LIBRARY work;
USE work.all;
Trang 9 Thư viện - LIBRARY
Thực thể - ENTITY
Kiến trúc - ARCHITECTURE
3.2 - CẤU TRÚC MÃ LỆNH VHDL
Trang 10q[7:0]
co
Trang 11 Port_name:
Đặt tên theo quy tắc đặt tên chuẩn, tránh các từ khóa.
signal_mode: chiều truyền dữ liệu
IN, OUT, INOUT (2chiều), BUFFER (khi tín hiệu
ra được dùng cho các tín hiệu khác bên trong).
signal_type:
bit, std_logic, integer…
THỰC THỂ - ENTITY
Trang 12Chế độ signal_mode cho biết chiều dữ liệu được
truyền nhận:
IN Dữ liệu chỉ đi vào ENTITY
OUT Dữ liệu chỉ đi ra khỏi ENTITY
(và không được sử dụng bên trong)
INOUT Dữ liệu là hai chiều (đi vào và ra)
BUFFER Dữ liệu đi ra khỏi ENTITY và cũng
được đưa quay trở lại vào trong
Entity
THỰC THỂ - ENTITY
Trang 13VÍ DỤ VỀ ENTITY
ENTITY mux IS
PORT (a, b: IN std_logic_vector(7 downto 0); sel: IN STD_LOGIC_VECTOR(0 to 1); c: OUT STD_LOGIC_VECTOR(7 downto 0)); END mux;
Trang 14 Thư viện - LIBRARY
Thực thể - ENTITY
Kiến trúc - ARCHITECTURE
3.2 - CẤU TRÚC MÃ LỆNH VHDL
Trang 15KIẾN TRÚC - ARCHITECTURE
Phần ARCHITECTURE mô tả mạch hoạt
động như thế nào.
Một ARCHITECTURE luôn gắn với một ENTITY và mô tả
hoạt động của ENTITY đó.
Một ARCHITECTURE chỉ gắn với một ENTITY nhưng Một ENTIY có thể có nhiều ARCHITECTURE khác nhau
Trang 16 ARCHITECTURE có hai phần:
Phần khai báo [declarations] có thể có hoặc không
Khai báo tín hiệu và biến.
Phần mã code:
Mô tả cách kết nối, hoạt động của mạch.
KIẾN TRÚC - ARCHITECTURE
Trang 18KIẾN TRÚC - ARCHITECTURE
Luồng dữ liệu DATA FLOW
Cấu Trúc STRUCTURE
Hành vi
BEHAVIORAL
ARCHITECTURE
Kiến trúc
Trang 19VD: THIẾT KẾ BỘ MUX
2 ĐẦU VÀO, 1 ĐẦU RA
MUX
A B
Luồng dữ liệu DATA FLOW
Hành vi
BEHAVIORAL
Y = S.A + /S.B
Trang 20Y: out bit);
end MUX21;
architecture dataflow of MUX21
is begin
Trang 21KIẾN TRÚC THEO KIỂU CẤU TRÚC
STRUCTURE
architecture Struct of MUX21 is
signal U,V,W : bit;
Gate1: INV port map (X=>S,Z=>U);
Gate2: AND2 port map (X=>A,Y=>S,Z=>W);
Gate3: AND2 port map (X=>U,Y=>B,Z=>V);
Gate4: OR2 port map (X=>W,Y=>V,Z=>Y);
end Struct;
MU X
A
B
S
Y
Trang 23architecture STRUCTURE of FULL_ADDER is
HA1: HALF_ADDER port map (A,B,N1,N2);
HA2: HALF_ADDER port map (N2,CIN,N3,SUM); OR1 : OR_GATE port map (N1, N3,COUT);
end STRUCTURE;
Trang 24architecture DATAFLOW of FULL_ADDER is
signal S : BIT;
begin
S <= A xor B ; SUM <= S xor CIN after 10 ns;
COUT <= (A and B ) or (S and CIN) after 5ns;
end DATAFLOW;
Trang 25BASIC
CODE