verilog中3,4 表示什麼意思

2021-05-02 11:30:17 字數 3701 閱讀 4094

1樓:80後的

verilog中允許使用者通過門延遲來說明邏輯電路中的延遲,此外使用者還可以指定端到端的延遲。

在verilog門級原語中,有三種從輸入到輸出的延遲。

1 上升延遲:在門的輸入發生變化的情況下,門的輸出從0,x,z變化到1所需的時間成為上升延遲。

2 下降延遲:下降延遲是指門的輸出從1,x,z變化到0所需的時間。

3 關斷延遲:門的輸出從0,1,x變化為高阻z所需的時間。

另外,如果值變化到不確定值x,則所需的時間可以看成是以上三種延遲值中最小的那個。

verilog中有三種不同的方法來說明門的延遲。如果使用者只確定了一個延遲值,那麼所有型別的延遲都是用這個延遲值,如果使用者指定了兩個延遲值,則他們分別代表上升延遲和下降延遲,兩者中小者為關斷延遲,如果使用者指定了三個延遲值,則他們分別代表上升延遲、下降延遲和關斷延遲。如果為制定延遲值,那麼預設延遲值為0.

延遲宣告的例子

and #(3,4,5) b1 (out,in,control); //上升延遲為3,下降延遲為4,關斷延遲為5

2樓:來自南泉寺舞盡霓裳的葡萄柚

表示給低層傳遞引數(parameter)

可以給予低層模組的parameter新的值,覆蓋掉定義模組的預設parameter

3樓:手機使用者

延遲有三種,最小延遲,典型延遲,最大延遲。一般形式為

#(3,4,5);//依次對應為最小延遲,典型延遲,最大延遲。

只寫兩個的寫法沒見過~~

4樓:

那是引數傳遞

被呼叫的函式裡面有parameter 定義的巨集定義

5樓:匿名使用者

應該是呼叫的這個模組在實現的時候是這麼寫的module modulename #(

parameter val = 某個數字

)(引數1,引數2...

);...

endmodule

這樣在呼叫的時候你就可以寫

modulename #(重新定義val的值) uut(引數1,引數2...)

在verilog語言中#是什麼意思?

6樓:

前**用的,無法綜合的。

例如:#5 data_in = data_tmp;

就是延遲5個時間單位後

,在進行復制。

具體延遲多少,得看你的 timescale`timescale n/n

根據這個來看你具體延遲的時間

7樓:愛露

verilog hdl是一種硬體描述語言(hdl:hardware description language),以文字形式來描述數字系統硬體的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表示式,還可以表示數字邏輯系統所完成的邏輯功能。

#1 a=1;#表延遲,延遲一個時間單位後執行a=1;語句

#1 b=1; 延遲一個時間單位後執行b=1;語句

8樓:匿名使用者

這得分情況的,如果出現在賦值語句前面或者中間,表示延時,比如:

#5 variable1 = ***x;

varibale2 = #6 ***x;

如果出現在模組例項化的時候,既可以表示延時,又可以表示對模組內部parameter的重新賦值,比如:

對於閘電路,表示延時:nand #(3,4) nand1(a,b,c)->輸入a,b各延時3和4個單位

對於一般模組,表示對parameter的重新複製,如:

你定義了而一個子模組:

module sub_module(clk,rst,....);

parameter width=8;

parameter addr=5;

.....

...endmodule

然後在一個頂層模組中例項化sub_module,但是你要改變sub_module中定義的parameter值,可以這樣:

sub_module #(32,6) u1(clk,rst.....);

這樣的話,width和addr就分別為32和6了

9樓:邰懷蕾範掣

@英文為

at,就是表示條件,即當(

posedge

clock

)時候@一直翻譯為at的,其實和郵箱地址中的@一樣,不過就是郵箱中的@表示位置而已

10樓:匿名使用者

延遲#1 延遲1個定義的時間單位

#2 延遲2個定義的時間單位

。。。。

11樓:匿名使用者

前**用的,無法綜合的。

for(i=1;i++;)

5個時間單位後a去反就實現了a的資料的定義,就不用在**的時候手動設定波形了。

12樓:匿名使用者

表示時延的意思,例如 #3表示延遲3個單位時間,#0表示延遲0個時間單位

13樓:匿名使用者

延時符號,產生波形時用

verilog hdl 中 assign #(1:2:3,4:5:6) y = ~a;中的#()內是什麼意思?那個參考資料上有,能給個參考資料

14樓:匿名使用者

#(1:2:3) y = ~a;括號裡

du數是延時值,zhi1是延時的最小值,dao2是典型值,3是最大值專,就是經過延時值後將

屬~a付給y。

#(1:2:3,4:5:6) y = ~a;

這個1:2:3和4:5:6是分別是非門的上升沿和下降沿的時間(最小值:典型值:最大值)。

這方面的書很多啊,電子書也很多。跟你說個論壇,你可以去那搜下,夏宇聞編寫,eetop

15樓:崢崢好

#在verilog中用來延遲一段時間,硬體無法實現這樣的操作,一般都是**的時候使用這樣的語句,至於括號裡面的,貌似在matlab裡面是個陣列的表示方法,verilog裡面確實沒見過。

16樓:匿名使用者

#是一種運算方式,括號是提示內容

verilog中,#符號是什麼意思

17樓:

#5的概念是延遲的意思。但是是行為級描述 綜合時將被過濾。

一般#+數字的組合在**器中產生一定的延遲。延遲結構如下~~

首先`timescale 1ns/100ps 這個是整個延遲的定義。`timescale是關鍵字,然後後面的兩位時間 第一位是用來表示你的延遲因子的。第二位用來表示步進時間。

舉例:`timescale 1ns/100ps

......

always(這裡用forever亦可)

#10 clk=~clk;

那麼也就是說,10個延遲因子時clk取反。也就是說10納秒時clk取反。所以你就得到一個50mhz的時鐘。

後面的100ps代表的意思是機器**的步進時間,當你寫1ns/100ps時。在螢幕上顯示的1ns時間內。機器做10次的運算。

如果不能直觀理解。那麼就嘗試一下`timescale 1ns/1ps的區別。你就知道了。

千萬注意的是:這個只能在**工具中運用。綜合成電路時。你不要希望有這類延遲存在。

18樓:匿名使用者

表示延時5ns後執行語句

float a表示什麼意思,float a 3 4 表示什麼意思?

p 3 為指標 來陣列,其每一 源個元素 p i 都是一個指標,可以存放一個float型元素的地址,a 5 3 為二維陣列,c c 的陣列是構造性的,二維陣列被解釋為 元素為一維陣列 的一維陣列,因此,a 5 3 被視為具有5個元素 a 0 a 1 a 4 的一維陣列,每個元素都是一個一維陣列,a ...

verilog中wire一般什麼時候應用

有幾種情況變數需要定義成wire 第一 assign 語句 例如 reg a,b wire and result assign and result a b 你可以試試把wire定義成reg。綜合器會報錯。第二 元件例化時候的輸出必須用wire 例如 wire dout ram u ram out ...

37327378這個數中的3和7表示的意義一樣嗎?分別表示什麼

3732 7378這個數中的三個3和三個7表示的意義不一樣。從左邊起第一個3表示3個千萬,第二個 3表示3個十萬,第三個3拜師3個百 第一個7表示7個百萬,第二個7表示7個千,第三個7表示7個十。37327378中的三個3和三個7表示的意義一樣嗎 1 37327378中的三個3和三個7表示的意義不一...