Rework testbench logging

This commit is contained in:
Alex Forencich
2020-11-17 17:07:56 -08:00
parent f1648ccf78
commit ca57cdb198
3 changed files with 20 additions and 6 deletions

View File

@@ -31,6 +31,7 @@ import cocotb_test.simulator
import pytest import pytest
import cocotb import cocotb
from cocotb.log import SimLog
from cocotb.clock import Clock from cocotb.clock import Clock
from cocotb.triggers import RisingEdge, Timer from cocotb.triggers import RisingEdge, Timer
from cocotb.regression import TestFactory from cocotb.regression import TestFactory
@@ -41,6 +42,9 @@ class TB(object):
def __init__(self, dut): def __init__(self, dut):
self.dut = dut self.dut = dut
self.log = SimLog(f"cocotb.tb")
self.log.setLevel(logging.DEBUG)
cocotb.fork(Clock(dut.clk, 2, units="ns").start()) cocotb.fork(Clock(dut.clk, 2, units="ns").start())
self.axi_master = AxiMaster(dut, "axi", dut.clk, dut.rst) self.axi_master = AxiMaster(dut, "axi", dut.clk, dut.rst)
@@ -93,7 +97,7 @@ async def run_test_write(dut, idle_inserter=None, backpressure_inserter=None, si
for length in list(range(1,byte_width*2))+[1024]: for length in list(range(1,byte_width*2))+[1024]:
for offset in list(range(byte_width))+list(range(4096-byte_width,4096)): for offset in list(range(byte_width))+list(range(4096-byte_width,4096)):
print(f"length {length}, offset {offset}") tb.log.info(f"length {length}, offset {offset}")
addr = offset+0x1000 addr = offset+0x1000
test_data = bytearray([x%256 for x in range(length)]) test_data = bytearray([x%256 for x in range(length)])
@@ -101,7 +105,7 @@ async def run_test_write(dut, idle_inserter=None, backpressure_inserter=None, si
await tb.axi_master.write(addr, test_data, size=size) await tb.axi_master.write(addr, test_data, size=size)
tb.axi_ram.hexdump((addr&0xfffffff0)-16, (((addr&0xf)+length-1)&0xfffffff0)+48) tb.log.debug(tb.axi_ram.hexdump_str((addr&0xfffffff0)-16, (((addr&0xf)+length-1)&0xfffffff0)+48))
assert tb.axi_ram.read_mem(addr, length) == test_data assert tb.axi_ram.read_mem(addr, length) == test_data
assert tb.axi_ram.read_mem(addr-1, 1) == b'\xaa' assert tb.axi_ram.read_mem(addr-1, 1) == b'\xaa'
@@ -127,7 +131,7 @@ async def run_test_read(dut, idle_inserter=None, backpressure_inserter=None, siz
for length in list(range(1,byte_width*2))+[1024]: for length in list(range(1,byte_width*2))+[1024]:
for offset in list(range(byte_width))+list(range(4096-byte_width,4096)): for offset in list(range(byte_width))+list(range(4096-byte_width,4096)):
print(f"length {length}, offset {offset}") tb.log.info(f"length {length}, offset {offset}")
addr = offset+0x1000 addr = offset+0x1000
test_data = bytearray([x%256 for x in range(length)]) test_data = bytearray([x%256 for x in range(length)])

View File

@@ -23,6 +23,7 @@ THE SOFTWARE.
""" """
import itertools import itertools
import logging
import os import os
import random import random
@@ -30,6 +31,7 @@ import cocotb_test.simulator
import pytest import pytest
import cocotb import cocotb
from cocotb.log import SimLog
from cocotb.clock import Clock from cocotb.clock import Clock
from cocotb.triggers import RisingEdge, Timer from cocotb.triggers import RisingEdge, Timer
from cocotb.regression import TestFactory from cocotb.regression import TestFactory
@@ -40,6 +42,9 @@ class TB(object):
def __init__(self, dut): def __init__(self, dut):
self.dut = dut self.dut = dut
self.log = SimLog(f"cocotb.tb")
self.log.setLevel(logging.DEBUG)
cocotb.fork(Clock(dut.clk, 2, units="ns").start()) cocotb.fork(Clock(dut.clk, 2, units="ns").start())
self.axil_master = AxiLiteMaster(dut, "axil", dut.clk, dut.rst) self.axil_master = AxiLiteMaster(dut, "axil", dut.clk, dut.rst)
@@ -85,7 +90,7 @@ async def run_test_write(dut, data_in=None, idle_inserter=None, backpressure_ins
for length in range(1,byte_width*2): for length in range(1,byte_width*2):
for offset in range(byte_width): for offset in range(byte_width):
print(f"length {length}, offset {offset}") tb.log.info(f"length {length}, offset {offset}")
addr = offset+0x1000 addr = offset+0x1000
test_data = bytearray([x%256 for x in range(length)]) test_data = bytearray([x%256 for x in range(length)])
@@ -93,7 +98,7 @@ async def run_test_write(dut, data_in=None, idle_inserter=None, backpressure_ins
await tb.axil_master.write(addr, test_data) await tb.axil_master.write(addr, test_data)
tb.axil_ram.hexdump((addr&0xfffffff0)-16, (((addr&0xf)+length-1)&0xfffffff0)+48) tb.log.debug(tb.axil_ram.hexdump_str((addr&0xfffffff0)-16, (((addr&0xf)+length-1)&0xfffffff0)+48))
assert tb.axil_ram.read_mem(addr, length) == test_data assert tb.axil_ram.read_mem(addr, length) == test_data
assert tb.axil_ram.read_mem(addr-1, 1) == b'\xaa' assert tb.axil_ram.read_mem(addr-1, 1) == b'\xaa'
@@ -115,7 +120,7 @@ async def run_test_read(dut, data_in=None, idle_inserter=None, backpressure_inse
for length in range(1,byte_width*2): for length in range(1,byte_width*2):
for offset in range(byte_width): for offset in range(byte_width):
print(f"length {length}, offset {offset}") tb.log.info(f"length {length}, offset {offset}")
addr = offset+0x1000 addr = offset+0x1000
test_data = bytearray([x%256 for x in range(length)]) test_data = bytearray([x%256 for x in range(length)])

View File

@@ -24,12 +24,14 @@ THE SOFTWARE.
""" """
import itertools import itertools
import logging
import os import os
import cocotb_test.simulator import cocotb_test.simulator
import pytest import pytest
import cocotb import cocotb
from cocotb.log import SimLog
from cocotb.clock import Clock from cocotb.clock import Clock
from cocotb.triggers import RisingEdge from cocotb.triggers import RisingEdge
from cocotb.regression import TestFactory from cocotb.regression import TestFactory
@@ -40,6 +42,9 @@ class TB(object):
def __init__(self, dut): def __init__(self, dut):
self.dut = dut self.dut = dut
self.log = SimLog(f"cocotb.tb")
self.log.setLevel(logging.DEBUG)
cocotb.fork(Clock(dut.clk, 2, units="ns").start()) cocotb.fork(Clock(dut.clk, 2, units="ns").start())
self.source = AxiStreamSource(dut, "axis", dut.clk, dut.rst) self.source = AxiStreamSource(dut, "axis", dut.clk, dut.rst)