Khai báo port

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

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

3.6 Khai báo port

3.6.1 Giới thiệu

Ta phải khai báo thật tường minh về chiều (input, output hay bidirectional) của mỗi port xuất hiện trong danh sách khai báo port. Trong Verilog ñịnh nghĩa ba loại port khác nhau, đó là input, output và inout. Loại dữ liệu của port có thể là net hoặc reg. Loai dữ liệu reg chỉ có thể xuất hiện

ở port output. Hằng số và biểu thức ln nằm phía dưới khai báo port.

input: tất cả port input của một module ñược khai báo với một phát biểu input. Loại dữ liệu mặc ñịnh của input port là wire và ñược ñiều khiển bởi cú pháp của wire. Ta có thể khai báo ñộ rộng của một input như một

mảng (vector) của những tín hiệu, giống như input b trong ví dụ dưới. Những phát biểu input có thể xuất hiện ở bất cứ vị trí nào trong mơ tả thiết kế nhưng chúng phải ñược khai báo trước khi chúng ñược sử dụng. Ví dụ:

input a; input [2:0] b;

output: tất cả port output của một module ñược khai báo với một

Lâm Đức Khải University of Information Technology Page 58 wor, hoặc tri ñược khai báo, thì output port sẽ có loại dữ liệu mặc định là

wire và nó cũng được điều khiển bởi cú pháp của wire. Một phát biểu

output có thể xuất hiện ở bất cứ vị trí nào trong mơ tả thiết kế, nhưng nó

phải được khai báo trước khi được sử dụng. Ta có thể khai báo ñộ rộng của một output như một mảng (vector) của những tín hiệu. Nếu ta sử dụng loại dữ liệu reg để khai báo cho output thì reg phải có cùng độ rộng với độ rộng của mảng (vector) của tín hiệu. Ví dụ:

output a; output [2:0] b; reg [2:0] b;

inout: ta có thể khai báo port hai chiều (bidirectional) với phát biểu inout. Một port inout có loại dữ liệu là wire và được điều khiển bởi cú pháp của wire. Ta phải khai báo port inout trước khi nó được sử dụng. Ví dụ:

inout a: inout [2:0] b;

3.6.2 Ví dụ

Ví dụ 2.11:

module fulladder(cOut, sum, aIn, bIn, cIn); input aIn, bIn, cIn;

Lâm Đức Khải University of Information Technology Page 59 wire aIn, bIn, cIn;

reg cOut, sum; … Endmodule 3.6.3 Cú pháp list_of_ports ::= ( port {,port }) port ::= [port_expression] | . port_identifier ( [port_expression] ) port_expression ::= port_reference | { port_reference ,port_reference } port_reference ::= port_identifier | port_identifier[ constant_expression ]

| port_identifier [ msb_constant_expression :lsb_constant_expression ]

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

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

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

(87 trang)