Skip to content

Commit fc36f75

Browse files
author
zhong qing
committed
Use relative path to generate kernel folder
Otherwise kernel will be made in the place where you run the command instead of relative lower layer of the script folder
1 parent 8868d33 commit fc36f75

1 file changed

Lines changed: 66 additions & 16 deletions

File tree

mode_dark_light.py

Lines changed: 66 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
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
3739
import 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

12101217
def clickKernelMenu(*args):
@@ -1259,13 +1266,26 @@ def dumpParamCGRA2JSON(fileName):
12591266

12601267

12611268
def 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

13601383
mappingProc = None
@@ -1372,7 +1395,24 @@ def countMapTime():
13721395

13731396
def 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

Comments
 (0)