如何知道cocotb testbench用的是哪个模拟器?

How to know which simulator is used in cocotb testbench?

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

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

有没有办法知道 python 测试文件中使用的是哪个模拟器?

我想写这样的东西:

        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

能够管理两个模拟器并比较它们。

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