Đặc tả tham số (specify parameter) 1 Giới thiệu

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

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

3.9.4 Đặc tả tham số (specify parameter) 1 Giới thiệu

3.9.4.1 Giới thiệu

Từ khóa specparam khai báo nó là một loại ñặc biệt của tham số

(parameter) chỉ dùng cho mục đích cung cấp giá trị ñịnh thời (timing) và

Lâm Đức Khải University of Information Technology Page 83 mà biểu thức đó khơng ñược gán ñến một tham số (parameter) và biểu thức

đó cũng khơng phải là phần mơ tả độ rộng trong một khai báo. Những tham

số ñặc tả ( specparams) ñược phép khai báo bên trong khối ñặc tả (specify block) hoặc bên trong một module chính.

Một tham số ñặc tả (specify parameter) khai báo bên ngồi một khối

đặc tả (specify block) thì cần được khai báo trước khi nó được sử dụng. Giá

trị mà được gán đến một tham số đặc tả có thể là một biểu thức hằng số bất kì. Một tham số đặc tả có thể ñược dùng như là phần của một biểu thức

hằng số cho một khai báo tham số ñặc tả kế tiếp. Không giống như một

tham số module (module parameter), một tham số đặc tả khơng thể được

gán lại giá trị từ bên trong ngơn ngữ Verilog, nhưng nó có thể được gán lại giá trị thông qua tập tin dữ liệu SDF ( Standard Delay Format).

Những tham số ñặc tả (specify parameter) và tham số module

(module parameter) thì khơng thể thay thế cho nhau. Ngoài ra, tham số module (module parameter) khơng thể được gán bởi một biểu thức hằng số mà có chứa tham số đặc tả ( specify parameter). Bảng 4.7 tóm tắt sự khác

nhau giữa hai loại khai báo tham số.

Specparams (tham số ñặc tả) Parameters ( tham số module) Sử dụng từ khóa specparam Sử dụng từ khóa parameter Cần được khai báo bên trong một

module hoặc một khối ñặc tả (

specify block)

Cần được khai báo bên ngồi những khối ñặc tả ( specify block)

Lâm Đức Khải University of Information Technology Page 84 module hoặc một khối ñặc tả (

specify block)

những khối ñặc tả (specify block).

Có thể được gán bởi tham số đặc tả

(specparam) và tham số module (parameter).

Không thể ñược gán bởi specparams.

Sử dụng tập tin dữ liệu SDF ñể gán ñè giá trị cho tham số ñặc tả.

Dùng phát biểu defparam hoặc phép gán giá trị tham số cho instance của module ñể gán ñè giá trị cho tham

số.

Một tham số đặc tả (specify parameter) có thể được mơ tả độ rộng. Độ rộng của những tham số ñặc tả cần tuân theo những qui luật sau:

• Một khai báo tham số đặc tả mà khơng có mơ tả ñộ rộng thì mặc ñịnh sẽ là

ñộ rộng của giá trị cuối cùng được gán đến nó, sau khi có bất kì giá trị nào

gán đè lên nó.

• Một khai báo tham số đặc tả mà có mơ tả độ rộng thì độ rộng của nó sẽ theo

độ rộng khai báo. Độ rộng sẽ khơng bị ảnh hưởng bởi bất kì giá trị nào được

gán đè lên nó.

Việc chọn bit hay một phần của tham số cục bộ mà loại dữ liệu của nó khơng phải là real thì được phép.

Ví dụ:

specify

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

specparam tRise_control = 40, tFall_control = 50; endspecify

Những dịng ở giữa những từ khóa specify và endspecify là ñể khai

báo bốn tham số ñặc tả. Dịng đầu tiên khai báo hai tham số ñặc tả

tRise_clk_q và tFall_clk_q với giá trị tương ứng là 150 và 200. Dòng thứ hai khai báo hai tham số ñặc tả tRise_control và tFall_control với giá trị

tương ứng là 40 và 50. Ví dụ:

module RAM16GEN (output [7:0] DOUT, input [7:0] DIN, input

[5:0] ADR,

input WE, CE);

specparam dhold = 1.0; specparam ddly = 1.0; parameter width = 1;

parameter regsize = dhold + 1.0; // Không hợp lệ - không thể gán

tham số ñặc tả (specparam) ñến một tham số (parameter)

endmodule

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

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

(87 trang)