问题标签 [synopsys-vcs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
verilog - 是否可以完全编译一个模块,然后在测试台中单独实例化它?
是否可以制作 RTL 模块的完全编译和独立版本,如 Cadence 术语中的快照,然后将此编译模块实例化到测试平台中?最终,运行另一个编译步骤以创建最终快照,其中包含最初交付的快照,但现在在测试台中实例化。
如果是这样,在编译原始快照以启用此功能时是否有任何特殊考虑?您将如何在测试台中实例化这样的编译对象?
tcl - 如何在 Synopsys DVE 下运行的 Tcl 脚本中打印(放入日志)信号值?
运行模拟后,我需要从 SystemVerilog 数据结构中提取一些值。我想在不更改 SystemVerilog 代码的情况下做到这一点。
下面是我在 Synopsys DVE 环境中使用的 TCL 脚本示例,用于将某些 SystemVerilog 信号添加到 DVE 波形。我需要写同样的东西,但我需要使用 TCL “puts”(在 C printf 或 Verilog $display 中工作)来打印信号值,而不是向波形添加信号:
vhdl - 仿真中未定义的信号
我正在尝试使用 SystemVerilog 的断言验证用 VHDL 编写的设计。但是当我有一个未定义的信号'X'时我遇到了问题
例如,这里是一个比较器的代码:
和断言
当 Comp_int1 和 Comp_int2 已定义值时,如果其中一个具有未定义值,则模拟工作正常,但当两个信号都具有未定义值时,它会给出错误 例如:
Comp_int1= 48xx_xxxx;Comp_int2=47xx_xxxx ==>等于= 1
我想它会一点一点地比较,所以 Equal 应该是 '0' 如果你知道一本书或一个网站来解释合成后信号的行为或未定义信号背后的逻辑,如果你把它放在评论中我会很感激的
谢谢你
riscv - 如何使用 Synopsys VCS 在微处理器中进行动态电压调节?
我正在尝试使用 RTL 设计(verilog)在 Synopsys VCS 上模拟基于 RISCV 的处理器。我想在模拟运行时动态改变电压。Synopsys 中是否有任何工具可用于在微处理器中执行动态电压缩放。或者可以在测试台中这样做吗?
verilog - 当敏感性列表中描述的逻辑重新分配时,为什么总是阻止不重新激活
信号 driver_a 在 always 块中重新分配回 0,但为什么 always 块没有激活并为 driver_b 赋值?
在波形中,我希望在 driver_a 将其值分配给 driver_b 之后,然后在下一行中,当 driver_a 分配给 0 时,我希望 always 块重新激活并将值 0 分配回 driver_b。
然而事实并非如此,波形似乎表明,一旦在 always 块中将 driver_a 分配为 0,always 块不会重新激活并将 0 分配回 driver_b 的值。简而言之,我希望 driver_b 的值始终保持 0,因为 always 块中的代码在零仿真时间内执行。
我在下面附上了结果波形的图像
system-verilog - 连接不同的端口宽度
假设我的模块有 8 位输入和 8 位输出
如果我想连接一个 1 位输入并将其他位保持为零,则以下工作:
如果我想要一个 1 位输出,而忽略其他位,我该怎么做呢?像这样的东西
vcs 说它无效,b
直接连接会给出警告。理想情况下,我想要一个不会发出警告的解决方案。
这是我的想法:
- 使用
.out(b)
和b[0]
用于位 - 创建未使用的逻辑变量
unused
并使用.out({unused, b})
哪个有效 - 使用
assign
声明(我想避免这种情况)
有比这些更好的解决方案吗?
tcl - gui_sg_addsignal:如何为 Synopsys DVE 的组中的信号创建通用模块层次结构?
我想在 Synopsys DVE 的会话文件中创建一个具有通用 TOP 名称的信号组。我的目的是通过定义正确的“TOP”值来使用相同的 tcl 文件进行块级和系统级调试。
欣赏解决方案。谢谢
verilog - 为什么在 Verilog 模拟中,某些分配存在多个驱动程序问题,而其他分配则没有
嗨,为什么 VCS 模拟允许来自 2 个不同的总是块的一些分配,而对于其他一些则不允许
在下面的代码中:使用变量进行编译pass_val
但没有rollover_n
编译和运行代码似乎很好。没有任何问题
但是,当我rollover_n
在下面的代码中看到时,我得到编译器错误“程序驱动程序的非法组合”,指向rollover_n
分配在 2 个不同的始终块中。
这两个都在 2 个不同的 always 块中分配了值,但是rollover_n
会收到错误消息,while是允许的pass_val
rollover_n
pass_val
这是伪代码:
那么,为什么pass_val
允许在
always @(pass_val,compare,rollover_n)
always_comb
但rollover_n
不是_
system-verilog - Cadence IUS 模拟器选项
NC 模拟器中的 -INcdir 和 +incdir+ 选项有什么区别?
下面是 Makefile 中的示例命令。据我所知,测试台目录是使用-INcdir包含的,源代码文件目录是使用+incdir+命令包含的
请帮助我理解这些选项的意义。