Endian Swapper VHDLのCocotbの例とQuestaSimを使ったVerilogのモードをシミュレートするときのクロック周期が変わります。クロックはprovided example codeで両方のモードで同じように生成されます。Cocotbで時間解像度を指定するにはどうすればよいですか?
@cocotb.coroutine
def clock_gen(signal):
while True:
signal <= 0
yield Timer(5000)
signal <= 1
yield Timer(5000)
@cocotb.coroutine
def run_test(dut): # stripped un
cocotb.fork(clock_gen(dut.clk))
とVerilogのモードで実行する場合:
make SIM=questa GUI=1
クロック周期が1000ナノ秒(000ナノ秒であります)、したがって、時間分解能は100psである。
とVHDLモードで実行する場合:
make SIM=questa GUI=1 TOPLEVEL_LANG=vhdl
クロック周期が10000のNS(000ナノ秒)であり、したがって、時間分解能が1ナノ秒です。
他の2つのVHDLプロジェクトで同じクロック生成を使用しています。 1つには、クロック周期も10000 ns(1 ns分解能)です。しかし、もう1つでは、クロック周期はわずか10nsで、1psの分解能が得られます。
これらのすべての実行モードとプロジェクトで時間の解像度が異なるのはなぜですか?
時間の解像度を一貫して指定するにはどうすればよいですか?
便宜上、 'cocotb.clock.Clock'クラスがあり、' clock_gen'コルーチンを繰り返し定義する必要がありません。 – Chiggs