def sim(Test, TestFun): if TestFun is None: return return tvsim = generate_simulator_test_vectors(Test) tvfun = generate_function_test_vectors(Test, TestFun) assert tvsim == tvfun
def test_circuit(Circuit): def fn(I): return I function_test_vectors = generate_function_test_vectors(Circuit, fn) simulator_test_vectors = generate_simulator_test_vectors(Circuit) assert function_test_vectors == simulator_test_vectors
def sim(Test, TestFun): if TestFun is None: return if magma.mantle_target in ['spartan3', 'spartan6']: return tvsim = generate_simulator_test_vectors(Test) tvfun = generate_function_test_vectors(Test, TestFun) assert tvsim == tvfun
# In[2]: m.compile("build/FullAdder", FullAdder, output="coreir") get_ipython().magic('cat build/FullAdder.json') # In[3]: m.compile("build/FullAdder", FullAdder, output="coreir-verilog") get_ipython().magic('cat build/FullAdder.v') # In[4]: from fault.test_vectors import generate_simulator_test_vectors from bit_vector import BitVector test_vectors_raw = [[0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 0, 1], [1, 0, 0, 1, 0], [1, 0, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 1, 1]] test_vectors = [[BitVector(x) for x in test_vector] for test_vector in test_vectors_raw] tests = generate_simulator_test_vectors(FullAdder, flatten=False) print("Success" if tests == test_vectors else "Failure") # In[5]: from magma.waveform import waveform waveform(test_vectors_raw, ["a", "b", "cin", "sum", "cout"])
def sim(Test, TestFun): tvsim = generate_simulator_test_vectors(Test) tvfun = generate_function_test_vectors(Test, TestFun) assert tvsim == tvfun
def test_add(): width = 4 mask = 2**width - 1 Add = DefineAdd(width) assert generate_function_test_vectors(Add, lambda x, y: (x + y) & mask) == \ generate_simulator_test_vectors(Add)
Adder4 = DefineAdder(4) # In[2]: print(repr(Adder4)) # In[3]: m.compile("build/Adder4", Adder4, output="coreir") get_ipython().magic('cat build/Adder4.json') # In[4]: from fault.test_vectors import generate_simulator_test_vectors import fault tests = generate_simulator_test_vectors(Adder4, flatten=False) print(" a b ci o co") for test in tests: for t in test: print("{:2d}".format(t.as_uint()), end=' ') print()