Các mô tả VHDL chứa các đơn vị thiết kế sơ cấp và các đơn vị thiết kế thứ cấp. Các đơn vị thiết kế sơ cấp là thực thể và gói, các đơn vị thiết kế thứ cấp là kiến trúc và thân của góị Các đơn vị thiết kế thứ cấp luôn luôn gắn liền với một đơn vị thiết kế sơ cấp. Các th− viện thiết kế là các tập của các đơn vị thiết kế sơ cấp và thứ cấp. Một thiết kế điển hình th−ờng chứa một hay nhiều th− viện các đơn vị thiết kế.
3.3.1.Gói (Package)
Mục đích quan trọng nhất của một gói là gói gọn các phần tử dùng chung, bao gồm trong hai hay nhiều đơn vị thiết kế. Gói là một miền l−u trữ chung đ−ợc sử dụng để l−u dữ liệu dùng chung giữa một số thực thể .
Phần khai báo gói mô tả giao diện của gói và có cấu trúc cú pháp nh− sau:
Package < tên của gói)> is
{ các khai báo thuộc gói}
end <tên của gói>;
Các khai báo thuộc gói có thể là:
-Khai báo kiểu, kiểu con, tín hiệu, hằng, biệt danh.
-Khai báo thành phần, ch−ơng trình con.
-Mệnh đề use
-Và có thể chứa các gói khác. Ví dụ về khai báo gói:
package data_types is
subtype ađress is bit_vector(24 downto 0);
subtype data is bit_vector(15 downto 0);
constant vector_table_loc : ađress;
function data_to_int(value:data) return integer;
function int_to_datăvalue:integer) return data;
end data_types;
Phần thân của gói xác định hành vi của gói . Thân của gói luôn phải cùng tên với khai báo góị Phần thân gói đ−ợc mô tả theo cấu trúc sau:
{ các khai báo trong thân gói}
end <tên của gói>;
Ví dụ về thân của gói:
package body data_types is
constant vector_table_loc:ađress := X"FFFF00";
function data_to_int(value:data) return integer is
body of data_to_int
end data_to_int;
function int_to_datăvalue:integer)return data is body of int_to_data
end int_to_data;
end data_types;