如何知道 cocotb 测试台使用的是哪个模拟器?

Posted

技术标签:

【中文标题】如何知道 cocotb 测试台使用的是哪个模拟器?【英文标题】:How to know which simulator is used in cocotb testbench? 【发布时间】:2020-07-31 05:38:05 【问题描述】:

为了测试我的 Verilog 设计,我使用了两个不同的模拟器:Icarus 和 Verilator。这是可行的,但它们之间存在一些差异。

例如,我无法使用 verilator 读取模块参数,但 Icarus 可以。

有没有办法知道python testfile中使用的是哪个模拟器?

我想写这样的东西:

        if SIM == 'icarus':
            self.PULSE_PER_NS = int(dut.PULSE_PER_NS)
            self.DEBOUNCE_PER_NS = int(dut.DEBOUNCE_PER_NS)
        else:
            self.PULSE_PER_NS = 4096 
            self.DEBOUNCE_PER_NS = 16777216

能够管理两个模拟器并进行比较。

【问题讨论】:

【参考方案1】:

可以使用cocotb.SIM_NAME 确定正在运行的模拟器名称(作为字符串)。如果 cocotb 不是从模拟器加载的,则返回 None

【讨论】:

以上是关于如何知道 cocotb 测试台使用的是哪个模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

verilog VPI 回调

SystemVerilog测试台模拟(VCS)的非活动停止开关

(转)如何在一台电脑上开启多个tomcat 和配置让系统识别哪个具体的tomcat

如何知道我使用的是哪个版本的 C 语言?

如何测试已发布的Chrome扩展程序

哪个是测试 Ninject 绑定的好方法?