Chương2 Qui ước về từ khóa 2.1Biểu tưởng
2.7 Tên nhận dạng, từ khóa và tên hệ thống
Tên nhận dạng ( indentifier) ñược dùng ñể gán cho một thực thể (object) một tên duy nhất ñể nó có thể ñược gọi tới khi cần. Tên nhận dạng có thể là một tên nhận dạng ñơn giản hoặc một tên nhận dạng escaped. Một
Lâm Đức Khải University of Information Technology Page 35 tên nhận dạng ñơn giản có thể là một dãy bất kì gồm các kí tự, kí số, dấu dollar ($), và kí tự gạch dưới (_).
Kí tự ñầu tiên của một tên nhận dạng không thể là một kí số hay $; nó có thể là một kí tự hoặc một dấu gạch dưới. Tên nhận dạng sẽ là khác nhau giữa chữ thường và chữ hoa.
Ví dụ: shiftreg_a busa_index error_condition merge_ab _bus3 n$657
Ở ñây có sự giới hạn về ñộ dài của tên nhận dạng, nhưng giới hạn này ít nhất là 1024 kí tự. Nếu một tên nhận dạng vượt ra khỏi giới hạn về chiều dài ñã ñược xác ñịnh thì lỗi có thể ñược thông báo ra.
2.7.1Tên nhận dạng escaped
Tên nhận dạng escaped ñược bắt ñầu với kí tự gạch chéo lùi (\) và kết thúc bởi khoảng trắng ( kí tự khoảng trắng, kí tự tab, kí tự xuống dòng). Chúng cung cấp cách thức ñể chèn thêm những kí tự ASCII có thể in ñược vào trong tên nhận dạng ( giá trị thập phân từ 33 ñến 126, hoặc giá trị thập lục phân từ 21 ñến 7E).
Lâm Đức Khải University of Information Technology Page 36 Cả hai kí tự gạch chéo lùi (\) và kí tự khoảng trắng kết thúc ñều không ñược xem như là thành phần của tên nhận dạng. Do ñó, một tên nhận dạng escaped \cpu3 sẽ ñược xử lí giống như tên nhận dạng nonescaped cpu3. Ví dụ: \busa+index \-clock \***error-condition*** \net1/\net2 \{a,b} \a*(b+c) 2.7.2Từ khóa
Từ khóa là những từ nhận diện ñã ñược ñịnh nghĩa trước và ñược dùng ñể ñịnh nghĩa những cấu trúc ngôn ngữ. Một từ khóa trong Verilog HDL mà ñứng trước nó là một kí tự escape sẽ không ñược biên dịch như là một từ khóa.
Tất cả những từ khóa ñược chỉ ñược ñịnh nghĩa ở dưới ñịnh dạng chữ thường. Phụ ñề B sẽ cung cấp danh sách tất cả những từ khóa ñược ñĩnh nghĩa.
Lâm Đức Khải University of Information Technology Page 37
2.7.3Tác vụ hệ thống và hàm hệ thống
Dấu dollar ($) mở ñầu một cấu trúc ngôn ngữ sẽ cho phép phát triển những tác vụ hệ thống và hàm hệ thống do người dùng ñịnh nghĩa. Những cấu trúc hệ thống không phải là ngôn ngữ thiết kế, mà nó muốn nói ñến chức năng mô phỏng. Một tên theo sau dấu $ ñược biên dịch như là một tác vụ hệ thống hoặc hàm hệ thống.
Cú pháp của một tác vụ hệ thống/hàm hệ thống ñược cho như sau system_task_enable ::= system_task_indentifier [([expression]{, [expression]})];
system_function_call ::= system_function_indentifier [(expression{, expression})]
system_function_identifier ::= $[a-zA-Z0-9_$]{[a-zA-Z0-9_$]} system_task_identifier ::= $[a-zA-Z0-9_$]{[a-zA-Z0-9_$]}
Dấu dollar ($) trong system_function_identifier hay system_task_identifier sẽ không ñược theo sau bởi khoảng trắng. Một system_function_identifier hay system_task_identifier không ñược thoát ra. Tác vụ hệ thống/hàm hệ thống có thể ñược ñịnh nghĩa trong ba vi trí: 1. Một tập hợp chuẩn những tác vụ hệ thống và hàm hệ thống.
2. Những tác vụ hệ thống và hàm hệ thống thêm vào ñược ñịnh nghĩa dùng cho PLI.
Lâm Đức Khải University of Information Technology Page 38 3. Những tác vụ hệ thống và hàm hệ thống thêm vào ñược ñịnh
nghĩa bởi thực thi phần mềm.
Chương3. Loại dữ liệu trong Verilog 3.1 Khái quát