- Để khai báo Library, chúng ta cần hai dạng mã sau, dạng thứ nhất chứa tên thư
viện, dạng tiếp theo chứa một mệnh đề cần sử dụng:
LIBRARY library_name;
USE library_name.package_name.package_parts;
Thông thường có 3 gói, từ 3 thư viện khác nhau thường được sử dụng trong thiết
kế:
Chương 2: Tìm hiểu ngôn ngữ VHDL 27
- standard (from the std library), and - work (work library).
Hình 2.5. Các thành phần cơ bản của một đoạn mã VHDL
Hình 2.6. Các phần cơ bản của một Library
Các khai báo như sau:
LIBRARY ieee; -- Dấu chấm phẩy (;) chỉ thị
USE ieee.std_logic_1164.all;-- kt của một câu lệnh LIBRARY std; -- hoặc một khai báo.một dấu 2 gạch USE std.standard.all; -- (--)để bắt đầu 1 chú thích. LIBRARY work;
USE work.all;
Các thư viện std và work thường là mặc định, vì thế không cần khai báo chúng, chỉ có thư viện ieee là cần phải được viết rõ ra.
Chương 2: Tìm hiểu ngôn ngữ VHDL 28
Mục đích của 3 gói/thư viện được kể ở trên là như sau: gói std_logic_1164 của thư viện ieee cho biết một hệ logic đa mức; std là một thư viện tài nguyên (kiểu dữ
liệu, i/o text..) cho môi trường thiết kế VHDL và thư viện work được sủ dụng khi chúng ta lưu thiết kế ( file .vhd, các file được tạo bởi chương trình dịch và chương
trình mô phỏng…).
Thực ra, thư viện ieee chứa nhiều gói như sau:
- td_logic_1164: định r. STD_LOGIC ( 8 mức) và STD_ULOGIC ( 9 mức) là các hệ logic đa mức
- std_logic_arith: định rõ các kiểu dữ liệu SIGNED và UNSIGNED, các giải thuật liên quan và so sánh toán tử. Nó cũng chứa nhiều hàm chuyển đổi dữ liệu, mà cho phép một kiểu được chuyển đổi thành các kiểu dữ liệu khác:
conv_integer(p),conv_unsigned(p, b),
conv_signed(p, b), conv_std_logic_vector(p, b)
- std_logic_signed: chứa các hàm cho phép làm việc với dữ liệu
STD_LOGIC_VECTOR để được thực hiện chỉ khi dữ liệu là kiểu SIGNED
- std_logic_signed: chứa các hàm cho phép làm việc với dữ liệu
STD_LOGIC_VECTOR để được thực hiện chỉ khi dữ liệu là kiểu UNSIGNED.