Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 66 additions & 16 deletions mode_dark_light.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@
CANVAS_BG_COLOR = "#E5E5E5"
CANVAS_LINE_COLOR = "black"

from VectorCGRA.cgra.translate.CGRATemplateRTL_test import *
##from VectorCGRA.cgra.translate.CGRATemplateRTL_test import *
from VectorCGRA.cgra.test.CgraTemplateRTL_test import *


# importing module
import logging
Expand Down Expand Up @@ -966,7 +968,7 @@ def clickGenerateVerilog():
# pymtl function that is used to generate synthesizable verilog
cmdline_opts = {'test_verilog': 'zeros', 'test_yosys_verilog': '', 'dump_textwave': False, 'dump_vcd': False,
'dump_vtb': False, 'max_cycles': None}
test_cgra_universal(paramCGRA = paramCGRA)
test_cgra_universal(cmdline_opts,paramCGRA = paramCGRA)

widgets["verilogText"].delete("1.0", tkinter.END)
found = False
Expand All @@ -980,7 +982,7 @@ def clickGenerateVerilog():
break

paramCGRA.verilogDone = True
if not found:
if not found:
paramCGRA.verilogDone = False
widgets["verilogText"].insert(tkinter.END, "Error exists during Verilog generation")

Expand Down Expand Up @@ -1149,8 +1151,13 @@ def clickCompileApp():
if not fileName or fileName == " Not selected yet":
return

os.system("mkdir kernel")
os.chdir("kernel")
script_dir = os.path.dirname(os.path.abspath(__file__))

kernel_dir = os.path.join(script_dir, "build/kernel")

os.makedirs(kernel_dir, exist_ok=True)

os.chdir(kernel_dir)

compileCommand = "clang-12 -emit-llvm -fno-unroll-loops -O3 -o kernel.bc -c " + fileName
compileProc = subprocess.Popen([compileCommand, '-u'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
Expand Down Expand Up @@ -1204,7 +1211,7 @@ def clickCompileApp():

widgets["generateDFGShow"].configure(text="IDLE")

os.chdir("..")
os.chdir(script_dir)


def clickKernelMenu(*args):
Expand Down Expand Up @@ -1259,13 +1266,26 @@ def dumpParamCGRA2JSON(fileName):


def clickShowDFG():
os.system("mkdir kernel")
os.chdir("kernel")

script_dir = os.path.dirname(os.path.abspath(__file__))

mapper_so_path = os.path.join(script_dir, "CGRA-Mapper", "build", "src", "libmapperPass.so")

mapper_so_path = os.path.abspath(mapper_so_path)

kernel_dir = os.path.join(script_dir, "build/kernel")

os.makedirs(kernel_dir, exist_ok=True)

os.chdir(kernel_dir)

kernel_bc_path = os.path.join(script_dir, "build/kernel/kernel.bc")

fileExist = os.path.exists("kernel.bc")
global paramCGRA

if not fileExist or not paramCGRA.compilationDone or paramCGRA.targetKernelName == None:
os.chdir("..")
os.chdir(script_dir)
tkinter.messagebox.showerror(title="DFG Generation",
message="The compilation and kernel selection need to be done first.")
return
Expand Down Expand Up @@ -1299,7 +1319,7 @@ def clickShowDFG():

dumpParamCGRA2JSON("paramCGRA.json")

genDFGCommand = "opt-12 -load ../../CGRA-Mapper/build/src/libmapperPass.so -mapperPass ./kernel.bc"
genDFGCommand = f"opt-12 -load {mapper_so_path} -mapperPass {kernel_bc_path}"
print("trying to run opt-12")
genDFGProc = subprocess.Popen([genDFGCommand, "-u"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

Expand All @@ -1323,6 +1343,9 @@ def clickShowDFG():
widgets["recMIIEntry"].delete(0, tkinter.END)
widgets["recMIIEntry"].insert(0, paramCGRA.recMII)


if not os.path.exists(paramCGRA.targetKernelName + ".dot"):
print("DFG dot file was not generated!")
convertCommand = "dot -Tpng " + paramCGRA.targetKernelName + ".dot -o kernel.png"
convertProc = subprocess.Popen([convertCommand, "-u"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
(out, err) = convertProc.communicate()
Expand Down Expand Up @@ -1354,7 +1377,7 @@ def clickShowDFG():

widgets["generateDFGShow"].configure(text=u'\u2713\u2713\u2713')

os.chdir("..")
os.chdir(script_dir)


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

def drawSchedule():
global mappingProc
mappingCommand = "opt-12 -load ../../CGRA-Mapper/build/src/libmapperPass.so -mapperPass ./kernel.bc"

script_dir = os.path.dirname(os.path.abspath(__file__))

mapper_so_path = os.path.join(script_dir, "CGRA-Mapper", "build", "src", "libmapperPass.so")

mapper_so_path = os.path.abspath(mapper_so_path)

kernel_dir = os.path.join(script_dir, "build/kernel")

os.makedirs(kernel_dir, exist_ok=True)

os.chdir(kernel_dir)

kernel_bc_path = os.path.join(script_dir, "build/kernel/kernel.bc")

#f"opt-12 -load {mapper_so_path} -mapperPass {kernel_bc_path}"

mappingCommand = f"opt-12 -load {mapper_so_path} -mapperPass {kernel_bc_path}"
mappingProc = subprocess.Popen(["exec " + mappingCommand, '-u'], stdout=subprocess.PIPE, stderr=subprocess.PIPE,
shell=True, bufsize=1)
(out, err) = mappingProc.communicate()
Expand Down Expand Up @@ -1503,8 +1543,20 @@ def clickMapDFG():
mappingProc = None
heuristic = mappingAlgoCheckVar.get() == 0

os.system("mkdir kernel")
os.chdir("kernel")
script_dir = os.path.dirname(os.path.abspath(__file__))

mapper_so_path = os.path.join(script_dir, "CGRA-Mapper", "build", "src", "libmapperPass.so")

mapper_so_path = os.path.abspath(mapper_so_path)

kernel_dir = os.path.join(script_dir, "build/kernel")

os.makedirs(kernel_dir, exist_ok=True)

os.chdir(kernel_dir)

kernel_bc_path = os.path.join(script_dir, "build/kernel/kernel.bc")

fileExist = os.path.exists("kernel.bc")
global paramCGRA

Expand Down Expand Up @@ -1546,8 +1598,6 @@ def clickMapDFG():

dumpParamCGRA2JSON("paramCGRA.json")

mappingCommand = "opt-12 -load ../../CGRA-Mapper/build/src/libmapperPass.so -mapperPass ./kernel.bc"

widgets["mapTimeEntry"].delete(0, tkinter.END)
widgets["mapTimeEntry"].insert(0, 0)

Expand Down
Loading