Mảng cổn g( Port Array) 2 7-

Một phần của tài liệu Thiết kế mạch bằng VHDL (Trang 28 - 29)

Như chỳng ta đó biết, khụng cú kiểu dữ liệu được định nghĩa trước nào cú hơn một chiều. Tuy nhiờn, trong cỏc đặc điểm của cỏc chõn vào hoặc ra (cỏc PORT) của một mạch điện ( mà được xõy dựng thành ENTITY), chỳng ta cú thể phải cần định rừ cỏc PORT như là mảng cỏc VECTOR

Khi cỏc khai bỏo TYPE khụng được cho phộp trong một ENTITY, giải phỏp để khai bỏo kiểu dữ liệu người dựng định nghĩa trong một PACKAGE, mà cú thể nhận biết toàn bộ thiết kế. Một vớ dụ như sau:

--- Package: --- LIBRARY ieee;

USE ieee.std_logic_1164.all; --- PACKAGE my_data_types IS

TYPE vector_array IS ARRAY (NATURAL RANGE <>) OF STD_LOGIC_VECTOR(7 DOWNTO 0); END my_data_types; --- --- Main code: --- LIBRARY ieee; USE ieee.std_logic_1164.all;

USE work.my_data_types.all; -- user-defined package ---

ENTITY mux IS

PORT (inp: IN VECTOR_ARRAY (0 TO 3); ... );

END mux; ... ;

---

Cú thể thấy trong vớ dụ trờn, một kiểu dữ liệu người dựng định nghĩa được gọi là vector_array, đó được tạo ra, mà nú cú thể chứa một số khụng xỏc định cỏc vector, mỗi vector chứa 8 bit. Kiểu dữ liệu được lưu giữ tro ng một PACKAGE gọi là my_data_types, và sau đú được sử dụng trong một ENTITY để xỏc định một PORT được gọi. Chỳ ý trong đoạn mó chớnh bao gồm thờm cả một mệnh đề USE để thực hiện gúi người dựng định nghĩa my_data_types cú thể thấy trong thiết kế.

Chức năng khỏc cho PACKAGE ở trờn sẽ được trỡnh bày dưới đõy, nơi mà cú khai bỏo CONSTANT:

--- Package: --- -- LIBRARY ieee; USE ieee.std_logic_1164.all; --- PACKAGE my_data_types IS CONSTANT b: INTEGER := 7;

TYPE vector_array IS ARRAY (NATURAL RANGE <>) OF

END my_data_types;

---

Một phần của tài liệu Thiết kế mạch bằng VHDL (Trang 28 - 29)