在门级模拟中使用泛型/参数的Cocotb

2024-04-25 22:46:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功地为我的设计建立了一个Cocotb验证环境,我很高兴它在RTL(在我的例子中是VHDL)中的工作方式。在

我的设计是使用泛型,我在python代码的几个地方(主要是在run_测试和模型中)检索这些泛型的值,遵循模板:
我的通用=dut.GEN_姓名.价值

不幸的是,这在门级模拟的情况下不起作用,因为我的合成设计不再有泛型,因此dut.GEN_姓名。值不存在。在

我应该朝着从模拟流(Cocotb的makefile)获取参数/泛型值的方向前进吗?在

如果是的话,最干净的方法是什么?使用环境变量?在

(顺便说一句,我使用Questa,即使我不希望这个方面依赖于模拟器…)

谢谢你的帮助和建议。。。在


Tags: run代码模型模板环境地方方式例子
1条回答
网友
1楼 · 发布于 2024-04-25 22:46:30

将配置传递给Python Cocotb代码可能是可能的,但是很容易出错,因为必须确保传递的值与用于合成的值相同。在

另一种解决方案是将顶级实体的配置包存储在单独的文件中,例如,top_config.vhdl,其内容包括:

library ieee;
use ieee.std_logic_1164.all;

package top_config is

  constant AA : positive := 5;
  constant BB : integer := 10;

end package top_config;

这里定义的常量,然后用作顶级实体泛型的默认值,或者直接在顶级实体中使用。在

现在可以通过cocotbtestbench中的一些Python代码来解析包:

^{pr2}$

不必打印匹配项,您可以将其添加到词典或执行其他操作。在

相关问题 更多 >