- TOP làm ột generic.
1. Library clause 2 Use 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ỗ
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; . . .) . . .
Nếu tất cả các thành phần ở phía trong một phần chính thì có thể dùng khóa all để sử dụng.Ví dụ:
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 ngoà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
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à:
use STD.TEXTIO.all;
PHầN III: