Đang tải... (xem toàn văn)
VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ rất cao, là một loại ngôn ngữ mô tra phần cứng được phát triển dùng cho chương trình VHSIC của bộ quốc phòng Mỹ
1Lập trình VHDLwww.viethung-idt.com.vn 2Nội dungGiới thiệu VHDL1Cấu trúc lập trình2Các đối tượng3Các kiểu dữ liệu4Các phép toán5Các mệnh đề tuần tự6DES với VHDL7AES với VHDL8 3I. Giới thiệu VHDLLà ngôn ngữ mô phỏng và tổng hợp phần cứngVHSIC Hardware Description LanguageVHSIC = Very High Speed ICỨng dụngPLD (Programmable Logic Device)•CPLD (Complex PLD)•FPGA (Field Programmable Gate Array)ASIC (Application-Specific IC)Công cụ Xilinx ISE và Altera Quartus 4I. Giới thiệu VHDL (tiếp)Đặc điểm ngôn ngữKhông phân biệt chữ hoa – thườngCác lệnh được phân cách bởi dấu “;”Các chú thích được bắt đầu bởi dấu “--”Mô phỏng phần cứng theo hướng Top-downYêu cầu chặt chẽ về kiểu dữ liệu 5Nội dungGiới thiệu VHDL1Cấu trúc lập trình2Các đối tượng3Các kiểu dữ liệu4Các phép toán5Các mệnh đề tuần tự6DES với VHDL7AES với VHDL8 6II. Cấu trúcLibraryLibrary chứa các phép toán đã được xây dựng sẵn trên 1 kiểu dữ liệu nào đó.EntityEntity thể hiện giao diện bên ngoài của vi mạch (các cổng vào/ra).ArchitectureArchitecture thể hiện cấu trúc bên trong, chức năng, hoạt động của vi mạch. 7II. Cấu trúc (tiếp)LIBRARY IEEE;USE .;--------------------ENTITY Example IS GENERIC ( .); PORT ( .);END Example;--------------------ARCHITECTURE Ex1 OF Example IS COMPONENT ( .); GENERIC MAP ( .); PORT MAP ( .); BEGIN Process( .); End Process;END Ex1;ARCHITECTURE Ex1 OF Example IS .END Ex2;LibraryEntityArchitecture 8II.1. LibraryCác thành phần (package) của thư viện chuẩn IEEE:Dùng chung với tất cả các công cụ lập trình.IEEE công khai mã nguồn của thư viện này.Các công cụ phát triển của các hãng khác nhau có thể có thư viện riêng.-- Các thư viện này được khai báo sẵn khi tạo ProjectLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; 9II.2. EntityXác định: số lượng, chiều, kiểu các cổng vào/ra và một số tham số khác.-- Entity DeclarationENTITY Adder IS GENERIC (iCount : INTEGER); PORT (A : IN STD_LOGIC_VECTOR(15 downto 0); B : IN STD_LOGIC_VECTOR(15 downto 0); S : OUT STD_LOGIC_VECTOR(15 downto 0); C : OUT STD_LOGIC);END Adder; 10II.3. ArchitectureGiữa 2 từ khóa “Architecture” và “Begin” là khai báo, liệt kê các phần tử bên trong của vi mạch, bao gồm:Tín hiệu (signal)Thành phần (component)Giữa 2 từ khóa “Begin” và “End” là đoạn mã mô tả kết nối giữa các thành phần bên trong và hoạt động của vi mạch. [...]... 5 Nội dung Giới thiệu VHDL 1 Cấu trúc lập trình 2 Các đối tượng 3 Các kiểu dữ liệu 4 Các phép toán 5 Các mệnh đề tuần tự 6 DES với VHDL 7 AES với VHDL 8 15 III. Các đối tượng trong VHDL Component: Một thiết kế VHDL hồn chỉnh có thể được chia thành nhiều thành phần nhỏ hơn. Signal: biểu diễn dây nối, kết nối các... constant MyLUT : LUT := ((‘0’, ‘0’, ‘0’), (‘0’, ‘0’, ‘0’), (‘0’, ‘0’, ‘1’)); 43 Bài tập 2: Xây dựng bộ nhân 2 số dấu phẩy động (học viên tự tìm hiểu số dấu phẩy động) 45 Nội dung Giới thiệu VHDL 1 Cấu trúc lập trình 2 Các đối tượng 3 Các kiểu dữ liệu 4 Các phép toán 5 Các mệnh đề tuần tự 6 DES với VHDL 7 AES với VHDL 8 7 II. Cấu trúc (tiếp) LIBRARY IEEE; USE ; ENTITY Example IS GENERIC... VHDL (tiếp) entity architecture Input Ports Signals Output Ports component 1 component 2 process Variables 33 Nội dung Giới thiệu VHDL 1 Cấu trúc lập trình 2 Các đối tượng 3 Các kiểu dữ liệu 4 Các phép toán 5 Các mệnh đề tuần tự 6 DES với VHDL 7 AES với VHDL 8 42 Bài tập 1: Xây dựng bộ cộng 2 số dấu phẩy động (học viên tự tìm hiểu số dấu phẩy động) 37 V. Các phép toán (tiếp) Phép toán... BEGIN Process( ); End Process; END Ex1; ARCHITECTURE Ex1 OF Example IS END Ex2; Library Entity Architecture 14 Nội dung Giới thiệu VHDL 1 Cấu trúc lập trình 2 Các đối tượng 3 Các kiểu dữ liệu 4 Các phép toán 5 Các mệnh đề tuần tự 6 DES với VHDL 7 AES với VHDL 8 46 VI. Các mệnh đề tuần tự 1. IF 2. CASE 3. LOOP For Loop While Loop 4. WAIT Wait on Wait for Wait until 12 II.4... trong và hoạt động của vi mạch. 16 III. Các đối tượng trong VHDL (tiếp) Variable: là các biến được sử dụng để tính tốn, lưu các giá trị trung gian. biến nhận giá trị ngay khi được gán, giá trị mới này có thể được sử dụng ngay trong dòng lệnh tiếp theo biến chỉ sử dụng được trong phạm vi Process 18 III. Các đối tượng trong VHDL (tiếp) entity architecture Input Ports Signals Output Ports component 1 component 2 process... out2); END Ex1; 21 III. Các đối tượng trong VHDL (tiếp) Architecture Example1 of Example is Khai báo các thành phần Khai báo các tín hiệu Khai báo các kết nối Com1: Component_1 Port map (Clk => Clk1, Key_In => Key, Key_Out => Key_1_2); Mô tả hoạt động End Example1 31 IV. Các kiểu dữ liệu (tiếp) Có thể nói: khơng có khái niệm “ép kiểu” trong VHDL. Một số ngoại lệ: integer +/- bit_vector/std_logic_vector Xét... với integer. +,- dùng với cả integer, real, time và bit_vector, std_logic_vector +,- cho phép 1 toán hạng integer và 1 toán hạng bit_vector/std_logic_vector (THĐB) 24 III. Các đối tượng trong VHDL (tiếp) LIBRARY IEEE; Use IEEE.std_logic_1164.ALL; ENTITY Example IS GENERIC (rise, fall: time; load: integer); PORT (inA, inB, inC, inD: In std_logic; out1, out2: Out std_logic); END Example; ARCHITECTURE... “11000110”; signal DO : bit_vector (7 downto 0); DO <= DI sll 2; DO <= DI sla 2 DO <= DI srl 2; DO <= DI sra 2; DO <= DI ror 3 00011000 00011000 00110001 11110001 11011000 1 Lập trình VHDL www.viethung-idt.com.vn . thiệu VHDL1 Cấu trúc lập trình2Các đối tượng3Các kiểu dữ liệu4Các phép toán5Các mệnh đề tuần tự6DES với VHDL7 AES với VHDL8 15III. Các đối tượng trong VHDL Component:. 5Nội dungGiới thiệu VHDL1 Cấu trúc lập trình2Các đối tượng3Các kiểu dữ liệu4Các phép toán5Các mệnh đề tuần tự6DES với VHDL7 AES với VHDL8 6II. Cấu trúcLibraryLibrary