Kiểu số dấu phẩy động

Một phần của tài liệu TIẾP CẬN CÔNG NGHỆ FPGA (Trang 63 - 66)

II. Giới thiệu môi trường lập trình ISE.

CHƯƠNG IV: NGÔN NGỮ VHDL 4.1 Giới thiệu chung về ngôn ngữ VHDL

4.2.2.3. Kiểu số dấu phẩy động

Kiểu số dấu phẩy động là một tập của kiểu số thực trong một phạm vi chỉ định trước. Phạm vi cho phép của kiểu số dấu phẩy động từ -1E38 đến +1E38. Cú pháp của kiểu số dấu phẩy động như sau:

định nghĩa kiểu số dấu phẩy động := phạm vi cho phép

Ví dụ:

Type probability is range 0.0 to 1.0; 4.2.2.4. Các kiểu liệt kê

Kiểu liệt kê là một tập các định danh hoặc các ký tự đã được sắp xếp. Các định danh và các ký tự trong kiểu liệt kê phải riêng biệt, rõ ràng, tuy nhiên chúng có thể được sử dụng lại trong các kiểu liệt kê khác nhau.

Cú pháp của kiểu liệt kê như sau:

định nghĩa kiểu liệt kê ::= (kiểu biểu diễn liệt kê bằng chữ {, biểu diễn kiểu

liệt kê bằng chữ})

Kiểu biểu diễn kiểu liệt kê bằng chữ ::= định danh | kiểu biểu diễn bằng ký tự Ví dụ:

Type logic_level is (unknown, low, undriven, high);

Type alu_function is (disable, pass, add, subtract, multiply, divide); Type octal_digit is (‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’);

Có một số kiểu liệt kê đã được định nghĩa sẵn:

Type severity_level is (note, warning, error, failure); Type boolean is (false, true);

Type bit is (‘0’, ‘1’);

Ngồi ra cịn một kiểu ký tự được định nghĩa sẵn là

type character is (NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, HT,

LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FSP, GSP, RSP, USP, ' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', DEL);

Kiểu ký tự này bao gồm cả các ký tự định danh, số và các chữ cái.

4.2.2.5. Kiểu mảng

Kiểu mảng trong VHDL là một tập hợp được đánh chỉ mục các phần tử có cùng kiểu. Mảng có thể là một chiều hoặc nhiều chiều. Ngồi ra, kiểu mảng có thể

tự tạo - tức là phạm vi của một chỉ mục được thiết lập khi kiểu được định nghĩa. Hoặc có thể là mảng tự nhiên - tức là phạm vi của chỉ mục được thiết lập theo thứ tự tuần tự.

Cú pháp của mảng như sau:

định nghĩa kiểu mảng ::= định nghĩa mảng tự tạo | định nghĩa mảng tự nhiên định nghĩa mảng tự tạo :: = array (định nghĩa kiểu chỉ mục con {, định nghĩa

kiểu chỉ mục}) of biểu diễn của các phần tử trong mảng

định nghĩa mảng tự nhiên :: = array kiểu chỉ mục tự nhiên of biểu diễn của

các phần tử trong mảng

định nghĩa kiểu chỉ mục con ::= kiểu đánh dấu range <>

kiểu chỉ mục tự nhiên ::= (phạm vi rời rạc {, phạm vi rời rạc}) phạm vi rời rạc ::= biểu diễn kiểu rời rạc con | phạm vi

Định nghĩa kiểu chỉ mục con được trình bầy trong mục 3.2.2.7.

Ví dụ về mảng tự nhiên:

Type word is array (31 downto 0) of bit; Type memory is array (address) of word; Type transform is array (1 to 4, 1 to 4) of real;

Type register_bank is array (byte range 0 to 132) of integer;

Ví dụ về mảng tự tạo:

Type vector is array (integer range <>) of real;

Ký hiệu ‘<>’ (được gọi là hộp (box)) có thể là kiểu trống để dành sử dụng trong chương trình. Trong ví dụ trên, khi một đối tượng có thể biểu diễn theo kiểu vector có 20 phần tử bằng cách cung cấp cho kiểu vector của nó như sau:

Vector(1 to 20);

Có hai kiểu mảng được định nghĩa sẵn và cả hai đều là là kiểu tự tạo:

Type string is array (positive range <>) of character; Type bit_vector is array (natural range <>) of bit;

Một phần của tài liệu TIẾP CẬN CÔNG NGHỆ FPGA (Trang 63 - 66)

Tải bản đầy đủ (PDF)

(198 trang)