问题标签 [cocotb]

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

makefile - 将参数从 makefile 传递到 cocotb 测试台

给定来自cocotb/examples/dff/的 D-FF 示例。在不修改本机 cocotb makefile 的情况下将参数从 传递Makefile到 cocotb 测试台的正确方法是什么?dff_cocotb.py

我试图修改cocotb/examples/dff/tests/Makefile的第 30 行:

分别

这不起作用并显示错误消息:

0 投票
1 回答
275 浏览

python - 停止 cocotb 分叉协程

我有一个等待信号上升的协程:

我在我的 «main» 测试功能中启动它,如下所示:

即使没有信号上升,我也想在一段时间后停止它。我试图“杀死”它:

但是会发生异常:

是否有正确停止分叉协程的解决方案?

0 投票
1 回答
131 浏览

hdl - cocotb 中 <= 和 = 有什么区别?

似乎我可以冷漠地使用 <= 或 = 在我的设计中设置输入信号值。两者之间有真正的区别吗?

或者

我有完全相同的输出计时图。

0 投票
2 回答
99 浏览

python - 如何打印 Cocotb 中引发的 TestError 的内容

如果我在 cocotb 测试协程下引发 TestError :

我知道测试日志中出现了错误,但我没有看到“找到错误的 CRC 值”的消息:

是否有正确的方法在日志中打印 TestError 消息?

0 投票
1 回答
153 浏览

python - yielding a coroutine in a list with cocotb

I have a coroutine which wait for an event to be set :

I want to «yield» on it with a timeout. Then to do that I did this :

But I get this error :

My coroutine is decorated with @cocotb.coroutine. If I yield it alone that works :

But I can't put it in a list. Is it possible to put coroutine in a list to block like unix select() ? Or is it reserved to Trigger class ?

0 投票
3 回答
724 浏览

python - 如何在 cocotb 中强制使用 python 3?

我正在使用 CocoTB 来测试我的 HDL 设计,但据我所知,它可以与 python2.7 或 python3 一起使用。

在 setup.py 配置文件中,我可以看到两者都受支持:

在 endian_swapper 测试(examples/endian_swapper/tests/test_endian_swapper.py)中,如果我修改测试脚本以查看使用的是哪个版本:

我可以看到使用 «make» 命令启动测试时使用了 python2.7:

我的 python3 可执行文件名为...实际上是 python3(debian)。有没有强制 cocotb 使用 python3 而不是 python2 的规范方法?

0 投票
2 回答
459 浏览

python - 在 python 文件中搜索所有 if 条件并在下一行添加 print 语句

我必须编辑一个 python 文件,以便在每个 if 条件之后,我需要添加一行,上面写着

数字 8.4(通常是 yx)指的是这个 if 条件在函数编号 8(y) 中(这些函数只是顺序数字,8 没什么特别之处)并且 x 是第 y 个函数中的第 x 个 if 条件。

当然,要添加的行必须添加适当的缩进。condition_check 是被检查的条件。

例如:

变成:

我如何实现这一目标?

额外背景:我有大约 1200 行 python 代码和大约 180 个 if 条件 - 我需要查看在执行 47 个测试用例期间是否满足每个 if 条件。换句话说,我需要进行代码覆盖。复杂性是 - 我正在使用 cocotb 刺激进行 RTL 验证。结果,没有直接的方法来驱动刺激,所以我看不到使用标准 coverage.py 测试覆盖率的简单方法。有没有办法以其他方式检查覆盖范围?我觉得我错过了什么。

0 投票
1 回答
305 浏览

ghdl - GHDL、预编译供应商原语和 Cocotb

我有一个使用 Lattice Diamond 生成的 IP 模块的设计。这使用了作为供应商库的 diamond 附带的 Macxo3l 库。

使用 GHDL,我可以使用https://ghdl.readthedocs.io/en/latest/building/PrecompileVendorPrimitives.html中的说明然后是命令来编译包括这个库的设计。

但是我一直无法使用 cocotb 进行编译。下面是我的make文件。我在哪里使用命令 VHDL_SOURCES_Lib,我在https://cocotb.readthedocs.io/en/latest/building.html找到了参考

然而,编译这个给了我错误:

我能够使用 GHDL 运行 cocotb 示例。我应该如何指示 cocotb 包含供应商原始文件。

感谢您提供任何帮助。

0 投票
1 回答
396 浏览

python - 如何在 COCOTB 中生成时钟?

我正在尝试使用我不熟悉的 Cocotb(基于 Python 的框架)验证基于闪存的设计。我过去一直使用verilog,SystemVerilog。我正在尝试为测试台生成时钟。

我试过浏览文档。我在 cocotb 网站上看到他们有时钟课程。我还看到我可以使用类似cocotb.fork(clock(dut.clk,5000).start())的东西来生成时钟。

这就是我生成时钟所需要做的一切吗?cocotb 文档中提供的时钟类,我是否应该简单地导入它并通过在协程中编写上述语句来生成时钟?

任何帮助深表感谢。

学习者。

0 投票
1 回答
320 浏览

vivado - 如何使用 Xilinx 基于 IP 解决方案的 RTL 设计进行使用 Cocotb 的仿真?能否使用 Icarus 验证 Xilinx IP?

我有一个具有 Xilinx FIFO IP 的设计。我正在尝试使用基于 COCOTB 的测试平台来验证设计。如何使用 COCOTB 包含基于 Xilinx 的 IP 进行仿真?我使用的模拟工具是 Icarus。

任何帮助深表感谢。