@@ -70,7 +70,7 @@ class TestAlwaysAssign(unittest.TestCase):
7070 RESULTS_DIR = f"{ BASE_DIR } /results/{ PLATFORM } /{ DESIGN_NAME } "
7171 MAIN_SRC = f"{ RESULTS_DIR } /base/1_synth.v"
7272 TEST_BENCH = f"{ ORFS_ROOT } /bench/{ DESIGN_NAME } /test_bench_top.v"
73- AES_SRC = f"{ BASE_DIR } /designs/src/{ DESIGN_NAME } "
73+ DESIGN_SRC = f"{ BASE_DIR } /designs/src/{ DESIGN_NAME } "
7474 FILES = f"{ SRCS } { MAIN_SRC } { TEST_BENCH } "
7575
7676 @classmethod
@@ -83,7 +83,7 @@ def setUpClass(self):
8383 def test_verilator (self ):
8484 self .assertFalse (
8585 subprocess .call (
86- f"{ VERILATOR_ROOT } /bin/verilator -Mdir { self .RESULTS_DIR } /verilator --binary --error-limit 9999999 -Wno-MULTIDRIVEN -Wno-NOLATCH { self .FILES } +incdir+{ self .AES_SRC } -j { CPUS } --build-jobs { CPUS } " ,
86+ f"{ VERILATOR_ROOT } /bin/verilator -Mdir { self .RESULTS_DIR } /verilator --binary --error-limit 9999999 -Wno-MULTIDRIVEN -Wno-NOLATCH { self .FILES } +incdir+{ self .DESIGN_SRC } -j { CPUS } --build-jobs { CPUS } " ,
8787 shell = True ))
8888 self .assertFalse (
8989 subprocess .call (
@@ -94,7 +94,48 @@ def test_verilator(self):
9494 "Requires QUESTA_BIN and LM_LICENSE_FILE defined" )
9595 def test_questa (self ):
9696 subprocess .call (
97- f"{ QUESTA_BIN } { self .FILES } +incdir+{ self .AES_SRC } -outdir { self .RESULTS_DIR } /questa" ,
97+ f"{ QUESTA_BIN } { self .FILES } +incdir+{ self .DESIGN_SRC } -outdir { self .RESULTS_DIR } /questa" ,
98+ shell = True ,
99+ env = dict (os .environ , LM_LICENSE_FILE = LM_LICENSE_FILE ))
100+
101+ @classmethod
102+ def tearDownClass (self ):
103+ subprocess .call (
104+ f"make -C { ORFS_ROOT } /flow DESIGN_CONFIG={ self .DESIGN_CONFIG } clean_synth" ,
105+ shell = True )
106+
107+
108+ class TestSimpleAlu (unittest .TestCase ):
109+ DESIGN_NAME = "simple_alu"
110+ DESIGN_CONFIG = f"designs/{ PLATFORM } /{ DESIGN_NAME } /config.mk"
111+ RESULTS_DIR = f"{ BASE_DIR } /results/{ PLATFORM } /{ DESIGN_NAME } "
112+ MAIN_SRC = f"{ RESULTS_DIR } /base/1_synth.v"
113+ TEST_BENCH = f"{ ORFS_ROOT } /bench/{ DESIGN_NAME } /test_bench_top.v"
114+ DESIGN_SRC = f"{ BASE_DIR } /designs/src/{ DESIGN_NAME } "
115+ FILES = f"{ SRCS } { MAIN_SRC } { TEST_BENCH } "
116+
117+ @classmethod
118+ def setUpClass (self ):
119+ subprocess .call (
120+ f"make -C { ORFS_ROOT } /flow DESIGN_CONFIG={ self .DESIGN_CONFIG } synth" ,
121+ shell = True )
122+
123+ @unittest .skipIf (VERILATOR_ROOT is None , "Requires VERILATOR_ROOT defined" )
124+ def test_verilator (self ):
125+ self .assertFalse (
126+ subprocess .call (
127+ f"{ VERILATOR_ROOT } /bin/verilator -Mdir { self .RESULTS_DIR } /verilator --binary --error-limit 9999999 -Wno-MULTIDRIVEN -Wno-NOLATCH { self .FILES } +incdir+{ self .DESIGN_SRC } -j { CPUS } --build-jobs { CPUS } " ,
128+ shell = True ))
129+ self .assertFalse (
130+ subprocess .call (
131+ f"{ self .RESULTS_DIR } /verilator/Vasap7sc7p5t_AO_RVT_TT_201020" ,
132+ shell = True ))
133+
134+ @unittest .skipIf (QUESTA_BIN is None or LM_LICENSE_FILE is None ,
135+ "Requires QUESTA_BIN and LM_LICENSE_FILE defined" )
136+ def test_questa (self ):
137+ subprocess .call (
138+ f"{ QUESTA_BIN } { self .FILES } +incdir+{ self .DESIGN_SRC } -outdir { self .RESULTS_DIR } /questa" ,
98139 shell = True ,
99140 env = dict (os .environ , LM_LICENSE_FILE = LM_LICENSE_FILE ))
100141
0 commit comments