问题标签 [test-bench]

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

vhdl - 使用别名的 VHDL 聚合分配

我在我的 VHDL 测试台中使用聚合时遇到了一些麻烦(简写如下所示)。

我真的想“命名”配置寄存器的各个部分,以便它实际上读起来很好。

所以我想说:

我知道我可以为 6 使用常量:

然后我的代码如下所示:

但是我很难尝试获取范围3 downto 27|0命名,以便代码看起来像:

我认为我可以使用别名来完成此操作,并且我一直在查看VHDL 黄金参考指南(第 15 页),就理解别名和范围而言,它非常有帮助,但我仍然无法弄清楚如何命名范围本身或值的“或”(|)。

目前我有以下'hack',我不太喜欢......

我真的想让我的测试台可读,这样当我在 6 个月内查看它时。从现在开始,我将知道它在做什么,而不必去弄清楚“现在又是什么 bit[6] ???” 或者如果我必须将我的代码交给其他开发人员,他们可以很容易地了解我想要完成的工作。

任何帮助/建议将不胜感激如何做到这一点。

谢谢阅读。


编辑:修复7 | 0有效:

无效的:

有效的:

0 投票
1 回答
215 浏览

verilog - 测试台:如何在 1 位数据输入上加载已知的位序列

- 在我的 Verilog 测试台中,我想将已知的位序列连续加载到 da+ 输入端口(大小 1 位),并根据时钟 DCO+ 的 posedge 或 negedge 边缘进行更改。-这是我想在 DA+ 上加载的序列:1010 0000 0111 1111 -请查看随附的屏幕截图以获得更多说明1

你有什么想法在 Verilog 测试平台中实现它吗?

请注意,我使用 ISE14.7 和 Isim 作为模拟器,谢谢。

此致

da+ 和 DCO+ 之间的关系

0 投票
1 回答
994 浏览

oop - 使用 $cast 函数和任务在 SV 中进行动态转换

我们如何判断$cast的调用是函数还是任务。每个人的召唤有何不同?我理解的一件事是,通过函数调用,我将能够使用assert()。但除此之外,还有什么告诉我们调用是$cast函数还是$cast任务?在任何一种情况下,我们都会做类似$cast(pkt, pkt1); 的事情。

LRM 给出$cast函数的语法为

$cast任务为

并继续解释

使用 $cast 作为任务或函数决定了如何处理无效分配。

当作为任务调用时,$cast 尝试将源表达式分配给目标变量。如果赋值无效,则会发生运行时错误,并且目标变量保持不变。

当作为函数调用时,$cast 尝试将源表达式分配给目标变量,如果强制转换是合法的,则返回 1。如果强制转换失败,函数不进行赋值并返回 0。当作为函数调用时,不会发生运行时错误,并且目标变量保持不变。

请解释。

0 投票
1 回答
906 浏览

vhdl - VHDL 状态机测试台 - 在板载时工作,但在仿真时不工作

我有在船上工作的 VHDL 实现,它检测到序列 01110 并会为 2 个时钟计数引发一个标志。它还检测重叠序列,其中 011101110 会两次引发标志。

我已经用板上的逻辑分析仪检查了我的实现,并且相当有信心它可以工作。我以 10 kHz 的频率输入 0111 的重复序列,在板上,它有一个 100 MHz 的时钟,我用预分频器将其缩放到 10 kHz。

我的问题是,当尝试使用模拟重新创建类似的场景时,我没有得到任何预期的输出

电路板上逻辑分析仪的图像在此处输入图像描述

来自测试台的图像 在此处输入图像描述

测试台代码

显示逻辑分析器的映射

如果有人能指出我在测试台上做错了什么以及如何复制以获得与第一张图像相似的结果,因为它表明在模拟中,它始终保持在状态 A 并且新时钟没有切换,这意味着clk100mhz不知何故没有连接,但我不知道为什么。

非常感谢任何帮助,谢谢大家

编辑:

我写了一个简单的程序来测试我的标量时钟

测试台代码

即使我将 pushButton 设置为“0”,它仍然在触发masterReset,任何人都知道为什么,这就是 10 kHz 时钟不工作的原因

在此处输入图像描述

0 投票
1 回答
144 浏览

unit-testing - 使用 Vaadin TestBench 以编程方式打开和测试在 Vaadin 中创建的子窗口

美好的一天,stackoverflow 用户。我在使用 Vaadin TestBench 测试子窗口时遇到问题。

更具体地说,我编写了一个“弹出”窗口,当主应用程序因任何原因失败时,主应用程序将调用该窗口。由于这个子窗口没有 URL,它只会以编程方式调用。当我搜索并阅读 Vaadin 文档时,我在想出一种测试这个单个子窗口的方法时遇到问题,但我看到的所有示例都涉及为某个浏览器创建驱动程序、调用 URL、访问其元素和然后做测试。

我想要的是这样的:

有没有办法完成这个壮举?我在 Springboot 上使用最新版本的 Vaadin。

0 投票
0 回答
285 浏览

vhdl - “别名”附近:语法错误 VHDL 编译

我正在尝试编译一个使用别名的测试台。这个测试台是用 VHDL2008 编译的,但是

返回:

* 错误:“别名”附近:语法错误

我把这条线放在哪里。

问题是什么?

0 投票
1 回答
124 浏览

fpga - 有什么方法可以在 ISIM 中模拟 DCM?

我有一个具有不同时钟输出的 DCM,它在实际 FPGA 实现中运行良好,但在 Xilinx ISIM 中模拟这个 DCM 时看不到任何输入。我们可以在 ISIM 测试台中模拟 DCM 吗?有什么诀窍吗?问候

0 投票
1 回答
433 浏览

verilog - 顺序或并行:fork join_any 下的 begin end 块内的语句?

与 task2/function2 相比,task1/function1 的执行情况如何。它是顺序的还是并行的?

0 投票
1 回答
970 浏览

verilog - iverilog 测试台错误:输入被声明为线,但它不是

我对iverilog 非常陌生,并且正在创建一个计数器以将100Mhz 时钟频率降低到更容易使用的东西,作为更大项目的一部分。我找到了一些可以做到这一点的代码,所以我尝试为它编写一个测试平台。这是我找到的代码:

这是我写的测试台:

以下是错误消息:

第一条错误消息:clk 在这里被声明为线。但在原始代码或测试台中,它都没有被声明为连线。重置也是如此。我曾尝试从校内导师那里获得帮助,但他们不知道为什么会发生这种情况,或者能够就如何解决它提出建议。

谁能建议如何解决这个问题?

0 投票
1 回答
1450 浏览

verilog - 错误:(vsim -3389),

我不明白为什么在使用 model-sim 时会出现此错误,我尝试了很多修复但似乎没有解决这个问题。

这就是我的 modelsim 成绩单所说的:

**错误:(vsim-3389)C:/Users/VRN/Desktop/sha256/t_processing.v(31):在连接的模块(第5个连接)中找不到端口'a_in'。

# 时间:0 ps 迭代:0 实例:/t_processing/uut 文件:C:/Users/VRN/Desktop/sha256/interative_processing.v

输入端口的 7 个类似错误

和我的测试台: