问题标签 [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 回答
376 浏览

hdl - RisingEdge 示例不适用于 Chisel3 中的模块输入信号

在 Chisel 文档中,我们有一个上升沿检测方法的示例,定义如下:

我的 github项目 blp上提供了所有示例代码。

如果我在声明如下的输入信号上使用它:

有了这个 icarus/cocotb 测试平台:

我永远不会在 io.redge 和 io.fedge 上获得上升脉冲。要获得脉冲,我必须将上升沿的定义更改如下:

使用双 RegNext() : 双 RegNext 截图

使用简单的 RegNext() : 简单的 RegNext 截图

这是正常行为吗?

[编辑:我用上面给出的 github 示例修改了源示例]

0 投票
1 回答
85 浏览

python - 数据未存储在数组中,我想将数据存储在数组中并提供给其他数组

我正在为 cocotb 测试平台编写代码以验证 hdl 模块,但我遇到了一些问题。我想提供从 .txt 文件中读取并存储在数组中的数据,但是当我尝试提供数据时,它显示索引错误,因为 Array 没有存储任何数据。

如何将数据存储在 lin[0],lin[1],.....,lin[11] 中。将数据提供给 sample_data?

0 投票
0 回答
267 浏览

verilog - 如何在 Chisel 生成的模块中注入 Verilog 代码?

为了测试我的 Chisel 设计,我将Icaruscocotb一起使用。但是,如果没有像这样在 verilog 模块代码中明确询问,Icarus 不会生成 VCD 跟踪:

为了在每次生成 chisel 模块时添加它,我编写了一个名为cocotbify.py的小 Python 脚本,它在生成的模块下“注入”此代码。

同样,要添加一些 systemVerilog assert()/assume() 以使用yosys-smtbmc进行正式检查,我必须在生成的每个 verilog 模块下“注入”代码。我还破解了一个名为smtbmcify.py的小 Python 脚本来注入我的断言/假设代码。

我意识到这是一个 hack,但我找不到直接在 Chisel 模块下执行此操作的好方法。我知道有BlackBox,但我不想实例化子模块,函数 setInline 创建第二个verilog文件(我想直接在模块中写入)。

我在 Chisel scala 代码中看到了一个名为ChiselAnnotation的类型,但我不确定这是要使用的东西,我现在不知道如何使用。

0 投票
2 回答
135 浏览

python - Cocotb 协程从未调用过

我刚开始使用 cocotb,我对应该使用协程的一小段代码有疑问。

模拟已创建并运行,但协程从未被调用。既不执行日志消息也不执行分配。

我使用 python 3.8 并测试了 repo 中包含的一些示例。axi_slave 测试工作正常,所以我假设我的设置工作正常。

有人猜测可能导致问题的原因吗?

0 投票
1 回答
324 浏览

modelsim - 使用 Cocotb 在 Modelsim 中显示波浪

我开始使用 cocotb。我可以运行示例测试。他们没有失败,并且 cocotb 以成功结束。我常用的模拟器是modelsim。如果我从 cocotb 开始: make GUI=1 WAVES=1我得到 modelsim 的 GUI,并且可以在对象窗口中看到信号。我唯一没有得到的是波形窗口中的信号。我可以通过 GUI 手动添加它们,但这为时已晚。测试已经结束。

选择我想看到的波浪的正确方法是什么?

0 投票
1 回答
34 浏览

python-3.7 - Riviera PRO 和 cocotb 可能存在的错误(找不到 libcocotbvhpi.dll')

我正在使用 pyhton 3.7、Aldec Riviera Pro 2017、cocotb 1.3 和 MSYS2。当我在 jenkins 和远程 PC 上运行此测试时,我遇到了这个问题。我的日志文件如下所示:

到目前为止尝试的解决方案:

  1. 检查文件是否存在并检查 dll 文件的依赖关系。(都好)
  2. 发现 Riviera 有自己的 gcc 版本,与 MSYS2 (mingw64) 不同——不确定这是否有问题?
  3. 使用环境变量(没有清楚地工作)

任何建议都会有所帮助。我现在真的被困住了。提前致谢!

0 投票
1 回答
45 浏览

python - Python位掩码没有给出预期的输出

我在寄存器读取值上放置一个位掩码并在该值上执行逻辑和。我期望的是: clear_reg_val: 00000000000000000100100000000000 我的实际输出是:

所以我不知道为什么 clear_reg_val 的第 4 位变成 '1' 而不是 '0' 该函数的 Python 代码添加在下面的屏幕截图中:

用于读取修改写入的 Python 函数

0 投票
1 回答
389 浏览

cocotb - cocotb示例代码开始工作的问题

我运行了一些 cocotb 示例,但不是引用最多的 (endian_swapper)。

任何建议表示赞赏。提前致谢!

0 投票
1 回答
164 浏览

cocotb - cocotb 无法加载 VPI 模块

尝试制作 endian_swapper 示例代码时,我收到以下错误消息。我正在使用 Ubuntu 19.10。

任何帮助表示赞赏。

谢谢。

所有 *.so 文件似乎都存在

0 投票
1 回答
265 浏览

bash - 由于非法选项 -o pipefail 导致 cocotb-modelsim 错误

我正在尝试使用 modelsim 运行 cocotb 模拟,但是,在过去的两天里,我遇到了一个错误并且没有成功,修复它。

我已经使用“pip3 install cocotb”安装了 cocotb。我使用的python版本是3.7.0。我已经安装了 questa/modelsim Lite 19.1 版(通过英特尔免费提供)。

我可以使用 icarus 和 verilator 运行 cocotb 模拟,但是,使用 modelsim 我遇到了以下错误:

如果有人能建议我如何解决这个问题,我将不胜感激