

local clock = dut.clock:chdl()

local function dut_reset()
    dut.reset = 1
    clock:posedge(5)
    dut.reset = 0
    clock:posedge()
end

verilua "appendTasks" {
    function ()
        dut_reset()
        
        clock:posedge(10, function(c)
            print("\tc => " .. dut.cycles:get(), "subModule.data_out => " .. dut.u_TestTop.subModule.data_out:get())
            print("\t subModule.data_out_16b => " .. dut.u_TestTop.subModule.data_out_16b:get_str(HexStr))
            print("\t subModule.data_out_32b => " .. dut.u_TestTop.subModule.data_out_32b:get_str(HexStr))
            print("\t subModule.data_out_64b => " .. dut.u_TestTop.subModule.data_out_64b:get_str(HexStr))
            print("\t subModule.data_out_128b => " .. dut.u_TestTop.subModule.data_out_128b:get_str(HexStr))
            print("\t subModule.data_out_256b => " .. dut.u_TestTop.subModule.data_out_256b:get_str(HexStr))
            io.flush()
        end)

        sim.finish()
    end
}

