interface中clocking block輸入偏差與輸出偏差


資料來源

(1) 硅芯思見:【125】clocking block中的輸入偏差和輸出偏差 (qq.com)

(2) sv綠皮書;

1.輸入偏差與輸出偏差

(1) system verilog的時鍾塊機制(clocking block)可以對指定信號進行基於特定時鍾的同步處理,時鍾塊中的任何信號都將根據指定時鍾被同步驅動或采樣;

(2) clocking block可以樣信號和驅動信號指定input偏差和output偏差;

(3) clocking block中默認的input偏差是1step,默認的output偏差為0; 其中,1step可以認為是上一時間槽(time slot)的最后時刻;

注1:#1step中的step與`timescale中的仿真精度一致(出處???);

注2:當input skew大於0時,避免競爭現象,避免到底采樣的是時鍾沿前的數據還是時鍾沿后的數據;

注3:以program定義的代碼被認為是測試平台代碼,會放到reactive區域執行;

注4:$monitor,$storbe以及其他類似的事件都在postponed區域執行;

(4) interface中的clocking block只能用於驗證平台,不能用於RTL設計;

2.示例

2.1input偏差和output偏差為默認值

(1)默認的輸入偏差為1step,默認的輸出偏差為0;

(2)輸入偏差1step可以認為是上一時間槽的最后時刻,指采樣信號事件(cb.sig1)采樣輸入信號(sig1)在時鍾邊沿1step前的穩定值;

注1:采樣輸入信號,使用阻塞賦值;驅動輸出信號,采用非阻塞賦值;

(3)輸出偏差0則表示采樣事件發生后(cb.sig2)立即將對應值驅動或更新到輸出端口(sig2)(對於clocking block的輸出sig2而言,該信號通過cb引用時,可以被驅動,但是不能被讀,否則會報錯);

2.2定義default輸入偏差與輸出偏差

2.3default偏差設置為posedge和negedge

(1)輸入偏差設置為posedge,時鍾采樣到sig1后立即在上升沿將值更新到cb.sig1中;

(2)輸出偏差設置為negedge,cb.sig2的值在采樣后,等到時鍾下降沿將值更新到sig2中;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM