精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

如何遍歷force多位寬信號的每一比特?

sanyue7758 ? 來源:硅芯思見 ? 2023-07-12 09:35 ? 次閱讀

大家在構建測試激勵時,經常會遇到需要使某個信號強制變成某個值,此時我們經常會用到Verilog和SystemVerilog中的force實現這樣的功能。但是有時候在對多位寬的信號進行force時有時會出現編譯錯誤,這是為什么呢?本文將對此類情況進行示例說明。

【示例】

ebc0038a-1ffc-11ee-962d-dac502259ad0.png

仿真結果】

ebe4a1c2-1ffc-11ee-962d-dac502259ad0.png

示例中,通過三種方式對sig中的部分位選進行了force。通過force將sig中的第0位force為了1,從顯示信息可以看到sig[0]已經被修改;通過force將sig中的第0位和第1位force為了00,從顯示信息可以看到sig[1:0]已經被修改;通過force將sig整體force為了0111,從顯示信息可以看到sig[1:0]已經被修改;

可以看到,我們可以通過force對于變量、變量中的某一位或者某一個片段進行改變,那么可能有些人覺得這么一位一位的進行force太麻煩了,是否可以使用for循環對sig中所有位遍歷進行force呢?請看下例。

【示例】

ebf79fca-1ffc-11ee-962d-dac502259ad0.png

【仿真結果】

ec34e006-1ffc-11ee-962d-dac502259ad0.png

編譯錯誤!這是為什么呢?對比該示例和上一示例,可以發現當信號的索引為常值時,可以進行force,但是當索引為變量時,此時編譯不通過。

也就是說在對信號進行force的時候,如果要對其中的某一位或者一個片段進行force時,其中的索引只能是常數不能是變量,否則將會導致便以失敗。

那么如果想實現通過變量實現對于多位寬信號中每一位進行force還有什么辦法嗎?下面我們通過示例介紹幾種。

【示例】使用generate結構

ec46877a-1ffc-11ee-962d-dac502259ad0.png

【仿真結果】

ec5d28d6-1ffc-11ee-962d-dac502259ad0.png

示例中,使用generate結構實現了對于sig中每一位的遍歷。這其實借助了generate是在仿真前的析構(elaboration)階段完成的特性,即在仿真開始之前,相當于已經將sig被force的每一位的initial結構都已經生成好了,這樣在仿真開始執行時(生成好的initial塊開始被執行時),其中“force sig[i]”中的i都已經是確定的值了,因此就可以避免force信號中某一位時,索引為變量的情況。

除了這種在析構(elaboration)階段就生成好語句結構的方式外,還可以想如下方式操作。

【示例】

ec719d84-1ffc-11ee-962d-dac502259ad0.png

【仿真結果】

ec8f34de-1ffc-11ee-962d-dac502259ad0.png

示例中,實際上是將要force的信號每一位都單獨寫了出來,即保證了被force信號的索引都是常量,缺點是,如果這個信號比較寬,那么寫起來比較枯燥,沒有上一種使用generate結構方便。但是實際上兩者之所有都沒有問題,其實都是保證了被force信號的索引是個常值。

所以,如果在實際使用時,需要對多位寬信號的每一位或者某一個片段進行force,那么需要保證被force的那一位或者那一個片段的索引值在仿真運行開始時是常值。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真器
    +關注

    關注

    14

    文章

    1016

    瀏覽量

    83644
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8214

原文標題:如何遍歷force多位寬信號的每一比特

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

