0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

SystemVerilog:處理信號雙驅(qū)動問題解析

sanyue7758 ? 來源:處芯積律 ? 2023-10-13 14:53 ? 次閱讀

1.前言

最近幫朋友搞定一個小問題,記錄一下。不啰嗦,直接上結論:當某個信號出現(xiàn)多于一個驅(qū)動源的時候,或者某個信號是雙向(inout)的時候,都需要使用wire來完成線網(wǎng)連接。具體用法就是聲明某個信號為wire sigal_a;或者wire logic signal_a;就可以了。注意直接聲明為logic signal_a;是不行的,會報類似如下的錯誤:xmelab: *E,ICDCBA: Illegal combination of driver and output clockvar to variable 'signal_a' detected (output clockvar found in ......).

2. 實例代碼

776401b4-6910-11ee-939d-92fbcf53809c.png

interface test_if(input clk);
  //var logic multi_drv_sig;//code bug
  logic multi_drv_sig;//code bug
  //wire logic multi_drv_sig;//ok
  //wire multi_drv_sig;//ok


  clocking cb @(posedge clk);
    inout multi_drv_sig;
  endclocking


  modport modp_0(output multi_drv_sig);
  modport modp_1(input multi_drv_sig);
endinterface


module test();


test_if test_if0();


assign test_if0.modp_1.multi_drv_sig=0;
endmodule

3.Makefile腳本

