<s> from pymtl import * <EOL> from pclib . test import TestVectorSimulator <EOL> from arith import * <EOL> def test_adder ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:1> ] <EOL> ] <EOL> model = Adder ( <NUM_LIT:16> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in0 . value = test_vector [ <NUM_LIT:0> ] <EOL> model . in1 . value = test_vector [ <NUM_LIT:1> ] <EOL> model . cin . value = test_vector [ <NUM_LIT:2> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:3> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:3> ] <EOL> if test_vector [ <NUM_LIT:4> ] != '<STR_LIT:?>' : <EOL> assert model . cout . value == test_vector [ <NUM_LIT:4> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_subtractor ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> ] <EOL> model = Subtractor ( <NUM_LIT:16> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in0 . value = test_vector [ <NUM_LIT:0> ] <EOL> model . in1 . value = test_vector [ <NUM_LIT:1> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:2> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:2> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def run_test_incrementer ( test_verilog , dump_vcd , increment_amount , test_vectors ) : <EOL> model = Incrementer ( <NUM_LIT:16> , increment_amount ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:1> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:1> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_incrementer_ia1 ( test_verilog , dump_vcd ) : <EOL> run_test_incrementer ( test_verilog , dump_vcd , <NUM_LIT:1> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_incrementer_ia123 ( test_verilog , dump_vcd ) : <EOL> run_test_incrementer ( test_verilog , dump_vcd , <NUM_LIT> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_incrementer_ia1024 ( test_verilog , dump_vcd ) : <EOL> run_test_incrementer ( test_verilog , dump_vcd , <NUM_LIT> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def run_test_zero_extender ( test_verilog , dump_vcd , in_nbits , out_nbits , test_vectors ) : <EOL> model = ZeroExtender ( in_nbits , out_nbits ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:1> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:1> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_zero_extender_i1o4 ( test_verilog , dump_vcd ) : <EOL> run_test_zero_extender ( test_verilog , dump_vcd , <NUM_LIT:1> , <NUM_LIT:4> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_zero_extender_i2o4 ( test_verilog , dump_vcd ) : <EOL> run_test_zero_extender ( test_verilog , dump_vcd , <NUM_LIT:2> , <NUM_LIT:4> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_zero_extender_i4o16 ( test_verilog , dump_vcd ) : <EOL> run_test_zero_extender ( test_verilog , dump_vcd , <NUM_LIT:4> , <NUM_LIT:16> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def run_test_sign_extender ( test_verilog , dump_vcd , in_nbits , out_nbits , test_vectors ) : <EOL> model = SignExtender ( in_nbits , out_nbits ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:1> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:1> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_sign_extender_i1o4 ( test_verilog , dump_vcd ) : <EOL> run_test_sign_extender ( test_verilog , dump_vcd , <NUM_LIT:1> , <NUM_LIT:4> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_sign_extender_i2o4 ( test_verilog , dump_vcd ) : <EOL> run_test_sign_extender ( test_verilog , dump_vcd , <NUM_LIT:2> , <NUM_LIT:4> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_sign_extender_i4o16 ( test_verilog , dump_vcd ) : <EOL> run_test_sign_extender ( test_verilog , dump_vcd , <NUM_LIT:4> , <NUM_LIT:16> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_ZeroComparator ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> ] , <EOL> ] <EOL> model = ZeroComparator ( <NUM_LIT:16> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:1> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:1> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_EqComparator ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> ] <EOL> model = EqComparator ( <NUM_LIT:16> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in0 . value = test_vector [ <NUM_LIT:0> ] <EOL> model . in1 . value = test_vector [ <NUM_LIT:1> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:2> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:2> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_LtComparator ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> ] <EOL> model = LtComparator ( <NUM_LIT:16> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in0 . value = test_vector [ <NUM_LIT:0> ] <EOL> model . in1 . value = test_vector [ <NUM_LIT:1> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:2> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:2> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_GtComparator ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> ] , <EOL> ] <EOL> model = GtComparator ( <NUM_LIT:16> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in0 . value = test_vector [ <NUM_LIT:0> ] <EOL> model . in1 . value = test_vector [ <NUM_LIT:1> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:2> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:2> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def run_test_sign_unit ( test_verilog , dump_vcd , nbits , test_vectors ) : <EOL> model = SignUnit ( nbits ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:1> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:1> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_sign_unit_n4 ( test_verilog , dump_vcd ) : <EOL> run_test_sign_unit ( test_verilog , dump_vcd , <NUM_LIT:4> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_sign_unit_n7 ( test_verilog , dump_vcd ) : <EOL> run_test_sign_unit ( test_verilog , dump_vcd , <NUM_LIT:7> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def run_test_unsign_unit ( test_verilog , dump_vcd , nbits , test_vectors ) : <EOL> model = UnsignUnit ( nbits ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:1> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:1> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_unsign_unit_n4 ( test_verilog , dump_vcd ) : <EOL> run_test_unsign_unit ( test_verilog , dump_vcd , <NUM_LIT:4> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , ] , <EOL> ] ) <EOL> def test_unsign_unit_n7 ( test_verilog , dump_vcd ) : <EOL> run_test_unsign_unit ( test_verilog , dump_vcd , <NUM_LIT:7> , [ <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> ] , <EOL> ] ) <EOL> def test_LeftLogicalShifter ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:6> , <NUM_LIT> ] , <EOL> ] <EOL> model = LeftLogicalShifter ( <NUM_LIT:6> , <NUM_LIT:3> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> model . shamt . value = test_vector [ <NUM_LIT:1> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:2> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:2> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) <EOL> def test_RightLogicalShifter ( test_verilog , dump_vcd ) : <EOL> test_vectors = [ <EOL> [ <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:6> , <NUM_LIT> ] , <EOL> ] <EOL> model = RightLogicalShifter ( <NUM_LIT:6> , <NUM_LIT:3> ) <EOL> model . vcd_file = dump_vcd <EOL> if test_verilog : <EOL> model = TranslationTool ( model ) <EOL> model . elaborate ( ) <EOL> def tv_in ( model , test_vector ) : <EOL> model . in_ . value = test_vector [ <NUM_LIT:0> ] <EOL> model . shamt . value = test_vector [ <NUM_LIT:1> ] <EOL> def tv_out ( model , test_vector ) : <EOL> if test_vector [ <NUM_LIT:2> ] != '<STR_LIT:?>' : <EOL> assert model . out . value == test_vector [ <NUM_LIT:2> ] <EOL> sim = TestVectorSimulator ( model , test_vectors , tv_in , tv_out ) <EOL> sim . run_test ( ) </s>
