问题标签 [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.

0 投票
2 回答
435 浏览

verilog - 在 synopsys VCS 中,如何获取原始 RTL verilog 输出文件?

我需要 VCS 预处理器输出。有一种方法可以获取一个verilog 文件,其中所有参数和宏都是从预处理器中填写的。我怎么做?

0 投票
1 回答
373 浏览

system-verilog - 如何在 SystemVerilog 中正确声明 N 维队列内联?

如果我有 2D 整数队列,我希望能够像这样内联声明它:

我也看过

相反,当我编译时,VCS 为我提供了一个不兼容的复杂类型错误:

这对我来说意味着 VCS 期望等式的右侧能够正确转换。我一直在使用的解决方法是:

但这为 N 维添加了 N 个额外的 typedef 和行,我宁愿在一行中执行此操作。如果我有办法在没有 typedef 的情况下转换声明的右侧,那么这很简单,但我不知道这是否可能。

0 投票
0 回答
323 浏览

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 系统的替代品.)

0 投票
1 回答
189 浏览

bazel - 如何防止 Bazel 中并发作业的分段错误?

我写了一条规则来运行一些编译器(Synopsys VCS MX)。运行单个目标时,一切正常。同时运行多个目标时,编译器会遇到分段错误。运行 Bazel 时不会发生这种情况--spawn_strategy=local。也设置--jobs 1工作。

我能想到的唯一原因是编译器尝试使用绝对路径写入文件,与自身的其他实例发生冲突。

我的问题如下:

  1. 如果我的理论是正确的,那么无论我是否在沙盒中,问题都不会发生吗?
  2. 如果我错了,如果不是因为某些共享文件,编译器怎么会发生冲突?
  3. 假设对于每个沙箱,我想挂载一个/tmp指向不同目录的,这可能吗?

更新:根据我在 中看到的strace,编译器的两个实例都打开一个文件/tmp/vcs_20200428163636_3/v710_tok进行读写,并且在某些时候一个实例调用pread64()会导致段错误。注意文件名,它看起来很可疑,就像暗示试图获取唯一文件名的日期一样,但两个实例的执行距离不够远。

问题 1 和 3 仍然有效。

0 投票
2 回答
281 浏览

verilog - SystemVerilog 并发断言序列动态长度

我有一个长度为 x 的数组。给定测试平台的信号输出将是数组中的每个值,其顺序从 0:x-1 开始。

特别是在我的问题中,数组是滤波器系数,而测试台是脉冲响应。测试需要进行自检,这将需要具有动态长度的序列,因为系数会因测试而异。

我想要的序列应该是这样的:

这可以动态进行吗?我尝试了一个 genvar for 循环,但它会引发错误。我搜索了论坛,找不到任何符合我要求的东西。

可能这样的事情可以给出正确的答案?

0 投票
1 回答
1414 浏览

verilog - 如何在 Synopsys Verdi 中使用 Find Scope

Synopsys Verdi 中的“查找范围...”选项似乎无法找到除顶级模块之外的任何内容。我将 Scope Type 设置为 Module 并且尝试了许多不同的变体:

我一定缺少一些简单的东西,但它是什么?

0 投票
1 回答
224 浏览

simulator - 在 DVE 中复制信号值

我正在使用 Synopsys DVE 模拟器并想从波形窗口复制值,但我找不到任何按钮或选项来执行此操作。Ctrl+C 复制信号的完整路径,但不复制信号的当前值。DVE用户指南没有提到这个功能,但我认为这是可以做到的。任何建议都值得赞赏。例如,在以下屏幕截图中,如何复制值 14'h001e? 在此处输入图像描述

0 投票
1 回答
90 浏览

file-io - 使用 TCL 脚本在多个文件上运行命令

我正在使用某个工具(Synopsys Design Vision),我正在使用 TCL 脚本运行该工具。

命令是这样的

现在我有一个包含 5000 个 .v 扩展名文件的文件夹,其名称为 abcd_1、abcd_2、abcd_3.....abcd_5000。现在我想自动化脚本,以便该命令适用于每个文件。

我试图做这样的事情

但是,它不起作用并给出错误。我没有那么多地使用 tcl 脚本。

请说明我哪里出错了,我该怎么做才能让它工作。谢谢你。

0 投票
1 回答
95 浏览

tcl - TCL中的-quiet是什么

如果陈述给出真假,我需要以下内容,还请解释“安静”

什么是给予?注意:- $sourceI_TEST_MODE4.

0 投票
1 回答
106 浏览

verilog - System Verilog:时钟块效应传播

考虑以下 SV 代码片段:

在时钟块事件后 100ps 后,信号通过输出同步驱动发生变化。我在使用两个 EDA 模拟器运行它时观察到不同的行为。对于第一个模拟器,时钟模块输出a作用于第二个姿态,信号在第二个下降沿发生变化。你可以看到下面的图片。 第一个模拟器

另一方面,对于第二个模拟器,时钟模块输出作用于第一个时钟,并且可以在第一个时钟下降沿看到效果。你可以看到下面的图片。 第二个模拟器

另一方面,如果我更改输出偏移延迟,使用小于 100ps 延迟的延迟(es 10ps),则第二个模拟器的行为与第一个模拟器相同(在第二个姿势后, a信号发生变化,输出偏移为10ps)。

两个模拟器中哪一个更符合 IEEE 1800-2017 SV 标准?在我看来,根据我对标准的理解,第一个模拟器更符合标准。

时间刻度设置为 1fs 以避免与模拟器分辨率相关的任何问题。