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

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

3天內不再提示

systemverilog隨機約束implication的概率分析

sanyue7758 ? 來源:驗證芯發(fā)現(xiàn) ? 2023-05-04 18:24 ? 次閱讀

在此我們以綠皮書中的例子為說明。

rand bit x;
rand bit[1:0] y;

without order, solve before的概率分布

在此設計三種不同的隨機先后順序,分析x和y取值的其概率分布。

1. without order:

8503e39c-e6d0-11ed-ab56-dac502259ad0.png

在x和y互相耦合的約束下,{x,y}的合法取值共有5種,每種取值的概率分別為1/5。

850d84ba-e6d0-11ed-ab56-dac502259ad0.png

因此,x=0的取值概率為:0.2,y=0的取值概率為:0.2+0.2=0.4,y=1,2,3的取值概率都是0.2。這種分析方式也是符合SV語法手冊的說明,參見SV語法手冊第18.5.10小節(jié)的說明。

注:這種概率的分布和綠皮書中的分析并不相同,這是由于綠皮書中采用vcs仿真器不同版本的差異造成的。在較新的vcs版本中,有ntb_solver_mode仿真選項,在設置ntb_solver_mode=1時,可以得到綠皮書中的結果;ntb_solver_mode=2或者使用默認設置,得到的就是上面的分析結果。

2. solve x before y:

85240a32-e6d0-11ed-ab56-dac502259ad0.png

solve-before并沒有改變合法解的空間,只是改變了概率分布,由于x先于y求解,因此x的隨機不受y取值的影響,其概率分布如下:

852b441e-e6d0-11ed-ab56-dac502259ad0.png

因此,x=0和1的取值概率都是0.5,y=0的取值概率為:0.5+0.125=0.625,其余取值概率都為0.125。

3. solve y before x:

853913a0-e6d0-11ed-ab56-dac502259ad0.png

和第2點類似,概率分布如下:

8547876e-e6d0-11ed-ab56-dac502259ad0.png

因此,y的取值是均勻分布,都是0.25,x=0的取值概率都是0.125,x=1的取值概率為:0.25*3+0.25*0.5=0.875。

上述三種約束,使用vsim仿真,提取x和y的取值概率分布如下:

85546d94-e6d0-11ed-ab56-dac502259ad0.png

因此,無論是選擇哪一種約束順序,由于x和y之間存在耦合,二者的取值概率都不會同時滿足各自的均勻分布,即x=0/1:0.5和y=0,1,2,3:0.25不能同時出現(xiàn)。

進一步,如果上述的約束中,如果指定了x或者y的概率分布,結果又會如何?

指定x的概率分布:without order, solve before的差異分析

添加x的dist概率分布,分別對without order,solve_before方式進行測試。

without order:

85618f7e-e6d0-11ed-ab56-dac502259ad0.png

solve x before y:

85735e5c-e6d0-11ed-ab56-dac502259ad0.png

solve y before x:

857f0374-e6d0-11ed-ab56-dac502259ad0.png

測試結果如下:

858b2046-e6d0-11ed-ab56-dac502259ad0.png

上表實測結果的理論分析值如下:

85a9df90-e6d0-11ed-ab56-dac502259ad0.png

從中可以看出:

(1)在without order和solve x before y條件下,x的dist概率分布會得到滿足;

(2)在solve y before x的條件下,優(yōu)先滿足solve before順序,y是均勻分布;

指定y的概率分布:without order, solve before的差異分析

添加x的dist概率分布,分別對without order,solve_before方式進行測試。

without order:

85b764ee-e6d0-11ed-ab56-dac502259ad0.png

solve x before y:

85c229ce-e6d0-11ed-ab56-dac502259ad0.png

solve y before x:

85cf7278-e6d0-11ed-ab56-dac502259ad0.png

測試結果如下:

85db6862-e6d0-11ed-ab56-dac502259ad0.png

上表實測結果的理論分析值如下:

85ed3ff6-e6d0-11ed-ab56-dac502259ad0.png

從中可以看出:

(1)在without order和solve y before x條件下,y的dist概率分布會得到滿足;

(2)在solve x before y的條件下,優(yōu)先滿足solve before順序,x是均勻分布;

同時指定x和y的概率分布:without order, solve before的差異分析

添加x的dist概率分布,分別對without order,solve_before方式進行測試。

without order:

85fbde44-e6d0-11ed-ab56-dac502259ad0.png

solve x before y:

860ad700-e6d0-11ed-ab56-dac502259ad0.png

solve y before x:

8622d198-e6d0-11ed-ab56-dac502259ad0.png

測試結果如下:

86377198-e6d0-11ed-ab56-dac502259ad0.png

上表實測結果的理論分析值如下:

8648d03c-e6d0-11ed-ab56-dac502259ad0.png

從中可以看出:

(1)solve before 仍會優(yōu)先得到滿足;

(2)在同時指定dist概率分布時,without order的概率理論值分析方法暫時沒有確定,同時也沒有和測試值吻合。

總的來看,使用->或者if-else時,參數(shù)的概率分布會變得復雜且不易理解,尤其涉及到多條件蘊含時,某些參數(shù)的概率分布很難做出預期,因此更加需要后續(xù)的功能覆蓋率加以分析,找出不合理的約束。






