Пример #1
0
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)
Пример #2
0
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 )
Пример #3
0
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