衡阳派盒市场营销有限公司

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

如何遍歷force多位寬信號(hào)的每一比特?

sanyue7758 ? 來(lái)源:硅芯思見 ? 2023-07-12 09:35 ? 次閱讀

大家在構(gòu)建測(cè)試激勵(lì)時(shí),經(jīng)常會(huì)遇到需要使某個(gè)信號(hào)強(qiáng)制變成某個(gè)值,此時(shí)我們經(jīng)常會(huì)用到Verilog和SystemVerilog中的force實(shí)現(xiàn)這樣的功能。但是有時(shí)候在對(duì)多位寬的信號(hào)進(jìn)行force時(shí)有時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤,這是為什么呢?本文將對(duì)此類情況進(jìn)行示例說(shuō)明。

【示例】

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

仿真結(jié)果】

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

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

可以看到,我們可以通過(guò)force對(duì)于變量、變量中的某一位或者某一個(gè)片段進(jìn)行改變,那么可能有些人覺得這么一位一位的進(jìn)行force太麻煩了,是否可以使用for循環(huán)對(duì)sig中所有位遍歷進(jìn)行force呢?請(qǐng)看下例。

【示例】

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

【仿真結(jié)果】

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

編譯錯(cuò)誤!這是為什么呢?對(duì)比該示例和上一示例,可以發(fā)現(xiàn)當(dāng)信號(hào)的索引為常值時(shí),可以進(jìn)行force,但是當(dāng)索引為變量時(shí),此時(shí)編譯不通過(guò)。

也就是說(shuō)在對(duì)信號(hào)進(jìn)行force的時(shí)候,如果要對(duì)其中的某一位或者一個(gè)片段進(jìn)行force時(shí),其中的索引只能是常數(shù)不能是變量,否則將會(huì)導(dǎo)致便以失敗。

那么如果想實(shí)現(xiàn)通過(guò)變量實(shí)現(xiàn)對(duì)于多位寬信號(hào)中每一位進(jìn)行force還有什么辦法嗎?下面我們通過(guò)示例介紹幾種。

【示例】使用generate結(jié)構(gòu)

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

【仿真結(jié)果】

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

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

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

【示例】

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

【仿真結(jié)果】

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

示例中,實(shí)際上是將要force的信號(hào)每一位都單獨(dú)寫了出來(lái),即保證了被force信號(hào)的索引都是常量,缺點(diǎn)是,如果這個(gè)信號(hào)比較寬,那么寫起來(lái)比較枯燥,沒有上一種使用generate結(jié)構(gòu)方便。但是實(shí)際上兩者之所有都沒有問題,其實(shí)都是保證了被force信號(hào)的索引是個(gè)常值。

所以,如果在實(shí)際使用時(shí),需要對(duì)多位寬信號(hào)的每一位或者某一個(gè)片段進(jìn)行force,那么需要保證被force的那一位或者那一個(gè)片段的索引值在仿真運(yùn)行開始時(shí)是常值。






審核編輯:劉清

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

    關(guān)注

    14

    文章

    1019

    瀏覽量

    83939
  • Verilog語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8309

