add partition subflow

This commit is contained in:
DaiToto 2020-09-28 10:47:02 +08:00
parent bebf20167c
commit 54197f5e8a
3 changed files with 56 additions and 2 deletions

View File

@ -26,7 +26,7 @@ class BranchFlow(object):
# compare here
syn_ckpt = cc.ops.cmp(syn_ckpt1, syn_ckpt2, self.syn_cmp)
# syn_ckpt.save(path)
flp_ckpt = self.flop_op(syn_ckpt, self.flp_para)
flp_ckpt = self.flp_op(syn_ckpt, self.flp_para)
place_ckpt = self.place_op(flp_ckpt, self.place_para)
cts_ckpt = self.cts_op(place_ckpt, self.cts_para)
route_ckpt = self.route_op(cts_ckpt, self.route_para)

View File

@ -21,7 +21,7 @@ class MyFlow(object):
def build_flow(self, inp):
syn_ckpt = self.syn_op(inp, self.syn_para)
# syn_ckpt.save(path)
flp_ckpt = self.flop_op(syn_ckpt, self.flp_para)
flp_ckpt = self.flp_op(syn_ckpt, self.flp_para)
place_ckpt = self.place_op(flp_ckpt, self.place_para)
cts_ckpt = self.cts_op(place_ckpt, self.cts_para)
route_ckpt = self.route_op(cts_ckpt, self.route_para)

54
graph/partition.py Normal file
View File

@ -0,0 +1,54 @@
import cocoon as cc
from cc.design import Design
class MyFlow(object):
def __init__(self, cfg):
self.cfg = cfg
self.syn_op = cc.ops.cds.synth
self.syn_para = dict()
self.flp_op = cc.ops.cds.flp
self.flp_para = dict()
self.part_op = cc.ops.part
# self.pdn_ckpt = cc.ops.cds.pdn
self.place_op1 = cc.ops.cds.place
self.place_para1 = dict()
self.place_op2 = cc.ops.dream_place.place
self.place_para2 = dict()
self.place_op3 = cc.ops.ntu.place
self.place_para3 = dict()
self.merge_op = cc.ops.merge
self.cts_op = cc.ops.cds.cts
self.cts_para = dict()
self.route_op = cc.ops.cds.route
self.route_para = dict()
self.drc_op = cc.ops.cds.drc
pass
def build_flow(self, inp):
syn_ckpt = self.syn_op(inp, self.syn_para)
# syn_ckpt.save(path)
flp_ckpt = self.flp_op(syn_ckpt, self.flp_para)
# partition
part1, part2, part3 = self.part_op(flp_ckpt, 3)
# subflow
place_ckpt1 = self.place_op1(part1, self.place_para1)
place_ckpt2 = self.place_op1(part2, self.place_para2)
place_ckpt3 = self.place_op1(part3, self.place_para3)
# merge
place_ckpt = self.merge_op([place_ckpt1, place_ckpt2, place_ckpt3])
cts_ckpt = self.cts_op(place_ckpt, self.cts_para)
route_ckpt = self.route_op(cts_ckpt, self.route_para)
drc_ckpt = self.drc_op(route_ckpt)
return drc_ckpt
def main():
cfg = {"path": "..."}
design = Design(cfg)
mf = MyFlow(cfg)
ckpt = mf.build_flow(design)
cc.engine.run(ckpt)
if __name__ == "__main__":
main()