首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rocket-chip/vsim中使用`定义合成有什么意义和如何使用?

在rocket-chip/vsim中使用`定义合成有什么意义和如何使用?
EN

Stack Overflow用户
提问于 2016-06-03 13:41:03
回答 1查看 370关注 0票数 0

我看到一堆

` `ifndef合成

some_variable={1{$random}};

语句在我生成的RTL verilog中。这些语句在门级综合期间不会被综合。当我这样做的时候:

输出/rv64ui-p-auipc.vpd(以/rocket-chip/vsim为例)

我想基于RTL生成合成工具将看到的波形。我尝试通过将'+define+SYNTHESIS=1‘设置为VCS选项来实现这一点,但这样做会在运行测试时造成某种类型的无限循环。

这些‘`ifndef’语句到底在做什么?它们的意义是什么(即为什么在这里定义合成变量会创建无限循环?)

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-06-22 02:19:35

火箭芯片仿真基础结构依赖于将所有状态初始化为0或1。如果在仿真开始时未初始化寄存器,某些仿真器(如Synopsys VCS)可能会将寄存器初始化为X,这可能会导致仿真失败(这是您在定义SYNTHESIS时观察到的行为)。由于测试应该对随机初始化具有鲁棒性,因此预合成RTL被注释为随机初始化寄存器状态。

综合工具(如Synopsys Design Compiler)将忽略包装在这些ifndef块中的RTL。请注意,合成后RTL的模拟还必须将所有寄存器初始化为0或1,模拟才能正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37606710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档