在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4887|回复: 18

[讨论] 阵列初始化和仿真性能问题

[复制链接]
发表于 2021-9-14 11:11:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在IC设计中,处于减少功耗和面积的考虑会存在部分的无复位寄存器和存储单元,而在使用VCS进行仿真时,无复位的寄存器和存储单元输出会是X态,因此会导致仿真异常,仿真结果不符合预期,因此在仿真时,需要对无复位的寄存器和存储单元进行初始化。
为了方便使用uvm_hdl_deposit函数来进行force。uvm_hdl_deposit的使用需要编译时假如debug功能,但是开启debug功能,又会影响仿真性能。
有何办法能获得uvm_hdl_deposit和性能之间的平衡?
发表于 2021-9-14 11:48:46 | 显示全部楼层
仿真工具不是支持对寄存器复位吗
 楼主| 发表于 2021-9-14 14:13:38 | 显示全部楼层


年轻的韭菜 发表于 2021-9-14 11:48
仿真工具不是支持对寄存器复位吗


工具只能选择初始化为0、1、x。但是有些阵列需要初始化为一个固定的配置,比如123456这种。
发表于 2021-9-14 16:40:45 | 显示全部楼层
readmem这个 so easy
 楼主| 发表于 2021-9-14 16:56:56 | 显示全部楼层


A1985 发表于 2021-9-14 16:40
readmem这个 so easy


啥玩意
发表于 2021-9-15 16:02:09 | 显示全部楼层
你说的这种情况,这类的memory是需要初始化的。如果memory很大,硬件初始化时间会很长,我们一般是在验证环境中实现一个快速初始化的task,通过后门的方式将memory的初值刷成0或者其他值。如果是内部的逻辑memory,一般就是直接刷成0了,如果是配置memory,我们的ral脚本生成的ral_model中会提供memory的后门初始化函数。因此我们项目中一般不用uvm_hdl_deposit这个东东
发表于 2021-9-16 09:59:26 来自手机 | 显示全部楼层
问题很初级,属于初学者的问题。。。一般都不用deposit,reg的话,编译和仿真命令行解决,memory的话$readmemh解决,或者你自己写task来刷。。。
 楼主| 发表于 2021-9-17 14:05:08 | 显示全部楼层


年轻的韭菜 发表于 2021-9-14 11:48
仿真工具不是支持对寄存器复位吗


懂你的意思了。查了下,用+vcs+initreg+config+config_file可以指定具体的值。
 楼主| 发表于 2021-9-17 14:10:55 | 显示全部楼层


飞翔的马甲 发表于 2021-9-15 16:02
你说的这种情况,这类的memory是需要初始化的。如果memory很大,硬件初始化时间会很长,我们一般是在验证环 ...


通过后门的方式将memory的初值刷成0或者其他值。
后门的方式是什么方式?
 楼主| 发表于 2021-9-17 14:13:05 | 显示全部楼层


saipolo 发表于 2021-9-16 09:59
问题很初级,属于初学者的问题。。。一般都不用deposit,reg的话,编译和仿真命令行解决,memory的话$readm ...


用uvm_hdl_deposit是因为信号很多(上千个),又有一定的规律,它可以以字符串的方式指定信号路径,写起来方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 04:08 , Processed in 0.021291 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表