SV Verilog中的延時模型

2021-10-06 06:56:23 字數 2735 閱讀 3768

– 在結構描述中隨規模的增大而變得異常複雜。 –

仍然不能描述基本單元

(primitive)

中不同引腳上的不同延時。

– 精確性:所有路徑延時都能精確說明。 –

模組性:時序與功能分開說明

• 當事件佇列中所有事件結束時**前進乙個時片。在某種零延時反饋情況下,新事件在同一時片不斷的加入,致使**停滯在那個時片。 •

若在結構描述**現從輸出到輸入的零反饋情況,多數**器會檢測到這個反饋並產生錯誤資訊。

verilog

的lint checker

對這種情況會提出警告。 •

解決這個問題的方法是在電路中加入分布延時。路徑延時不能解決零延時振盪問題,因為輸出訊號在反饋前不會離開模組。

2.5.1、verilog中,可以:

and #(2,3) (out, in1, in2, in3); // rise, fall

bufif0 #( 3,3,7) (out, in, ctrl); // rise, fall, turn- off

(in => out) = (1, 2); // rise, fall

(a => b) =  (5, 4, 7); // rise, fall, turn- off

(c => q) = (5, 12, 17, 10, 6, 22);(c => q) = (5, 12, 17, 10, 6, 22, 11, 8, 9, 17, 12, 16);or #( 3.2:4.0:6.3) o1( out, in1, in2);  // min:typ: maxnot #( 1:2:3, 2:3:5) (o, in);   // min:typ: max for rise, fall

user_module#(1:2:3, 2:3:4) ( ……;cadence verilog中還不支援

(b => y) = (2: 3: 4, 3: 4: 6, 4: 5: 8);  // min:typ: max for rise, fall, and turnoff

延時說明定義的是門或模組的

固有延時

。輸入上的任何變化要經過說明的延時才能在輸出端反映出來。如果沒有延時說明,則

基本單元

的延時為

0。分布

關斷延時

只對三態基本單元有效。 –

如果說明了上公升、下降和關斷延時,則

1->x

的轉換延時使用上公升和關斷延時的最小值。

x->0

的延時為下降延時;

x->z

的轉換為關斷延時。 –

如果只說明了上公升和下降延時,則

1->x

和x->0

使用下降延時,

x->z

使用上公升和下降延時的最小延時 –

如果只說明了乙個延時,則所有轉換使用這個延時。 –

如果說明了六個延時,則

1->x

使用1->x

和1->z

中最小延時;

x->0

使用1->0

和x->0

的最大延時;

x->z

使用1->z

和0->z

中的最大延時。

android 中的延時

一 開啟新執行緒 new thread new runnable start new thread new runnable start 二 利用定時器 timertask task new timertask timer timer new timer timer.schedule task,de...

延時函式中的volatile

除錯wince驅動時候,有時候碰到us級別的時序要求的短延時,使用硬體定時器顯得麻煩.一般我會用乙個短延時delay 今天碰到了離奇事情.實現乙個短延時,用巨集,內聯函式或者函式都可以實現.下面是乙個例子.define delay us dowhile 0 你能想象的出上面 有什麼問題?我使用pb的...

Linux Shell中的延時函式

linux shell 中的延時函式 在 linux shell 指令碼中經常需要做一些延時處理。所以經常要用到 sleep 或 usleep 函式。下面來說一下 sleep 和 usleep 的區別 sleep 預設以秒為單位。usleep 預設以微秒為單位。1s 1000ms 1000000us...