Phát biểu defparam

Một phần của tài liệu Thiết kế mạch số với vhdl & verilog pps (Trang 71 - 73)

Chương3 Loại dữ liệu trong Verilog 3.1Khái quát

3.9.2.1.4.1 Phát biểu defparam

Sử dụng phát biểu defparam, giá trị tham số có thể ñược thay ñổi bên trong instance của module thông qua việc sử dụng tên phân cấp của tham số.

Tuy nhiên, phát biểu defparam ñược mô tả trong một instance hoặc một dãy các instance thì sẽ không làm thay ñổi giá trị tham số trong những instance khác của cùng một module.

Biểu thức bên phải của phép gán defparam là biểu thức hằng số chỉ bao gồm số và những tham số tham chiếu ñã ñược khai báo trước ñó trong cùng module với phát biểu defparam.

Phát biểu defparam ñặc biệt hữu dụng vì ta có thể nhóm tất cả các phép gán thay ñổi giá trị các tham số của các module khác nhau chỉ trong một module.

Trong trường hợp có nhiều phát biểu defparam cho một tham số duy nhất thì giá trị tham số ñó sẽ lấy giá trị của phát biểu defparam sau cùng.

Lâm Đức Khải University of Information Technology Page 72 Nếu phát biểu defparam của một tham số ñược khai báo trong nhiều file khác nhau thì giá trị của tham số ñó sẽ không ñược xác ñịnh.

Ví dụ: module top; reg clk; reg [0:4] in1; reg [0:9] in2; wire [0:4] o1; wire [0:9] o2; vdff m1 (o1, in1, clk); vdff m2 (o2, in2, clk); endmodule

module vdff (out, in, clk); parameter size = 1, delay = 1; input [0:size-1] in;

input clk;

output [0:size-1] out;

Lâm Đức Khải University of Information Technology Page 73 always @(posedge clk)

# delay out = in;

endmodule module annotate; defparam top.m1.size = 5, top.m1.delay = 10, top.m2.size = 10, top.m2.delay = 20; endmodule

Trong ví dụ trên, module annotate có phát biểu defparam, giá trị từ phát biểu này sẽ ñè lên những giá trị tham số size và delay trong instance

m1 và m2 trong module top. Hai module top và annotate ñều ñược xem như module top-level.

Một phần của tài liệu Thiết kế mạch số với vhdl & verilog pps (Trang 71 - 73)

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

(86 trang)