def test_func(model_class, sim_class, opts, test_vectors): model = model_class() if opts.kernel == 'c': model = get_cpp(model) print "Instantiation done..." model.elaborate() print "Elaboration done..." if opts.elaborate_only: return if not opts.stats: sim = sim_class(model) print "Simulator Creation done..." sim.reset() model.in_.val.value = 1 model.out.rdy.value = 1 i = idx = 0 sim_ncycles = 2 while i < opts.nmults or not model.out.val: if model.in_.rdy: model.in_.msga.value = test_vectors[idx][0] model.in_.msgb.value = test_vectors[idx][1] #sim.print_line_trace() sim.cycle() if model.out.val: assert model.out.msga.value == test_vectors[idx][2] i += 1 idx = i % 1000 sim_ncycles += 1 print "Simulation done! Executed: {} cycles".format(sim_ncycles)
def test_func( model_class, sim_class, opts, test_vectors ): model = model_class() if opts.kernel == 'c': model = get_cpp( model ) print "Instantiation done..." model.elaborate() print "Elaboration done..." if opts.elaborate_only: return if not opts.stats: sim = sim_class( model ) print "Simulator Creation done..." sim.reset() model.in_.val.value = 1 model.out.rdy.value = 1 i = idx = 0 sim_ncycles = 2 while i < opts.nmults or not model.out.val: if model.in_.rdy: model.in_.msga.value = test_vectors[idx][0] model.in_.msgb.value = test_vectors[idx][1] #sim.print_line_trace() sim.cycle() if model.out.val: assert model.out.msga.value == test_vectors[idx][2] i += 1 idx = i % 1000 sim_ncycles += 1 print "Simulation done! Executed: {} cycles".format( sim_ncycles )
def test_func( model_class, sim_class, opts ): model = model_class( opts.nrouters, NMESSAGES, PAYLOAD_NBITS, NENTRIES ) if opts.kernel == 'c': model = get_cpp( model ) print "Instantiation done..." model.elaborate() print "Elaboration done..." if opts.elaborate_only: return sim = sim_class( model ) print "Simulator Creation done..." run = verify if opts.verify else simulate results = run ( model, # model sim, # simulator opts, # options # TODO: opts.dump_vcd, False, # dump_vcd opts.verbose ) # verbose print "Simulation done! Executed: {} cycles".format( sim.ncycles ) return results