Khai báo net

Một phần của tài liệu gtverilog (Trang 43 - 49)

Chương3 Loại dữ liệu trong Verilog

3.4 Khai báo net

3.4.1 Giới thiệu

Net là một trong nhiều loại dữ liệu trong ngôn ngữ mô tả Verilog dùng để mơ tả dây kết nối vật lí trong mạch ñiện. Net sẽ kết nối những linh kiện ở mức cổng ñược gọi ra, những module ñược gọi ra và những phép

gán nối tiếp. Ngôn ngữ Verilog cho phép ñọc giá trị từ một net từ bên trong những mô tả hành vi, nhưng ta không thể gán một giá trị từ một net bên trong những mô tả hành vi. ( Một khối always là một loại ñặc biệt của khối begin…end). Một net sẽ không lưu giữ giá trị của nó. Nó phải được điều

Lâm Đức Khải University of Information Technology Page 43

• Bằng việc kết nối net đến ngõ ra của một cổng hay một module.

• Bằng việc gán một giá trị ñến net trong một phép gán nối tiếp.

Những loại net khác nhau ñược ñịnh nghĩa trong Verilog được mơ tả bên dưới và trong những bảng ở hình 2.1 sẽ tóm tắt chức năng của chúng. Sự phân giải là một qui ñịnh ñể phân giải những giá trị với những bộ ñiều khiển sau cũng được giải thích trong bảng ở trang kế.

• Wire một net với giá trị 0,1,x và sự phân giải ñược dựa trên sự tương ñương.

• Wand một net với giá trị 0,1,x và sự phân giải của wired and

• Wor một net với giá trị 0,1,x và sự phân giải của wired or

• Tri một net với giá trị 0,1,x,z và sự phân giải của bus tri-state

• Tri0 một net với giá trị 0,1,x,z và sự phân giải của bus tri-state và một giá trị mặc ñịnh là 0 khi khơng được ñiều khiển

• Tri1 một net với giá trị 0,1,x,z và sự phân giải của bus tri-state và một giá trị mặc định là 1 khi khơng được ñiều khiển

• Trior một net với giá trị 0,1,x,z và sự phân giải của tri-state cho giá trị z-non-z sử dụng hàm ‘or’ của giá trị non-z

• Triand một net với giá trị 0,1,x,z và sự phân giải của tri-state cho giá trị z-non-z sử dụng hàm ‘and’ của giá trị non-z

• Trireg một net với giá trị 0,1,x,z và sự phân giải của tri-state cùng với giá trị lưu trữ ñiện tích (giá trị trước được dùng để phân giải giá trị mới)

• Supply0, supply1 (gnd và vdd) tri/wire 0 1 X Z 0 0 X X 0 1 X 1 X 1 X X X X X Z 0 1 X X triand/wand 0 1 X Z 0 0 0 0 0

Lâm Đức Khải University of Information Technology Page 44 1 0 1 X 1 X 0 X X X Z 0 1 X Z trior/wor 0 1 X Z 0 0 1 X 0 1 1 1 1 1 X X 1 X X Z 0 1 X Z tri1 0 1 X Z 0 0 X X 0 1 X 1 X 1 X X X X X Z 0 1 X 1 tri0 0 1 X Z 0 0 0 0 0 1 X 1 X 1 X X X X X Z 0 1 X 0 trireg 0 1 X Z 0 0 1 X 0 1 1 1 1 1 X X 1 X X Z 0 1 X P

Lâm Đức Khải University of Information Technology Page 45

3.4.2 Wire

Loại dữ liệu wire ñịnh nghĩa một loại ñơn giản là ñể kết nối giữa hai linh kiện. Dữ liệu wire dùng cho những net mà ñược ñiều khiển bởi một

cổng linh kiện ñơn hay trong phép gán nối tiếp (continuous assignments).

Trong ví dụ 2.3, những khai báo 2-wire ñược tạo ra. Khai báo đầu tiên mơ tả wire ñơn ( scalar wire ) w. Khai báo thứ hai mô tả một mảng (vector) w2 với 3 bits. Bit trọng số cao nhất (MSB) của nó có trọng số là 2 và bit trọng số thấp nhất (ISB) có trọng số là 0.

Ví dụ 2.3 wire w1;

wire [2:0] w2;

3.4.3 Tri net

Dữ liệu tri thì hồn tồn giống với dữ liệu wire về cú pháp sử dụng và chức năng tuy nhiên nó khác với dữ liệu wire ở chỗ, dữ liệu tri ñược

dùng cho những net ñược ñiều khiển bởi nhiều cổng linh kiện ngõ ra. Loại dữ liệu tri (tri-state) là loại dữ liệu ñặc biệt của wire trong đó sự phân giải

giá trị của net ñược ñiều khiển bởi nhiều linh kiện ñiều khiển ñược thực

hiện bằng việc sử dụng những qui luật của bus tri-state. Tất cả các biến mà

ñiều khiển net tri phải có giá trị Z (tổng trở cao), ngoại trừ một biến. Biến ñơn này xác ñịnh giá trị của net tri.

Trong ví dụ 2.6, ba biến ñiều khiển biến out. Chúng ñược thiết lập trong module khác để chỉ một linh kiện điều khiển tích cực trong một thời

Lâm Đức Khải University of Information Technology Page 46 Module tri_test (out, a, b,c);

Input [1:0] select, a, b, c; Output out;

Tri out;

Assign out = a ; tạo kết nối cho net tri Assign out = b;

Assign out = c; Endmodule

Module abc (a, b, c, select) Output a, b, c;

Input [1:0] select;

Always @(select) begin

A = 1’bz; // thiết lập tất cả các biến có giá trị Z B = 1’bz;

C = 1’bz;

Case (select) // chỉ thiết lập một biến non-Z 2’b00: a = 1’b1;

Lâm Đức Khải University of Information Technology Page 47 2’b01: b = 1’b0; 2’b10: c = 1’b1; Endcase End Endmodule

Module top_tri_test ( out, a, b, c, select); Input [1:0] select;

Input a, b, c; Output out; Tri out;

Abc (a, b, c, select); Tri_test (out, a, b, c); endmodule

3.4.4 Wired net

Wired nets bao gồm những loại dữ liệu wor, wand, trior và triand. Chúng ñược dủng ñể mơ hình giá trị logic của net. Những wired net trên có

Lâm Đức Khải University of Information Technology Page 48 bảng sự thật khác nhau ñể phân giải những xung ñột nếu xảy ra khi có

nhiều cổng linh kiện cùng điều khiển một net.

Một phần của tài liệu gtverilog (Trang 43 - 49)

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

(87 trang)