问题标签 [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.
unit-testing - 为 VHDL 设计运行多个测试平台
每当我创建 VHDL 设计时,我倾向于拥有许多模块。然后这些模块中的每一个都连接到一个主文件,因此所有内容都被合成。但是我想为这些模块中的每一个编写单独的测试台,并为全局流程编写一个。如果我能做一些事情将所有这些测试平台链接在一起并让它们连续运行,从而一次测试我的整个设计,那就太好了。我怎么能这样做?我喜欢使用 GHDL 和断言。是否可以创建一个超级测试平台?或者迭代它们的shell脚本会更好吗?
verilog - Verilog 仲裁器电路未产生预期输出
我有一个仲裁模块设置如下:
我的测试平台如下:
但是,我得到的输出是
在任何时间点,只有一位输出可以为高。当在空闲状态下断言请求输入时,电路应通过断言输出的相应位来授予该请求。这应该保持高电平,直到相应的输入位被取消断言,此时电路应该进入空闲状态。如果断言多个输入位,则授予最高优先级请求,最左边的位具有最高优先级。但是,我的输出一直保持在 010。什么地方出了错?
verilog - 比较器的 Verilog 测试台错误
我是 Verilog 的新手,我需要为何时a
等于、小于和大于创建一个 8 位比较器b
。这是我的代码(没有错误):
这就是我的测试平台,但是当我运行模拟时,我遇到了多个错误,但我不确定我哪里出错了。有什么帮助吗?
错误:
system-verilog - 在 SystemVerilog 测试台中,我如何最好地描述可以交错的多周期事务
我想用任务来描述事务。我正在使用时钟模块 cb。这个任务是我想做的,但是写接缝的值在这样做时是随机的,我想没有定义谁最后驱动写的顺序。
因此,如果我只运行一个事务write
,下一个时钟周期就会变低。
testing - 将未知大小的文件行读取为 VHDL 中的字符串
我有的
我正在尝试制作一个测试台,其中包含一行文件,其中可能的字符是“1”和“0”。我必须全部阅读它们,并在我的 DUT 中一一使用作为输入。
因此,在我的 TB 中,我定义了一个如下所示的过程,以便读取文件并将其值传递给我的 DUT。
我认为正在发生的事情
我正在第一次readline
执行时读取文件的第一行(也是唯一一行)。在此之后,此循环不应再次执行。
然后,文件中的数据应该在里面rdline
。所以我必须处理它。为了做到这一点,我试图循环rdline
长度,但这个循环不执行。
所以我想我需要阅读这一行以便循环它,并试图将它的数据移动到一个string
var。问题是 vector var like string 需要有一个定义的大小,我不知道文件行大小。
我试过什么
我尝试了不同的方法来完成它,比如每次将 4 个字符从rdline
一个字符串中读取,处理它,然后重复。但是,我无法让它工作。
我在 Google 上找到了很多关于使用 VHDL 读取文件的示例,但它们都非常相似,并且都定义了行格式,例如列或预期的整数,其中我只有一行的未知文本。
我想这可以通过rdline
以某种方式读取 var 来实现,但我无法实现。你能帮我写代码吗?
先感谢您
verilog - 从 Quartus 启动的 Modelsim 仿真无法正常工作
这是测试台
这就是 uut
在 Quartus 中编译得很好。然后我像这样启动 Modelsim:Tools > RTL simulation。它启动了 Modelsim,但它只在输入中给了我很多zzzzzzzzzzzzz和在输出中的xxxxxxxxxxxxxxx,没有任何波形。
我想说我不确定我是否将此测试台正确添加到项目中。我是初学者。我所做的是:Assignments > Settings > Compile Test:单击 Test Benches > new,查找文件并添加,然后确定。我不确定这是正确的方法,因为它看起来太复杂了。请帮助解决这个问题。
另外,我评论说我在 quartus 中启动了测试台编写器模板,但我最终更改了文件中的所有内容,最终结果是上面的代码。
specman - Specman:为什么在 MAIN 序列完成后测试还没有完成?
我写的一个测试在主序列完成后没有完成。我没有提出 TEST_DONE 反对意见.. 我提出的反对意见都被放弃了。实际上测试在所有序列的流程完成后很久就完成了,在 TEST BENCH 超时.. 你知道什么可能会阻止测试结束吗?我非常感谢您能提供的任何帮助。
verilog - Verilog用D触发器除以两个计数器不起作用
我在下面的模块下有一个工作 DFF。
但是,当我将“D”输入切换到“Qn”时——制作一个除以 2 的计数器——测试台输出既不显示 Q 也不显示 Qn。它的红色好像有错误。
这是完整的代码:
我是 verilog 的新手,我猜它是一个语法问题。
c - 用 VHDL 编写 C 语句
我是 VHDL 新手,但我设法在 VHDL 中创建了一个处理器,并得到了一些帮助(它具有 ALU、乘法器和访问 SRAM 存储器的总线架构)。处理器解码 32 位指令(其中包含操作类型和内存地址)。
如何在处理器中编写以下 C 代码?
我猜我会在测试台中为此 C 代码编写指令列表:
并重复9次。
这是正确的方法吗?有没有更好的方法来实现 for 循环?有没有办法直接在我的tb_top.vhd中编写 C 代码?