问题标签 [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.
hdl - RisingEdge 示例不适用于 Chisel3 中的模块输入信号
在 Chisel 文档中,我们有一个上升沿检测方法的示例,定义如下:
我的 github项目 blp上提供了所有示例代码。
如果我在声明如下的输入信号上使用它:
有了这个 icarus/cocotb 测试平台:
我永远不会在 io.redge 和 io.fedge 上获得上升脉冲。要获得脉冲,我必须将上升沿的定义更改如下:
这是正常行为吗?
[编辑:我用上面给出的 github 示例修改了源示例]
python - 数据未存储在数组中,我想将数据存储在数组中并提供给其他数组
我正在为 cocotb 测试平台编写代码以验证 hdl 模块,但我遇到了一些问题。我想提供从 .txt 文件中读取并存储在数组中的数据,但是当我尝试提供数据时,它显示索引错误,因为 Array 没有存储任何数据。
如何将数据存储在 lin[0],lin[1],.....,lin[11] 中。将数据提供给 sample_data?
verilog - 如何在 Chisel 生成的模块中注入 Verilog 代码?
为了测试我的 Chisel 设计,我将Icarus与cocotb一起使用。但是,如果没有像这样在 verilog 模块代码中明确询问,Icarus 不会生成 VCD 跟踪:
为了在每次生成 chisel 模块时添加它,我编写了一个名为cocotbify.py的小 Python 脚本,它在生成的模块下“注入”此代码。
同样,要添加一些 systemVerilog assert()/assume() 以使用yosys-smtbmc进行正式检查,我必须在生成的每个 verilog 模块下“注入”代码。我还破解了一个名为smtbmcify.py的小 Python 脚本来注入我的断言/假设代码。
我意识到这是一个 hack,但我找不到直接在 Chisel 模块下执行此操作的好方法。我知道有BlackBox,但我不想实例化子模块,函数 setInline 创建第二个verilog文件(我想直接在模块中写入)。
我在 Chisel scala 代码中看到了一个名为ChiselAnnotation的类型,但我不确定这是要使用的东西,我现在不知道如何使用。
python - Cocotb 协程从未调用过
我刚开始使用 cocotb,我对应该使用协程的一小段代码有疑问。
模拟已创建并运行,但协程从未被调用。既不执行日志消息也不执行分配。
我使用 python 3.8 并测试了 repo 中包含的一些示例。axi_slave 测试工作正常,所以我假设我的设置工作正常。
有人猜测可能导致问题的原因吗?
modelsim - 使用 Cocotb 在 Modelsim 中显示波浪
我开始使用 cocotb。我可以运行示例测试。他们没有失败,并且 cocotb 以成功结束。我常用的模拟器是modelsim。如果我从 cocotb 开始:
make GUI=1 WAVES=1
我得到 modelsim 的 GUI,并且可以在对象窗口中看到信号。我唯一没有得到的是波形窗口中的信号。我可以通过 GUI 手动添加它们,但这为时已晚。测试已经结束。
选择我想看到的波浪的正确方法是什么?
python-3.7 - Riviera PRO 和 cocotb 可能存在的错误(找不到 libcocotbvhpi.dll')
我正在使用 pyhton 3.7、Aldec Riviera Pro 2017、cocotb 1.3 和 MSYS2。当我在 jenkins 和远程 PC 上运行此测试时,我遇到了这个问题。我的日志文件如下所示:
到目前为止尝试的解决方案:
- 检查文件是否存在并检查 dll 文件的依赖关系。(都好)
- 发现 Riviera 有自己的 gcc 版本,与 MSYS2 (mingw64) 不同——不确定这是否有问题?
- 使用环境变量(没有清楚地工作)
任何建议都会有所帮助。我现在真的被困住了。提前致谢!
python - Python位掩码没有给出预期的输出
我在寄存器读取值上放置一个位掩码并在该值上执行逻辑和。我期望的是:
clear_reg_val: 00000000000000000100100000000000
我的实际输出是:
所以我不知道为什么 clear_reg_val 的第 4 位变成 '1' 而不是 '0' 该函数的 Python 代码添加在下面的屏幕截图中:
cocotb - cocotb示例代码开始工作的问题
我运行了一些 cocotb 示例,但不是引用最多的 (endian_swapper)。
任何建议表示赞赏。提前致谢!
cocotb - cocotb 无法加载 VPI 模块
尝试制作 endian_swapper 示例代码时,我收到以下错误消息。我正在使用 Ubuntu 19.10。
任何帮助表示赞赏。
谢谢。
所有 *.so 文件似乎都存在
bash - 由于非法选项 -o pipefail 导致 cocotb-modelsim 错误
我正在尝试使用 modelsim 运行 cocotb 模拟,但是,在过去的两天里,我遇到了一个错误并且没有成功,修复它。
我已经使用“pip3 install cocotb”安装了 cocotb。我使用的python版本是3.7.0。我已经安装了 questa/modelsim Lite 19.1 版(通过英特尔免费提供)。
我可以使用 icarus 和 verilator 运行 cocotb 模拟,但是,使用 modelsim 我遇到了以下错误:
如果有人能建议我如何解决这个问题,我将不胜感激