- TOP là một generic.
1. Library clause 2 Use clause
Sử dụng các mệnh đề cĩ thể xuất hiện trong nhiều khai báo bộ phận của một thiết kế. Nếu là một thư viện mệnh đề hoặc sử dụng mệnh đề tại điểm bắt đầu của phần thiết kế, nĩ gọi mệnh đề ngữ cảnh. Hình 9.2 trình bày một ví dụ. Xác định các mục trong mệnh đề ngữ cảnh thường nhận thấy một bài thiết kế, chúng cĩ thể hỗ trợ tới mệnh đề ngữ cảnh, các phần này khơng nhận thấy được những đoạn thiết kế chủ yếu (chính), chúng cĩ thể biến ïng giống như một tập tin thiết kế (desing file). Điều muốn nĩi ở đây là nếu một tập tin thiết kế bao gồm 3 phần thiết kế chính, được trình bày trong hình 9.3, mệnh đề ngữ cảnh được xác định bởi mỗi phần thiết kế nếu cần. Ví dụ mệnh đề ngữ cảnh được xác định trước phần thiết kế A cĩ thể nhận thấy được phần thiết kế A, mệnh đề ngữ cảnh được xác định sau phần thiết kế B cĩ thể nhận thấy được phần B.
9.7.1 Library Clause:
Thư viện các mệnh đề tạo ra sự nhận biết các tên logic của thư viện, cĩ thể tham khảo phía trong một phần thiết kế. ïng của một mệnh đề trong thư viện là:
librarylist-of-logical-library-names ; Mệnh đề của thư viện
library TTL, CMOS;
Tạo ra tên logic TTL và CMOS cĩ thể nhận thấy được trong một phần thiết kế. Chú ý các phần của mệnh đề thư viện khơng tạo ra những đoạn thiết kế hoặc các mục đĩ cĩ mặt trong thư viện, nĩ thường thiết lập (tạo) tên thư viện để nhận biết (nĩ giống như một khai báo thay thế cho tên thư viện). Ví dụ: muốn sử dụng tên ‘TTL.SYNTH_PACK.MVL’ phía trong một phần thiết kế khai báo đầu khơng thể hiện tên thư viện sử dụng mệnh đề “library TTL”
Mệnh đề thư viện
library STD, WORK;
Khai báo thường là được ngầm định trong phần thiết kế.
9.7.2 USE Clause (sử dụng mệnh đề):Cĩ 2 hình thức chính sử dụng mệnh đề: Cĩ 2 hình thức chính sử dụng mệnh đề:
uselibrary-name.primary unit-name ; --hình thức 1
uselibrary-name.primary unit-name. item; --hình thức 2
Hình thức đầu của sử dụng mệnh đề xác định tên của phần chủ yếu (chính) từ thư viện tới việc tham khảo trong mơ tả một thiết kế. Xét ví dụ:
library CMOS;
use CMOS.NOR2
configuration . . . is
. . . use entity NOR2 (. . .);
end;
Chú ý: thực thể NOR2 được phép cĩ sẵn trong thư viện trước khi thử biên dịch một phần thiết kế sử dụng. Hình thức 2 của sử dụng mệnh đề cĩ thể nhận thấy được khai báo các thành phần chính. Do vậy thành phần đĩ cĩ thể, tham khảo phía bên trong của phần thiết kế. Ví dụ:
library ATTLIB
use ATTLIB.SYNTH_PACK.MVL;
--MVL is a type declared in SYNTH_PACK package.
--The package SYNTH_PACK is stored in the ATTLIB desing library.
entity NAND2 is
port (A, B: in MVL; . . .) . . .
use ATTLIB.SYNTH_PACK.all;
Thiết lập khao báo tất cả các thành phần ở gĩi SYNTH_PACK trong thư viện ATTLIB. Sử dụng mệnh đề
use ATTLIB.all
Thiết lập tất cả các tên của một phần chính cĩ mặt trong thư viện ATTLIB
Trạng thái bên ngồi của các thành phần tới một đoạn thiết kế cĩ thể nhận được bởi một mong muốn tốt hơn. Một phương pháp là sử dụng chọn tên.
Một ví dụ sử dụng chọn tên là:
library ATTLIB;
use ATTLIB.SYNTH_PACK;
entity NOR2 is
port (A,B: in SYNTH_PACK.MVL; . . .) . . .
Vậy chỉ cĩ tên của phần chính là thiết lập sự nhận biết được sử dụng các mệnh đề, tên của phần chính được phép sử dụng liên tiếp (dọc theo) tồn tại tên kiểu tham khảo, đĩ là SYNTH_PACK.MVL được xác định.Ví dụ khác sẽ trình bày phần tiếp theo.
Kiểu Value_9 là được định nghĩa trong gĩi SIMPACK khi mà biên dịch tong thư viện CMOS.
library CMOS
package P1 is
procedure LOAD (A, B: CMOS.SIMPACK.VALUE_9; . . .);
end P1;
Trong trường hợp này, tên phần chính SIMPACK chỉ được xác định duy nhất một thời gian sử dụng. Do vậy, chúng TABLE cĩ thể đưa ra các thành phần áp dụng các thư viện. Nếu cần thiết đưa ra các loại thành phần thiết kế chúng giống như trong thư viện ?
Trong trường hợp chúng khơng cần tới việc xác định một mệnh đề thư viện khi đĩ thường là một đoạn thiết kế mà nĩ được khai báo ngầm định trong mệnh đề thư viện.
library STD,WORK;
Tương tự thư viện STD bao gồm các gĩi STANRD và TEXTIO. Gĩi STANRD gồm cĩ các khai báo trên cho các kiểu CHARACTER, BOOLEAN, BIT_VECTOR và INTEGER. Sử dụng các mệnh đề khai báo ngầm định.
use STD.STANRD.all;
Tất cả các thành phần khai báo phía trong gĩi TANRD là cĩ sẵn để sử dụng trong cấu trúc của VHDL, tương tự như vậy đối với gĩi TEXTIO. Nếu khai báo các thành phần trong gĩi này cần tham khảo đến sử dụng mệnh đề hình thức sử dụng là:
PHẦN III: