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

Fab*_*enM 3 python verilog icarus verilator cocotb

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

例如,我无法使用 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
Run Code Online (Sandbox Code Playgroud)

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

Qiu*_*Qiu 6

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