all:clean
  xrun -sv -64bit -access rwc -top test ./*.sv
clean:
  rm -rf *.d *.history *.log
4.仿真結果

77841e18-6910-11ee-939d-92fbcf53809c.png

5.報錯信息查詢

如下圖所示,查詢報錯信息的含義,xrun甚至還給出了解決方案,通過添加工具提供的選項-warn_multiple_driver的確可以將這個*E的Error降為Warning,但是這不是問題的根源。

77a0912e-6910-11ee-939d-92fbcf53809c.png

6. 問題的根源

如下圖所示,第4行和第5行的用法都是對的,第2行和第3行的用法都是錯誤的。

77b7907c-6910-11ee-939d-92fbcf53809c.png

7. Summary& Conclusion

在SystemVerilog中,類型可以分為線網(wǎng)(net)和變量(variable)。線網(wǎng)的賦值設定與Verilog的要求相同,即線網(wǎng)賦值需要使用連續(xù)賦值語句(assign),而不應該出現(xiàn)在過程塊(initial/always)中;相比于線網(wǎng)驅(qū)動的限制,變量(var)類型的驅(qū)動要求就沒有那么多了,如logic [15:0] signal_b,該變量默認類型是var(變量),對它可以使用連續(xù)賦值或過程賦值。

簡言之,可以在module中的數(shù)值存儲和線網(wǎng)連接,多數(shù)情況下使用logic類型變量,而很少有只能使用wire的情況。那么什么時候需要使用wire類型呢?就是本文的這種scenario:當某個信號出現(xiàn)多于一個驅(qū)動源的時候,或者某個信號是雙向(inout)的時候,都需要使用wire來完成線網(wǎng)連接。具體用法就是聲明某個信號為wire sigal_a;或者wire logic signal_a;就可以了。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 信號處理
    +關注

    關注

    48

    文章

    992

    瀏覽量

    103154
  • Verilog
    +關注

    關注

    28

    文章

    1343

    瀏覽量

    109925
  • Makefile
    +關注

    關注

    1

    文章

    125

    瀏覽量

    19158

原文標題:SystemVerilog中如何處理信號的雙驅(qū)動問題

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RCC電路原理與設計及問題解析

    RCC電路原理與設計及問題解析 RCC電路,單端反激式的一種,結構簡單,主要應用在1~200W,首先變壓器設計最為重要,RCC電路結構主要包括: 1.
    發(fā)表于 12-14 10:31 ?2.6w次閱讀

    C語言習題解析

    C語言習題解析
    發(fā)表于 03-11 15:20

    round robin 的 systemverilog 代碼

    大家好,我對一個 round robin 的 systemverilog 代碼有疑惑。https://www.edaplayground.com/x/2TzD代碼第49和54行是怎么解析呢 ?
    發(fā)表于 03-14 19:16

    UART串口與LWIP以太網(wǎng)問題解析

    技術三千問:【技術三千問】之《玩轉(zhuǎn)ART-Pi》,看這篇就夠了!干貨匯總【技術三千問】之《AT組件問題匯總與解析》,干貨匯總!【技術三千問】之《UART串口問題解析》,干貨匯總!【技術三千問】之
    發(fā)表于 08-05 06:54

    電子設計競賽賽題解析

    電子設計競賽賽題解析 東西是非常不錯的,可供參考.
    發(fā)表于 12-17 12:43 ?0次下載

    電視卡常見問題解決方法(驅(qū)動問題等)

    電視卡常見問題解決方法(驅(qū)動問題等) 比如有時發(fā)現(xiàn)裝不上驅(qū)動,請查看自已的系統(tǒng)是否已經(jīng)裝了DirectX9.0C,如果沒有,可以到
    發(fā)表于 12-06 08:37 ?2525次閱讀

    車臺天線的位置和輻射問題解析

    車臺天線的位置和輻射問題解析 1、車臺外接的天線,放在后備箱上比放在車頂中間的效果是不是差一些? 回答:車臺的天線共有四
    發(fā)表于 01-04 09:44 ?3249次閱讀

    運算放大器容性負載驅(qū)動問

    運算放大器容性負載驅(qū)動問題 Grayson King,Analog Devices Inc. 問:為什么我要考慮驅(qū)動容性負載問題?
    發(fā)表于 01-04 17:42 ?3717次閱讀
    運算放大器容性負載<b class='flag-5'>驅(qū)動問</b>題

    蘇泊爾微電腦電磁爐故障問題解析

    蘇泊爾微電腦電磁爐故障問題解析,本內(nèi)容介紹了蘇泊爾電磁爐故障問題的分析
    發(fā)表于 05-11 15:14 ?6740次閱讀
    蘇泊爾微電腦電磁爐故障問<b class='flag-5'>題解析</b>

    自動控制原理習題解析

    自動控制原理習題解析,有需要的下來看看。
    發(fā)表于 05-05 14:06 ?0次下載

    風力擺控制系統(tǒng)賽題解析

    風力擺控制系統(tǒng)賽題解析
    發(fā)表于 12-09 23:00 ?31次下載

    電工學知識要點與習題解析

     《高等學校優(yōu)秀教材?電工學知識要點與習題解析》為配合秦曾煌教授主編的《電工學》(第六版)而編寫的輔導書?!峨姽W知識要點與習題解析/高等學校優(yōu)秀教材輔導叢書》主要包括知識要點、書后思考題解答、書后
    發(fā)表于 01-10 11:48 ?57次下載
    電工學知識要點與習<b class='flag-5'>題解析</b>

    解決高頻MEMS測試驅(qū)動問題的方案是什么

    ,驅(qū)動電壓需要達到150Vpp,目前市面上的標準信號發(fā)生器輸出電壓低、電壓小于10Vpp帶負載能力弱,輸出電流是mA級別。無法解決高壓大功率驅(qū)動問題。 如何解決高頻MEMS測試驅(qū)動問
    發(fā)表于 12-08 11:32 ?798次閱讀

    樊昌信《通信原理》真題解析及講義電子版

    樊昌信《通信原理》真題解析及講義電子版
    發(fā)表于 09-06 14:40 ?0次下載

    光耦失效的幾種常見問題解析

    光耦失效的幾種常見問題解析? 光耦失效是一個常見的問題,特別是在電子設備中經(jīng)常使用光耦進行隔離和信號傳輸?shù)那闆r下。下面將詳細介紹一些光耦失效的常見問題以及解析。 1. 輸出信號弱或無輸
    的頭像 發(fā)表于 12-25 14:30 ?5798次閱讀