问题标签 [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 - 在 synopsys VCS 中,如何获取原始 RTL verilog 输出文件?
我需要 VCS 预处理器输出。有一种方法可以获取一个verilog 文件,其中所有参数和宏都是从预处理器中填写的。我怎么做?
system-verilog - 如何在 SystemVerilog 中正确声明 N 维队列内联?
如果我有 2D 整数队列,我希望能够像这样内联声明它:
我也看过
相反,当我编译时,VCS 为我提供了一个不兼容的复杂类型错误:
这对我来说意味着 VCS 期望等式的右侧能够正确转换。我一直在使用的解决方法是:
但这为 N 维添加了 N 个额外的 typedef 和行,我宁愿在一行中执行此操作。如果我有办法在没有 typedef 的情况下转换声明的右侧,那么这很简单,但我不知道这是否可能。
shared-libraries - VCS 可以输出共享库而不是可执行文件(simv)吗?
我们有一个打算在 x86 托管的 RISC-V 处理器上运行的 C++ 应用程序。该应用程序在主机 (x86) 和绑定的 RISC-V 处理器上执行。RISC-V 处理器在 FPGA 上进行仿真。我们有一个共享库,libfpga_intf.so
由驱动程序组成,为 FPGA 上的 RISC-V 处理器提供 C API。
我们还希望在 VCS 上模拟 RISC-V 处理器,因为对 FPGA 系统的访问是有限的。我有 RISC-V 处理器的 systemverilog 模型和我想用 C++ 应用程序编译的 FPGA 接口。有没有办法可以用 VCS 编译 SV 模型以生成libfpga_intf.so
等效的模型。
(我可以使用 SV DPI 将应用程序编译成 VCS simv
,这意味着应用程序可执行文件simv
和命令行界面与应用程序的实际预期非常不同。我更喜欢软件界面作为真正 FPGA 系统的替代品.)
bazel - 如何防止 Bazel 中并发作业的分段错误?
我写了一条规则来运行一些编译器(Synopsys VCS MX)。运行单个目标时,一切正常。同时运行多个目标时,编译器会遇到分段错误。运行 Bazel 时不会发生这种情况--spawn_strategy=local
。也设置--jobs 1
工作。
我能想到的唯一原因是编译器尝试使用绝对路径写入文件,与自身的其他实例发生冲突。
我的问题如下:
- 如果我的理论是正确的,那么无论我是否在沙盒中,问题都不会发生吗?
- 如果我错了,如果不是因为某些共享文件,编译器怎么会发生冲突?
- 假设对于每个沙箱,我想挂载一个
/tmp
指向不同目录的,这可能吗?
更新:根据我在 中看到的strace
,编译器的两个实例都打开一个文件/tmp/vcs_20200428163636_3/v710_tok
进行读写,并且在某些时候一个实例调用pread64()
会导致段错误。注意文件名,它看起来很可疑,就像暗示试图获取唯一文件名的日期一样,但两个实例的执行距离不够远。
问题 1 和 3 仍然有效。
verilog - SystemVerilog 并发断言序列动态长度
我有一个长度为 x 的数组。给定测试平台的信号输出将是数组中的每个值,其顺序从 0:x-1 开始。
特别是在我的问题中,数组是滤波器系数,而测试台是脉冲响应。测试需要进行自检,这将需要具有动态长度的序列,因为系数会因测试而异。
我想要的序列应该是这样的:
这可以动态进行吗?我尝试了一个 genvar for 循环,但它会引发错误。我搜索了论坛,找不到任何符合我要求的东西。
可能这样的事情可以给出正确的答案?
verilog - 如何在 Synopsys Verdi 中使用 Find Scope
Synopsys Verdi 中的“查找范围...”选项似乎无法找到除顶级模块之外的任何内容。我将 Scope Type 设置为 Module 并且尝试了许多不同的变体:
我一定缺少一些简单的东西,但它是什么?
file-io - 使用 TCL 脚本在多个文件上运行命令
我正在使用某个工具(Synopsys Design Vision),我正在使用 TCL 脚本运行该工具。
命令是这样的
现在我有一个包含 5000 个 .v 扩展名文件的文件夹,其名称为 abcd_1、abcd_2、abcd_3.....abcd_5000。现在我想自动化脚本,以便该命令适用于每个文件。
我试图做这样的事情
但是,它不起作用并给出错误。我没有那么多地使用 tcl 脚本。
请说明我哪里出错了,我该怎么做才能让它工作。谢谢你。
tcl - TCL中的-quiet是什么
如果陈述给出真假,我需要以下内容,还请解释“安静”
什么是给予?注意:-
$source
是I_TEST_MODE4
.
verilog - System Verilog:时钟块效应传播
考虑以下 SV 代码片段:
另一方面,对于第二个模拟器,时钟模块输出作用于第一个时钟,并且可以在第一个时钟下降沿看到效果。你可以看到下面的图片。 第二个模拟器
另一方面,如果我更改输出偏移延迟,使用小于 100ps 延迟的延迟(es 10ps),则第二个模拟器的行为与第一个模拟器相同(在第二个姿势后, a信号发生变化,输出偏移为10ps)。
两个模拟器中哪一个更符合 IEEE 1800-2017 SV 标准?在我看来,根据我对标准的理解,第一个模拟器更符合标准。
时间刻度设置为 1fs 以避免与模拟器分辨率相关的任何问题。