问题标签 [system-verilog-assertions]

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 回答
370 浏览

system-verilog - SystemVerilog 断言

我有以下接口:

我想检查每次 sin 等于 1(dec) y 将是xi/sqrt(2),并且每次 cos 等于 1(dec) y 将是xq/sqrt(2)

我可以使用特定类型的 systemVerilog 断言(不使用记分板或覆盖范围)来做到这一点吗?

0 投票
2 回答
902 浏览

system-verilog - 我在哪里可以在监视器中编写并发断言?

我必须在我的监视器中编写以下并发断言:

我试图将它放在 run_phase 中,但出现以下错误:任务/类方法中不允许并发断言。

我应该把它放在哪里?

0 投票
1 回答
254 浏览

system-verilog - 如何在断言中使用 SystemVerilog 序列属性?

我想说“如果有无限数量的输入,最终我会得到一个输出”,我该怎么做?

在脚本的其他部分,我想假设输入的供应有限,所以我不能只写“假设有无限数量的输入”并在全球范围内保持不变。

到目前为止,我已经编写了属性:

但是当我运行它时,我得到一个错误:property instance always_another_valid_input is not allowed in sequence expression

|->如果我用非序列属性替换 的任一侧,那么我仍然会收到错误消息。它仅在双方都是非序列属性时才有效。

有没有解决这个问题的好方法?

0 投票
1 回答
974 浏览

system-verilog - 属性中的案例陈述不适用于 QuestaSim 10.4B

我正在尝试直接从 SystemVerilog 2012 LRM 中编写一个带有 case 语句的属性。

使用 QuestaSim 10.4B,我收到以下错误:

** 错误:(vlog-13069) checker.sv(196):“case”附近:语法错误,意外情况,预期禁用。

这个版本的 Questasim 不支持 case 语句吗?

0 投票
0 回答
107 浏览

verilog - 以下代码是否有任何替代方法,以便它必须减少编译和模拟所需的时间

定义:

  1. 代码按上述格式编写。(使用的属性和序列定义如下)
  2. 定义语句用于不同的 AIF 值(可能是 0 到 50)
  3. 每当调用它时,都会评估并获取 AIF 值我想减少在生成块中使用此操作所花费的时间。
  4. 目前我面临性能问题。
  5. 我想知道编写上述代码的另一种方法,这将减少编译和模拟的时间
0 投票
1 回答
182 浏览

verilog - 如何使用verilog代码消除信号延迟

我有一个从 1400ns 开始到 2000ns 结束的数据信号。我希望该信号从 100ns 开始。如何在 verilog 中做到这一点?请帮助我。我是 verilog 代码的新手。

0 投票
2 回答
1634 浏览

system-verilog - 检查具有+/-容差百分比的时钟频率的最佳方法是什么?

以下是我目前使用的属性。

因此,我们在这里将时钟周期中的容差限制视为 +/-1。什么是通过公差百分比并相应检查频率的最佳方法。

我正在查看类似下面的内容(这不起作用,只是为了演示我正在查看的内容。)

检查具有 +/- 容差 % 的时钟频率的最佳方法是什么?

0 投票
1 回答
298 浏览

fpga - 我如何测试 i2c 高阻抗条件?

由于上拉,我将 i2c 信号连接为 tri1。我想将 i2c 信号视为高 z,但由于 tri1,断言失败。知道谁能够回答?

0 投票
1 回答
532 浏览

system-verilog-assertions - 断言在时钟的位置检查信号转换

我想做一个断言,它只在时钟的上升沿检查信号的转换。如果信号在上升沿以外发生变化,则应产生错误。

0 投票
1 回答
2878 浏览

system-verilog - 当我们将 2 个值分配给同一个变量时会发生什么?

我正在尝试做一个简单的断言来检查两个值是否相等。当我为同一个变量分配两个不同的值时,有人可以解释一下行为吗

我的断言顺序是:

我的初始块是:

我期望第二个分配将覆盖第一个分配,或者它将分配给两者src_sigalt_sig。因此,它应该分别显示 2 次或 4 次违规。但我得到以下结果(3 次违规)。

请解释这里发生了什么?

编辑:: 完整代码