原文標(biāo)題:如何遍歷force多位寬信號(hào)的每一比特

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    多位數(shù)據(jù)通過(guò)握手方式跨時(shí)鐘域

    對(duì)于多位數(shù)據(jù),我們可以采用握手方式實(shí)現(xiàn)跨時(shí)鐘域操作。該方式可直接使用xpm_cdc_handshake實(shí)現(xiàn),如下圖所示。
    的頭像 發(fā)表于 05-06 09:22 ?1229次閱讀
    <b class='flag-5'>多位</b><b class='flag-5'>寬</b>數(shù)據(jù)通過(guò)握手方式跨時(shí)鐘域

    求教縱線有有窄的怎么知道條線對(duì)應(yīng)的數(shù)值呢?

    求大神告知這種圖要怎么看啊?、縱線有有窄的怎么知道條線對(duì)應(yīng)的數(shù)值呢?
    發(fā)表于 08-09 14:44

    同步從個(gè)時(shí)鐘域到另個(gè)時(shí)鐘域的多位信號(hào)怎么實(shí)現(xiàn)?

    你好,我在Viv 2016.4上使用AC701板。我需要同步從個(gè)時(shí)鐘域到另個(gè)時(shí)鐘域的多位信號(hào)(33位)。對(duì)我來(lái)說(shuō),這個(gè)多位
    發(fā)表于 08-17 07:48

    I-Force410無(wú)鐵芯直線電機(jī)

    I-Force 410 無(wú)鐵芯直線電機(jī)峰值推力可達(dá) 3928N, 卓越的加速度和緊湊的體積. 50.8mm 的無(wú)鐵芯設(shè)計(jì)具有零齒槽效應(yīng)力,同時(shí)工字型骨架繞組提供很高的推力/體積密度比和優(yōu)越的散熱
    發(fā)表于 09-01 08:54

    LS1046 SDRAM多位錯(cuò)誤注入怎么處理?

    ) 來(lái)注入 ECC 多位錯(cuò)誤,但它崩潰了。但它通過(guò)使用上述寄存器 DATA_ERR_INJECT_HI(設(shè)置為 0x01 用于位 0 反轉(zhuǎn))來(lái)進(jìn)行單比特錯(cuò)誤注入,單比特錯(cuò)誤由 ERR_DETECT 檢測(cè)。有什么想法可以防止崩潰或
    發(fā)表于 03-28 07:19

    Design of Crimp force Monitor

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

    存儲(chǔ)百倍提升! IBM納米技術(shù)1比特12原子

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

    二叉樹的前序遍歷、中序遍歷、后續(xù)遍歷的非遞歸實(shí)現(xiàn)

    前序遍歷:先訪問該節(jié)點(diǎn),然后訪問該節(jié)點(diǎn)的左子樹和右子樹; 中序遍歷:先訪問該節(jié)點(diǎn)的左子樹,然后訪問該節(jié)點(diǎn),再訪問該節(jié)點(diǎn)的右子樹; 后序遍歷:想訪問該節(jié)點(diǎn)的左子樹和右子樹,然后訪問該節(jié)點(diǎn)。
    發(fā)表于 11-27 11:24 ?1144次閱讀

    jquery的each遍歷方法

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

    螺旋遍歷二維數(shù)組漫畫講解

    來(lái)自公眾號(hào):程序員小灰 第二天 什么意思呢?我們來(lái)舉個(gè)例子,給定下面這樣個(gè)二維數(shù)組: 我們需要從左上角的元素1開始,按照順時(shí)針進(jìn)行螺旋遍歷遍歷完所有的元素,
    的頭像 發(fā)表于 11-26 14:01 ?1802次閱讀

    總結(jié)下OpenCV遍歷圖像的幾種方法

    在圖形處理中,遍歷每個(gè)像素點(diǎn)是最基本的功能,是做算法的基礎(chǔ),這篇文章來(lái)總結(jié)下OpenCV遍歷圖像的幾種方法。
    的頭像 發(fā)表于 01-18 15:08 ?1770次閱讀

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

    上面出現(xiàn)這樣的原因是在使用 foreach 對(duì) HashMap 進(jìn)行遍歷時(shí),同時(shí)進(jìn)行 put 賦值操作會(huì)有問題,異常 ConcurrentModificationException。
    的頭像 發(fā)表于 02-10 11:25 ?636次閱讀

    跨時(shí)鐘域電路設(shè)計(jì):多位數(shù)據(jù)通過(guò)FIFO跨時(shí)鐘域

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

    對(duì)于多位的異步信號(hào)如何進(jìn)行同步呢?

    對(duì)于多位的異步信號(hào)如何進(jìn)行同步呢? 異步信號(hào)(Asynchronous Signals)是指系統(tǒng)中發(fā)生的事件或者信號(hào),它們的發(fā)生時(shí)間不可預(yù)測(cè)、不可控制,與其他的進(jìn)程、線程以及系統(tǒng)中的各
    的頭像 發(fā)表于 09-12 11:18 ?1472次閱讀

    python如何遍歷列表并提取

    遍歷列表是Python中非常常見的操作之,可以使用for循環(huán)或者while循環(huán)來(lái)實(shí)現(xiàn)。下面我將詳細(xì)介紹如何使用for循環(huán)遍歷列表并提取元素。 首先,讓我們簡(jiǎn)單了解下Python中的
    的頭像 發(fā)表于 11-23 15:55 ?1502次閱讀
    随州市| 百家乐博娱乐网赌百家乐的玩法技巧和规则 | 百家乐官网保单机作弊| 水果机遥控器| 现场百家乐官网的玩法技巧和规则| 大发888推广合作| 老人头百家乐官网的玩法技巧和规则| 大发888娱乐博盈投资| 优博百家乐官网的玩法技巧和规则| 真人娱乐场| 哪个百家乐投注好| 百家乐官网tt娱乐城| 蓝盾百家乐代理打| 百家乐官网哪条路准| 大发888游戏平台 46| 百家乐官网筹码套装包邮| 乐山市| 新锦江百家乐娱乐平台| 百家乐官网赌术大揭秘| 真人娱乐城开户送钱| 澳门百家乐游戏说明书| 百家乐官网赌博机怎么玩| 大发888私网开户| 百家乐视频游戏平台| 太阳城百家乐官网优惠| 太阳城的故事| 百家乐室系统软件| 澳门百家乐官网真人版| bet365官方| 粤港澳百家乐娱乐网| ag百家乐官网下载| 瑞博娱乐| 运城百家乐的玩法技巧和规则| 杭州百家乐官网西园| 南昌市| 新塘太阳城巧克力| 百家乐最新套路| 百家乐官网开户最快的平台是哪家 | 威尼斯人娱乐城老品牌值得您信赖lm0| 24山分房法| 赌博百家乐官网探讨|