Các đóng gói (Packages)

Một phần của tài liệu Thiet ke mach dien bang may tinh (Trang 38 - 39)

Mục đích chính của Package là tập hợp các phần tử có thể bị chia sẻ bởi hai hay nhiều đơn vị thiết kế (hay các phần tử có thể dùng chung được). Nó có chứa các kiểu dữ liệu, các hằng, các chương trình con có thể dùng chung giữa các thiết kế. Một Package có hai phần chính:

- Phần khai báo Package. - Phần thân Package.

3.1.3.1. Phần khai báo Package

Một khai báo Package được dùng để cất giữ hàng loạt các khai báo dùng chung, chẳng hạn như các phần tử, các kiểu, các thủ tục, các hàm. Các khai báo này có thể nhập vào các đơn vị thiết kế khác bởi việc sử dụng một mệnh đề use.

Ví dụ:

package EXAMPLE_PACK is

type SUMMER is ( MAY, JUN, JUL, AUG, SEP); component D_FLIP_FLOP

port (D, CK:in BIT; Q, QBAR: out BIT) end component;

constant PIN2PIN_DELAY:TIME:=125ns; function IN2BIT_VEC(INT_VALUE:INTEGER) return BIT_VECTOR;

end EXAMPLE_PACK;

Ở ví dụ này tên của package được khai báo là EXAMPLE_PACK. Nó có chứa các khai báo kiểu, phần tử, hằng, và hàm. Lưu ý rằng hoạt động của hàm INT2BIT_VEC không xuất hiện ở trong khai báo gói, mà chỉ có giao tiếp của hàm xuất hiện. Việc định nghĩa, hay thân của hàm chỉ xuất hiện trong thân của đóng gói (Body Package).

Giả sử rằng đóng gói này đã được dịch và tạo thành một thư viện thiết kế và được gọi là DESIGN _LIB. Xem xét việc dùng mệnh đề use để sử dụng chúng dưới đây:

library DESIGN_LIB;

use DESIGN_LIB.EXAMPLE_PACK.all Entity RX is...

Mệnh đề library DESIGN_LIB cho phép thư viện thiết kế DESIGN_LIB được phép dùng trong phần mô tả này, điều đó có nghĩa là tên DESIGN_LIB có thể được sử dụng. Mệnh đề use tiếp theo sẽ lấy tất cả các khai báo có trong Package EXAMPLE_PACK vào trong khai báo Entity của RX. Có nghĩa là ta có thể chọn lựa các khai báo từ trong một các khai báo của một đóng gói vào trong một đơn vị thiết kế khác.

Ví dụ :

library DESIGN_LIB;

use DESIGN_LIB.EXAMPLE_PACK.D_FLIP_FLOP; use DESIGN_LIB.EXAMPLE_PACK.PIN2PIN_DELAY; architecture RX_STRUCTURE of RX is...

Hai mệnh đề use ở ví dụ này nhằm tạo ra khai báo cho D_FLIP_FLOP và khai báo hằng cho PIN2PIN_DELAY được phép sử dụng trong thân kiến trúc.

Một phần của tài liệu Thiet ke mach dien bang may tinh (Trang 38 - 39)