收藏 人收藏

    評論

    相關推薦

    多位數據通過握手方式跨時鐘域

    對于多位數據,我們可以采用握手方式實現跨時鐘域操作。該方式可直接使用xpm_cdc_handshake實現,如下圖所示。
    的頭像 發表于 05-06 09:22 ?1105次閱讀
    <b class='flag-5'>多位</b><b class='flag-5'>寬</b>數據通過握手方式跨時鐘域

    求教縱線有有窄的怎么知道條線對應的數值呢?

    求大神告知這種圖要怎么看啊?、縱線有有窄的怎么知道條線對應的數值呢?
    發表于 08-09 14:44

    同步從個時鐘域到另個時鐘域的多位信號怎么實現?

    你好,我在Viv 2016.4上使用AC701板。我需要同步從個時鐘域到另個時鐘域的多位信號(33位)。對我來說,這個多位
    發表于 08-17 07:48

    I-Force410無鐵芯直線電機

    I-Force 410 無鐵芯直線電機峰值推力可達 3928N, 卓越的加速度和緊湊的體積. 50.8mm 的無鐵芯設計具有零齒槽效應力,同時工字型骨架繞組提供很高的推力/體積密度比和優越的散熱
    發表于 09-01 08:54

    LS1046 SDRAM多位錯誤注入怎么處理?

    ) 來注入 ECC 多位錯誤,但它崩潰了。但它通過使用上述寄存器 DATA_ERR_INJECT_HI(設置為 0x01 用于位 0 反轉)來進行單比特錯誤注入,單比特錯誤由 ERR_DETECT 檢測。有什么想法可以防止崩潰或
    發表于 03-28 07:19

    Design of Crimp force Monitor

    Crimp Force Monitor is a product using highly sensitive force sensors to detectdefective crimping.
    發表于 08-25 15:05 ?21次下載

    存儲百倍提升! IBM納米技術1比特12原子

    提到存儲,比特(bit)是最小的單位,然而一比特需要多少個原子呢?最近IBM的研究人員用納米技術詮釋了這概念,存儲一比特信息僅需12個原子。
    發表于 01-16 09:30 ?4559次閱讀

    二叉樹的前序遍歷、中序遍歷、后續遍歷的非遞歸實現

    前序遍歷:先訪問該節點,然后訪問該節點的左子樹和右子樹; 中序遍歷:先訪問該節點的左子樹,然后訪問該節點,再訪問該節點的右子樹; 后序遍歷:想訪問該節點的左子樹和右子樹,然后訪問該節點。
    發表于 11-27 11:24 ?1124次閱讀

    jquery的each遍歷方法

    本文為大家介紹Jquery中each的三種遍歷方法,有興趣的伙伴可以參考下。
    發表于 12-03 10:19 ?2542次閱讀

    螺旋遍歷二維數組漫畫講解

    來自公眾號:程序員小灰 第二天 什么意思呢?我們來舉個例子,給定下面這樣個二維數組: 我們需要從左上角的元素1開始,按照順時針進行螺旋遍歷遍歷完所有的元素,
    的頭像 發表于 11-26 14:01 ?1732次閱讀

    總結下OpenCV遍歷圖像的幾種方法

    在圖形處理中,遍歷每個像素點是最基本的功能,是做算法的基礎,這篇文章來總結下OpenCV遍歷圖像的幾種方法。
    的頭像 發表于 01-18 15:08 ?1690次閱讀

    HashMap遍歷操作為什么不能遍歷遍刪除呢?

    上面出現這樣的原因是在使用 foreach 對 HashMap 進行遍歷時,同時進行 put 賦值操作會有問題,異常 ConcurrentModificationException。
    的頭像 發表于 02-10 11:25 ?544次閱讀

    跨時鐘域電路設計:多位數據通過FIFO跨時鐘域

    FIFO是實現多位數據的異步跨時鐘域操作的常用方法,相比于握手方式,FIFO方面允許發送端在每個時鐘周期都發送數據,另方面還可以對數據進行緩存。需要注意的是對FIFO控制
    的頭像 發表于 05-11 14:01 ?2950次閱讀
    跨時鐘域電路設計:<b class='flag-5'>多位</b><b class='flag-5'>寬</b>數據通過FIFO跨時鐘域

    對于多位的異步信號如何進行同步呢?

    對于多位的異步信號如何進行同步呢? 異步信號(Asynchronous Signals)是指系統中發生的事件或者信號,它們的發生時間不可預測、不可控制,與其他的進程、線程以及系統中的各
    的頭像 發表于 09-12 11:18 ?1389次閱讀

    python如何遍歷列表并提取

    遍歷列表是Python中非常常見的操作之,可以使用for循環或者while循環來實現。下面我將詳細介紹如何使用for循環遍歷列表并提取元素。 首先,讓我們簡單了解下Python中的
    的頭像 發表于 11-23 15:55 ?1294次閱讀