3131 CANVAS_BG_COLOR = "#E5E5E5"
3232 CANVAS_LINE_COLOR = "black"
3333
34- from VectorCGRA .cgra .translate .CGRATemplateRTL_test import *
34+ ##from VectorCGRA.cgra.translate.CGRATemplateRTL_test import *
35+ from VectorCGRA .cgra .test .CgraTemplateRTL_test import *
36+
3537
3638# importing module
3739import logging
@@ -966,7 +968,7 @@ def clickGenerateVerilog():
966968 # pymtl function that is used to generate synthesizable verilog
967969 cmdline_opts = {'test_verilog' : 'zeros' , 'test_yosys_verilog' : '' , 'dump_textwave' : False , 'dump_vcd' : False ,
968970 'dump_vtb' : False , 'max_cycles' : None }
969- test_cgra_universal (paramCGRA = paramCGRA )
971+ test_cgra_universal (cmdline_opts , paramCGRA = paramCGRA )
970972
971973 widgets ["verilogText" ].delete ("1.0" , tkinter .END )
972974 found = False
@@ -980,7 +982,7 @@ def clickGenerateVerilog():
980982 break
981983
982984 paramCGRA .verilogDone = True
983- if not found :
985+ if not found :
984986 paramCGRA .verilogDone = False
985987 widgets ["verilogText" ].insert (tkinter .END , "Error exists during Verilog generation" )
986988
@@ -1149,8 +1151,13 @@ def clickCompileApp():
11491151 if not fileName or fileName == " Not selected yet" :
11501152 return
11511153
1152- os .system ("mkdir kernel" )
1153- os .chdir ("kernel" )
1154+ script_dir = os .path .dirname (os .path .abspath (__file__ ))
1155+
1156+ kernel_dir = os .path .join (script_dir , "build/kernel" )
1157+
1158+ os .makedirs (kernel_dir , exist_ok = True )
1159+
1160+ os .chdir (kernel_dir )
11541161
11551162 compileCommand = "clang-12 -emit-llvm -fno-unroll-loops -O3 -o kernel.bc -c " + fileName
11561163 compileProc = subprocess .Popen ([compileCommand , '-u' ], stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = True )
@@ -1204,7 +1211,7 @@ def clickCompileApp():
12041211
12051212 widgets ["generateDFGShow" ].configure (text = "IDLE" )
12061213
1207- os .chdir (".." )
1214+ os .chdir (script_dir )
12081215
12091216
12101217def clickKernelMenu (* args ):
@@ -1259,13 +1266,26 @@ def dumpParamCGRA2JSON(fileName):
12591266
12601267
12611268def clickShowDFG ():
1262- os .system ("mkdir kernel" )
1263- os .chdir ("kernel" )
1269+
1270+ script_dir = os .path .dirname (os .path .abspath (__file__ ))
1271+
1272+ mapper_so_path = os .path .join (script_dir , "CGRA-Mapper" , "build" , "src" , "libmapperPass.so" )
1273+
1274+ mapper_so_path = os .path .abspath (mapper_so_path )
1275+
1276+ kernel_dir = os .path .join (script_dir , "build/kernel" )
1277+
1278+ os .makedirs (kernel_dir , exist_ok = True )
1279+
1280+ os .chdir (kernel_dir )
1281+
1282+ kernel_bc_path = os .path .join (script_dir , "build/kernel/kernel.bc" )
1283+
12641284 fileExist = os .path .exists ("kernel.bc" )
12651285 global paramCGRA
12661286
12671287 if not fileExist or not paramCGRA .compilationDone or paramCGRA .targetKernelName == None :
1268- os .chdir (".." )
1288+ os .chdir (script_dir )
12691289 tkinter .messagebox .showerror (title = "DFG Generation" ,
12701290 message = "The compilation and kernel selection need to be done first." )
12711291 return
@@ -1299,7 +1319,7 @@ def clickShowDFG():
12991319
13001320 dumpParamCGRA2JSON ("paramCGRA.json" )
13011321
1302- genDFGCommand = "opt-12 -load ../../CGRA-Mapper/build/src/libmapperPass.so -mapperPass ./kernel.bc "
1322+ genDFGCommand = f "opt-12 -load { mapper_so_path } -mapperPass { kernel_bc_path } "
13031323 print ("trying to run opt-12" )
13041324 genDFGProc = subprocess .Popen ([genDFGCommand , "-u" ], stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = True )
13051325
@@ -1323,6 +1343,9 @@ def clickShowDFG():
13231343 widgets ["recMIIEntry" ].delete (0 , tkinter .END )
13241344 widgets ["recMIIEntry" ].insert (0 , paramCGRA .recMII )
13251345
1346+
1347+ if not os .path .exists (paramCGRA .targetKernelName + ".dot" ):
1348+ print ("DFG dot file was not generated!" )
13261349 convertCommand = "dot -Tpng " + paramCGRA .targetKernelName + ".dot -o kernel.png"
13271350 convertProc = subprocess .Popen ([convertCommand , "-u" ], stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = True )
13281351 (out , err ) = convertProc .communicate ()
@@ -1354,7 +1377,7 @@ def clickShowDFG():
13541377
13551378 widgets ["generateDFGShow" ].configure (text = u'\u2713 \u2713 \u2713 ' )
13561379
1357- os .chdir (".." )
1380+ os .chdir (script_dir )
13581381
13591382
13601383mappingProc = None
@@ -1372,7 +1395,24 @@ def countMapTime():
13721395
13731396def drawSchedule ():
13741397 global mappingProc
1375- mappingCommand = "opt-12 -load ../../CGRA-Mapper/build/src/libmapperPass.so -mapperPass ./kernel.bc"
1398+
1399+ script_dir = os .path .dirname (os .path .abspath (__file__ ))
1400+
1401+ mapper_so_path = os .path .join (script_dir , "CGRA-Mapper" , "build" , "src" , "libmapperPass.so" )
1402+
1403+ mapper_so_path = os .path .abspath (mapper_so_path )
1404+
1405+ kernel_dir = os .path .join (script_dir , "build/kernel" )
1406+
1407+ os .makedirs (kernel_dir , exist_ok = True )
1408+
1409+ os .chdir (kernel_dir )
1410+
1411+ kernel_bc_path = os .path .join (script_dir , "build/kernel/kernel.bc" )
1412+
1413+ #f"opt-12 -load {mapper_so_path} -mapperPass {kernel_bc_path}"
1414+
1415+ mappingCommand = f"opt-12 -load { mapper_so_path } -mapperPass { kernel_bc_path } "
13761416 mappingProc = subprocess .Popen (["exec " + mappingCommand , '-u' ], stdout = subprocess .PIPE , stderr = subprocess .PIPE ,
13771417 shell = True , bufsize = 1 )
13781418 (out , err ) = mappingProc .communicate ()
@@ -1503,8 +1543,20 @@ def clickMapDFG():
15031543 mappingProc = None
15041544 heuristic = mappingAlgoCheckVar .get () == 0
15051545
1506- os .system ("mkdir kernel" )
1507- os .chdir ("kernel" )
1546+ script_dir = os .path .dirname (os .path .abspath (__file__ ))
1547+
1548+ mapper_so_path = os .path .join (script_dir , "CGRA-Mapper" , "build" , "src" , "libmapperPass.so" )
1549+
1550+ mapper_so_path = os .path .abspath (mapper_so_path )
1551+
1552+ kernel_dir = os .path .join (script_dir , "build/kernel" )
1553+
1554+ os .makedirs (kernel_dir , exist_ok = True )
1555+
1556+ os .chdir (kernel_dir )
1557+
1558+ kernel_bc_path = os .path .join (script_dir , "build/kernel/kernel.bc" )
1559+
15081560 fileExist = os .path .exists ("kernel.bc" )
15091561 global paramCGRA
15101562
@@ -1546,8 +1598,6 @@ def clickMapDFG():
15461598
15471599 dumpParamCGRA2JSON ("paramCGRA.json" )
15481600
1549- mappingCommand = "opt-12 -load ../../CGRA-Mapper/build/src/libmapperPass.so -mapperPass ./kernel.bc"
1550-
15511601 widgets ["mapTimeEntry" ].delete (0 , tkinter .END )
15521602 widgets ["mapTimeEntry" ].insert (0 , 0 )
15531603
0 commit comments