色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Foreach對Associative Array的constraint約束問題記錄分享

sanyue7758 ? 來源:驗證芯發現 ? 2023-08-21 09:31 ? 次閱讀

systemverilog constraint中的foreach可以對數組進行遍歷和約束,常用于普通數組,隊列或者動態數組。而當對associative array(聯合數組/字典)應用foreach時,遇到一些問題,記錄分享如下。

聯合數組含有key和value兩個元素,在這里key的類型以int和string為例,value元素以int和int[$]隊列為例。

[int/string] [int] Associative Array

實踐的demo代碼如下:

classtest;
randbit[3:0]rd_dict[int];
randbit[3:0]rd_dict_fix[int];
randbit[3:0]rd_dict_str[string];

constraintc_rand{
rd_dict.size==7;
foreach(rd_dict[i]){
rd_dict[i]

rd_dict沒有進行初始化,使用constraint的size進行約束聯合數組key的個數和value取值約束

rd_dict_fix在new函數中進行初始化,包含一個int key元素,在constraint中對value進行約束

rd_dict_str在new函數進行初始化,包含一個string key元素,在constraint中對value進行約束

添加適當的測試打印代買,可以得到如下的仿真結果:

5910deaa-3f6a-11ee-ac96-dac502259ad0.png

可以看出,普通的聯合數組,如果沒有初始化key元素,可以在constraint中使用size約束key的個數,但key是順序遞增的,0~size-1。

如果初始化了key元素,無論是int還是string類型的key,使用foreach時,可以對已初始化的key對應的value進行約束。

int/string->int[$] Associative Array

聯合數組的value是int隊列時,demo代碼如下:

classtest;
randbit[3:0]rd_dict[int][$];
randbit[3:0]rd_dict_fix[int][$];
randbit[3:0]rd_dict_str[string][$];

constraintc_rand{
rd_dict.size==7;
foreach(rd_dict[i]){
rd_dict[i].size==3;
foreach(rd_dict[i][j]){
rd_dict[i][j]

rd_dict的key是int類型,value是int[$]隊列類型的value,size和value值都進行了約束。

rd_dict_fix類型和rd_dict相同,區別在于new函數中進行key初始化,僅包含一個key。

rd_dict_str的key類型是string類型,其他和rd_dict_fix相同。

不出意外,上述的code編譯出錯:

...
Expressionofthistypecannotbeusedtoindexthearray
...

錯誤在于key是string類型,value是int[$]隊列的字典,constraint中不能使用foreach操作。

將上述string->int[$]的constraint注釋后,編譯可以通過,在仿真時會出錯:

Theconstraintsolverfailedwhenaccessinganullarrayrd_dict[0].
Pleasemakesurearrayrd_dict[0]isallocatedproperly.

由于rd_dict[int][$]并沒有在new函數中進行初始化,即使在constraint中使用了size約束大小,也沒有達到預期的效果,這點和[int/string] [int] Associative Array例子中不同。

上述問題解決后,可得到最后的仿真結果:

59200d6c-3f6a-11ee-ac96-dac502259ad0.png

從上述的結果來看,如果聯合數組的value是隊列時,則需要先進行key的初始化,才可在constraint中進行對value隊列的約束。key是string類型時,似乎沒辦法使用foreach進行約束。





審核編輯:劉清

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

    關注

    14

    文章

    1019

    瀏覽量

    83880
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8288

原文標題:Foreach對Associative Array的constraint約束

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

收藏 人收藏

    評論

    相關推薦

    如何編寫高級時序約束

    如何編寫高級時序約束?我使用提前一詞,因為我知道如何在ucf文件中約束的基本知識。基本內容包括將引腳分配給相應的輸出和頂部模塊的輸入,并配置時鐘引腳周期。但是除了LOC和PERIOD之外,還有很多
    發表于 03-27 09:58

    設計中的關鍵路徑如何約束

    喜我對我的設計中的關鍵路徑以及如何約束它們有疑問。我正在使用ISE 14.1進行實施。我有一個設計,其中關鍵路徑(從源FD到目的地FD)給出-3.3ns的松弛(周期約束為10ns)。現在有沒有其他
    發表于 04-08 08:58

    OFFSET約束問題

    嗨,大家好,據我所知,OFFSET約束強加于所有輸入PAD。在我的設計中,使用了兩個時鐘輸入。因此,PAD上的輸入信號應分組為:1.需要OFFSET約束時間值#1,參考時鐘輸入#12.需要
    發表于 05-29 13:51

    一個約束驅動(constraint-driven)的綜合工具

    Design Compiler時一個約束驅動(constraint-driven)的綜合工具,它的結果與設計者施加的約束條件密切相關。
    發表于 07-29 07:56

    編程遇到的問題記錄

    編程遇到的問題記錄warning C318: can't open file 'commom.h'//文件路徑沒有錯誤的情況下#include "commom.h"寫錯頭文件名字,應該是common
    發表于 11-30 07:08

    STC89C52RC單片機奇葩問題記錄

    防止自己好了傷疤,忘了痛!所以開始把一些問題記錄下來!版本:KEIL C51 uVision4.00a工程:STC89C52RC單片機奇葩問題1:寫一個P33口的中斷程序時,剛開始確實有錯,后來改了
    發表于 12-08 06:26

    使用STM32的MCU開發問題記錄

    的 MCU,特此把遇到的問題記錄一下!注意,如果沒有特殊說明,默認的開發環境為Win10 Pro 20H2 ,Keil uVision5 5.32!STM32F103 在 KEIL 調試時部分寄存器不顯示數據現象進入調試狀態,觀察某些外設的寄存器,發現有些寄存器不顯示配置的值,而是始終顯示 0。如下圖:為
    發表于 01-05 06:17

    華大MCU的應用中的問題記錄

    華大MCU的應用中的問題記錄
    發表于 02-24 08:03

    HarmonyOS/OpenHarmony應用開發-ArkTS語言渲染控制ForEach循環渲染

    Array場景下,因為執行過程中很容易添加重復的數字。 4.ForEach的嵌套使用 允許將ForEach嵌套在同一組件中的另一個ForEach中,但更推薦將組件拆分為兩個,每個構造函
    發表于 08-18 10:50

    時序約束爆炸的原因研究分析

    這個Xilinx Quick Take Video我們將討論Constraint Explosion。 在本次會議中,我們將研究導致時序約束爆炸的原因,然后是如何調試和修復異常約束問題。
    的頭像 發表于 11-20 06:23 ?2191次閱讀

    Java的iterator和foreach遍歷集合源代碼

    Java的iterator和foreach遍歷集合源代碼
    發表于 03-17 09:16 ?9次下載
    Java的iterator和<b class='flag-5'>foreach</b>遍歷集合源代碼

    PHP教程:foreach使用引用注意的問題

    PHP教程:foreach使用引用注意的問題(電源技術期刊查詢)-該文檔為PHP教程:foreach使用引用注意的問題總結文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,,,,,
    發表于 09-22 12:28 ?9次下載
    PHP教程:<b class='flag-5'>foreach</b>使用引用注意的問題

    AD學習問題記錄(二):pcb設計規則檢查報錯Silk To Solder Mask Clearance Constraint

    AD pcb設計規則檢查報錯Silk To Solder Mask Clearance Constraint報錯原因處理方法一:改變規則中的最小間距:方法二:直接取消這一項的檢查:結果軟件版
    發表于 12-04 15:21 ?26次下載
    AD學習問<b class='flag-5'>題記錄</b>(二):pcb設計規則檢查報錯Silk To Solder Mask Clearance <b class='flag-5'>Constraint</b>

    for循環和forEach的差異

    for循環是js提出時就有的循環方法。forEach是ES5提出的,掛載在可迭代對象原型上的方法,例如Array Set Map。forEach是一個迭代器,負責遍歷可迭代對象。那么遍歷 ,迭代 ,可迭代對象 分別是什么呢。
    的頭像 發表于 10-11 11:10 ?1371次閱讀

    SV約束隨機化總結

    constraint 約束隨機化類中的變量 在main_phase 之前就已經提前產生一個變量的隨機值。 用法:一般在類中定義一個rand 類型的變量, 然后根據需求寫約束就可以
    的頭像 發表于 12-14 14:30 ?942次閱讀
    SV<b class='flag-5'>約束</b>隨機化總結
    主站蜘蛛池模板: 亚洲欧美中文字幕网站大全| 一区二区不卡在线视频| 国产99久久久国产精品成人| 日韩中文网| 亚洲AV成人片色在线观看网站| 免费网站在线观看国产v片| 国产3级在线观看| 中文字幕亚洲乱码熟女在线| 天美传媒果冻传媒入口视频| 暖暖 视频 免费 高清 在线观看 | 欧美男同gay粗大又长| mdapptv麻豆下载| 精品一区二区三区免费毛片| 亚洲视频在线观看免费| 九九免费的视频| 曰本老头同性xxxxx| 伦理片天堂eeuss影院| 99久久国产露脸精品国产吴梦梦| 男人J进女人P| 俄罗斯美幼| 亚洲精品国产第一区第二区| 久久99热在线观看7| 2023极品少妇XXXO露脸| 一本久道久久综合狠狠躁AV| 手机国产视频福利| 99视频国产在线| 俄罗斯17vidio| 高hh乱亲女真实| 一级毛片视频免费| 真实处破女全过程完免费观看| 香蕉AV福利精品导航| 色多多污污版免费下载安装| 肉肉的各种姿势高H细文| 久久成人免费观看草草影院| 国产在线午夜| 国产自产视频在线观看香蕉| 国产精品亚洲精品久久品| 国产av在线看的| 久久最新地址获取| 丰满五十老女人性视频| 超碰公开在线caopon|