mô phỏng mạch điện tử số bằng ngôn ngữ mô tả phần cứng VHDL . PP thiết kế này cho phép liên kết các thành phần hoặc các khối logic với nhau. Các thành phần hoặc các khối logic sử dụng kiến trúc phải được khai báo như các component trong phần architecture nhưng nội dung của chúng có thể được viết trong cùng 1 file hoặc khác file
Thiết kế mô mạch logic pP structure Khái niệm ■PP thiết kế cho phép liên kết thành phần khối logic với ■Các thành phần khối logic sử dụng kiến trúc phải khai báo component phần architecture nội dung chúng viết file khác file Các bước thiết kế ■Bước 1: Xây dựng sơ đồ khối thiết kế ■Bước 2: Lập mã VHDL – Khai báo thành phần sử dụng thiết kế – Kết nối khốitheo sơ đồ khối xây dựng từ bước thành hệ thống Công cụ ■Sử dụng câu khai báo component: khối sơ đồ khối khai báo component COMPONENT tên_component IS PORT (danh sách cổng); END COMPONENT; Công cụ ■Sử dụng câu lệnh kết nối componet: tên_nhãn: tên_component PORT MAP (danh sách port); Ví dụ thiết kế cộng bit sử dụng FA thiết kế từ trước ■Vẽ sơ đồ khối: Lập mã VHDL entity Adder4 is Port ( A : in STD_LOGIC_VECTOR (3 downto 0); B : in STD_LOGIC_VECTOR (3 downto 0); S : out STD_LOGIC_VECTOR (3 downto 0); C : out STD_LOGIC); end Adder4; Lập mã VHDL architecture Behavioral of Adder4 is component FA is Port ( A : in STD_LOGIC; B : in STD_LOGIC; Ci : in STD_LOGIC; S : out STD_LOGIC; Co : out STD_LOGIC); end component; Lập mã VHDL signal nho: std_logic_vector(3 downto 0); begin N1: FA port map (A(0),B(0),'0',S(0),nho(0)); N2: FA port map(A(1),B(1),nho(0),S(1),nho(1)); N3: FA port map (A(2),B(2),nho(1),S(2),nho(2)); N4: FA port map(A(3),B(3),nho(2),S(3),C); end Behavioral BÀI TẬP ■Thiết kế JKFF Sử JKFF vừa thiết kế component để tạo mạch đếm nhị phân Kđ = ■Thiết kế DFF Sử dụng DFF để thiết kế ghi dịch vào nối tiếp, song song bit Sơ đồ đếm đồng bít dùng JKFF Sơ đồ đếm khơng đồng bít dùng JKFF Sơ đồ ghi dịch bit Câu lệnh Generate ■ Câu lệnh cho phép chép linh kiện giống ■ Cú pháp: ■ Tên_nhãn: for tên_biến in chỉ_số_đầu to [downto ] chỉ_số_cuối generate Câu lệnh port map; ■ End generate tên_nhãn; Ví dụ: Thiết kế cộng số nhị phân 64 bit ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ entity cong64bit is Port ( A : in STD_LOGIC_VECTOR (63 downto 0); B : in STD_LOGIC_VECTOR (63 downto 0); Ci : in STD_LOGIC; S : out STD_LOGIC_VECTOR (63 downto 0); Co : out STD_LOGIC); end cong64bit; architecture Behavioral of cong4bit is component FA is Port ( A : in STD_LOGIC; B : in STD_LOGIC; Ci : in STD_LOGIC; S : out STD_LOGIC; Co : out STD_LOGIC); ■ ■ ■ ■ ■ ■ ■ ■ ■ signal c: std_logic_vector(64 downto 0); signal i :integer range to 64; begin c(0)