网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

systemverilog随机约束implication的概率分析

时间:2023-05-04 18:24

人气:

作者:admin

标签: 仿真器  Verilog 

导读:在此设计三种不同的随机先后顺序,分析x和y取值的其概率分布。...

在此我们以绿皮书中的例子为说明。

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小节的说明。

注:这种概率的分布和绿皮书中的分析并不相同,这是由于绿皮书中采用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不能同时出现。

进一步,如果上述的约束中,如果指定了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的条件下,优先满足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的条件下,优先满足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 仍会优先得到满足;

(2)在同时指定dist概率分布时,without order的概率理论值分析方法暂时没有确定,同时也没有和测试值吻合。

总的来看,使用->或者if-else时,参数的概率分布会变得复杂且不易理解,尤其涉及到多条件蕴含时,某些参数的概率分布很难做出预期,因此更加需要后续的功能覆盖率加以分析,找出不合理的约束。






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信