審核編輯:劉清

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

    關注

    14

    文章

    1011

    瀏覽量

    83552
  • Verilog
    +關注

    關注

    28

    文章

    1335

    瀏覽量

    109847

原文標題:systemverilog 隨機約束implication的概率分析

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

收藏 人收藏

    評論

    相關推薦

    概率隨機數(shù)生成【子模塊】

    本帖最后由 ZHZJK 于 2014-1-7 17:04 編輯 你還在用系統(tǒng)自帶的隨機數(shù)生成函數(shù)嗎你還在為模擬數(shù)值虛假而煩惱嗎而個人編寫了一個按照概率生成的隨機數(shù)子模塊將會解決這一系列問題它將
    發(fā)表于 12-31 16:49

    設計驗證中的隨機約束

    隨機約束在現(xiàn)代集成電路驗證中已得到國際IC 設計業(yè)界的普遍認可,并逐漸開始普及。與傳統(tǒng)的定向測試比較,它在驗證效率、驗證覆蓋率等方面具有諸多優(yōu)勢。最新公布的Sys
    發(fā)表于 12-14 09:54 ?13次下載

    M序列偽隨機碼在測距回答概率控制中的應用

    摘要:通過對機載測距詢問器檢測中測距回答概率控制的工作特性的分析,提出一種基于m序列偽隨機碼的具有可設定測距回答概率功能及隨機回答特性的測距
    發(fā)表于 06-20 15:07 ?1179次閱讀
    M序列偽<b class='flag-5'>隨機</b>碼在測距回答<b class='flag-5'>概率</b>控制中的應用

    添加時序約束的技巧分析

    一般來講,添加約束的原則為先附加全局約束,再補充局部約束,而且局部約束比較寬松。其目的是在可能的地方盡量放松約束,提高布線成功
    發(fā)表于 11-25 09:14 ?2551次閱讀

    基于概率隨機裁剪的圖像縮放算法

    為提高圖像縮放的速度,提出一種結合閾值學習與依概率隨機裁剪的快速內容感知圖像縮放算法,通過計算圖像的重要度圖,利用徑向基函數(shù)(RBF, radial basis function)神經網絡進行閾值
    發(fā)表于 01-17 11:14 ?1次下載
    基于<b class='flag-5'>概率</b><b class='flag-5'>隨機</b>裁剪的圖像縮放算法

    基于CNN與約束概率矩陣分解的推薦算法

    基于CNN與約束概率矩陣分解的推薦算法
    發(fā)表于 06-17 16:36 ?7次下載

    概率統(tǒng)計與隨機過程期末試卷及答案下載

    概率統(tǒng)計與隨機過程期末試卷及答案下載
    發(fā)表于 09-06 16:12 ?0次下載

    如何利用SystemVerilog仿真生成隨機數(shù)

    采用SystemVerilog進行仿真則更容易生成隨機數(shù),而且對隨機數(shù)具有更強的可控性。對于隨機變量,在SystemVerilog中可通過r
    的頭像 發(fā)表于 10-30 10:33 ?1.1w次閱讀
    如何利用<b class='flag-5'>SystemVerilog</b>仿真生成<b class='flag-5'>隨機</b>數(shù)

    簡述SystemVerilog隨機約束方法

    上一篇文章介紹了SystemVerilog的各種隨機化方法,本文將在其基礎上引入SystemVerilog隨機約束方法(constrain
    的頭像 發(fā)表于 01-21 17:03 ?1938次閱讀

    一些有趣的數(shù)組相關的SystemVerilog約束

    我們在工作中常常會針對數(shù)組施加各式的約束,下面列舉一下有趣的Systemverilog數(shù)組約束示例。
    的頭像 發(fā)表于 03-08 13:12 ?870次閱讀

    SystemVerilog中“軟約束”與“硬約束”的應用示例

    示例中采用的是“硬約束”,因為定義在類中的約束隨機時指定的內嵌約束“矛盾”,所以導致約束解析器解析隨機
    發(fā)表于 03-15 16:56 ?4348次閱讀

    列舉一下有趣的Systemverilog數(shù)組約束示例

    上面是最先想到的寫法,但是會報錯,因為SV約束語法不允許使用size()或任何其他隨機值作為索引。
    的頭像 發(fā)表于 05-04 17:35 ?876次閱讀

    一些有趣的數(shù)組相關的SystemVerilog約束

    我們在工作中常常會針對數(shù)組施加各式的約束,下面列舉一下有趣的**Systemverilog數(shù)組約束**示例
    的頭像 發(fā)表于 05-30 11:13 ?682次閱讀

    SystemVerilog隨機約束方法

    上一篇文章《暗藏玄機的SV隨機化》介紹了SystemVerilog的各種隨機化方法,本文將在其基礎上引入SystemVerilog隨機
    的頭像 發(fā)表于 09-24 12:15 ?1391次閱讀

    SV約束隨機化總結

    constraint 約束隨機化類中的變量 在main_phase 之前就已經提前產生一個變量的隨機值。 用法:一般在類中定義一個rand 類型的變量, 然后根據(jù)需求寫約束
    的頭像 發(fā)表于 12-14 14:30 ?719次閱讀
    SV<b class='flag-5'>約束</b><b class='flag-5'>隨機</b>化總結