1樓:匿名使用者
`define 是巨集定義,全域性作用的,而且不受語意限制。你甚至可以定義回半截的字串出來。答
但是使用的時候才會做。
舉例而言,如果你定義一個寬度資訊為:
`define range 2:3
然後在使用的時候`include這個檔案,range就可以解析了。
wire [`range] bus;
parameter是模組內常量定義,僅限於常量。一般的工具對於parameter的支援力度更好,畢竟是語意可以識別的。而`define的支援僅僅限於parse階段,不會流入到elaboration階段。
但是如果把``define的使用場景都改為parameter會造成不必要的變數的引入。
目前一般使用`define的地方一般是全域性化的configuration階段。比如說對整個ip的配置資訊,一個ip應該滿足不同的soc的需求提供不同的配置。
Verilog中parameter和define的區別
define 是巨集定義,全域性作用的,而且不受語意限制。你甚至可以定義半截的字串出來。但是使用的時候才會做。舉例而言,如果你定義一個寬度資訊為 define range 2 3 然後在使用的時候 include這個檔案,range就可以解析了。wire range bus parameter是模組...
verilog中3,4 表示什麼意思
verilog中允許使用者通過門延遲來說明邏輯電路中的延遲,此外使用者還可以指定端到端的延遲。在verilog門級原語中,有三種從輸入到輸出的延遲。1 上升延遲 在門的輸入發生變化的情況下,門的輸出從0,x,z變化到1所需的時間成為上升延遲。2 下降延遲 下降延遲是指門的輸出從1,x,z變化到0所需...
verilog拼接符的用法Verilog中拼接符問題
在verilog hdl語言有一個特殊的運算子 位拼接運算子 用這個運算子可以把兩個或多個訊號的某些位拼接起來進行運算操作。其使用方法如下 即把某些倍號的某些位詳細地列出來,中間用逗號分開,最後用大括號括起來表示一個整體訊號,例如 也可以寫成為 在位拼接表示式中不允許存在沒有指明位數的訊號。這是因為...