1: Cách ựặt tên ( Naming Convention)

Một phần của tài liệu Verilog coding for logic synthesis ICdesignVN com (Trang 38 - 40)

đối với một dự án thiết kế, một thông lệ ựặt tên tốt là một ựiều cần thiết. Cách ựặt tên thường thường là phần không ựược xem trọng khi viết mã HDL. Có ựược một cách ựặt tên tốt dường như không quan trọng nhưng nếu không có một cách ựặt tên nào có thể gây ra nhiều vấn ựề cho những bước thiết kế sau ựó ựặc biệt là trong quá trình tắch hợp chip. Việc kết nối tất cả các tắn hiệu giữa các module của toàn bộ chip sẽ rất khó khăn nếu tên của tắn hiệu không thống nhất.

Bằng cách ựịnh nghĩa một chắnh sách ựặt tên, một tập hợp những quy ựịnh ựược áp dụng khi người thiết kế ựặt tên các cổng của một module. Nếu mỗi module trong cùng một chip tuân thủ tập hợp quy ựịnh thì sẽ dễ kết nối các tắn hiệu trong chip hơn.

Hình trên là giản ựồ chỉ ra một chip chứa hai module, module A và module B. đối với chip này, giả sử ta tuân thủ những nguyên tắc ựặt tên sau :

1. Ba kắ tự ựầu tiên của chip phải là chữ viết hoa.

2. Kắ tự ựầu tiên phải biểu diễn tên của module mà tắn hiệu là ngõ ra từ ựó. 3. Kắ tự thứ 3 phải biễu diễn tên của module mà từ ựó tắn hiệu là ngõ vào tới nó. 4. Kắ tự thứ 2 phải là con số 2.

5. Kắ tự thứ 4 trở ựi là tên của tắn hiệu và phải viết thường.

6. Tắn hiệu truyền tới ngõ ra ở mức chip phải có 4 kắ tự ựầu là "OUT_".Tên tắn hiệu sau 4 kắ tự này phải là chữ thường.

7. Tắn hiệu truyền từ ngõ vào ở mức chip tới một module nào ựó trong chip phải có 3 chữ cái ựầu là "IN_" và tên tắn hiệu sau 3 kắ tự này phải là chữ viết thường. 8. Bất kì tắn hiệu nào tắch cực thấp phải kết thúc với chữ "I".

Dựa vào những quy ựịnh ựặt tên này, tên của tắn hiệu "IN_enable","IN_data" và "OUT_data" là tắn hiệu ngõ vào và ngõ ra ở mức chip. Tên của tắn hiệu ựược liên kết nối giữa module A và module B là "A2Ben","A2Bdata" và B2AshkI".

Những quy tắc ựặt tên dùng ở ựây chỉ là một vắ dụ. Một dự án thiết kế thực sự có thể dùng những nguyên tắc giống như trên và cũng có thể khác.

Vắ dụ 4.1 trình bày mã Verilog cho module A và module B và chip cùng những liên kết nối giữa chúng.

module module_A (IN_enable, IN_data, B2AshkI, A2Ben, A2Bdata); input IN_enable, IN_data, B2AshkI;

output A2Ben, A2Bdata;

// your Verilog code for module_A endmodule

input A2Ben, A2Bdata; output B2AshkI, OUT_data; // your Verilog code for module_A endmodule

module fullchip ( IN_enable, IN_data, OUT_data); input IN_enable, IN_data;

output OUT_data;

wire A2Ben, A2Bdata, A2BshkI;

module_A module_A_instance ( IN_enable, IN_data, B2AshkI, A2Ben, A2Bdata);

module_B module_B_instance (A2Ben, A2Bdata, B2AshkI, OUT_data); endmodule

Một phần của tài liệu Verilog coding for logic synthesis ICdesignVN com (Trang 38 - 40)