support cadence15
This commit is contained in:
parent
a907fd3607
commit
e14cd5a5f4
|
@ -65,6 +65,8 @@ class Config:
|
||||||
flow.dreamplace_bin_path = sec.get('dreamplace_bin_path')
|
flow.dreamplace_bin_path = sec.get('dreamplace_bin_path')
|
||||||
if sec.get('yosys_bin_path'):
|
if sec.get('yosys_bin_path'):
|
||||||
flow.yosys_bin_path = sec.get('yosys_bin_path')
|
flow.yosys_bin_path = sec.get('yosys_bin_path')
|
||||||
|
if sec.get('cadence_version'):
|
||||||
|
flow.cadence_version = sec.get('cadence_version')
|
||||||
|
|
||||||
flow.config()
|
flow.config()
|
||||||
return flow
|
return flow
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
; liberty_input str Path to the input .lib file
|
; liberty_input str Path to the input .lib file
|
||||||
|
|
||||||
; # External toolkit settings
|
; # External toolkit settings
|
||||||
|
; cadence_version str 15/19
|
||||||
; dreamplace_bin_path str Path/to/DREAMPlace/.../Placer.py
|
; dreamplace_bin_path str Path/to/DREAMPlace/.../Placer.py
|
||||||
; yosys_bin_path str Path/to/Yosys/build_dir/, which contains yosys and yosys-abc binaries
|
; yosys_bin_path str Path/to/Yosys/build_dir/, which contains yosys and yosys-abc binaries
|
||||||
|
|
||||||
|
@ -58,21 +59,22 @@ lef_input = /home/wxm/cocoon/demo/lib/gscl45nm.lef
|
||||||
liberty_input = /home/wxm/cocoon/demo/lib/gscl45nm.lib
|
liberty_input = /home/wxm/cocoon/demo/lib/gscl45nm.lib
|
||||||
|
|
||||||
# External toolkit settings
|
# External toolkit settings
|
||||||
|
cadence_version = 15
|
||||||
dreamplace_bin_path = /home/wxm/DREAMPlace/install/dreamplace/Placer.py
|
dreamplace_bin_path = /home/wxm/DREAMPlace/install/dreamplace/Placer.py
|
||||||
yosys_bin_path = /home/wxm/yosys/build
|
yosys_bin_path = /home/wxm/yosys/build
|
||||||
|
|
||||||
# Flow settings
|
# Flow settings
|
||||||
flow = {'synth':'genus', 'placement':'innovus', 'routing':'innovus'}
|
flow = {'synth':'genus', 'placement':'innovus', 'routing':'innovus'}
|
||||||
n_iter_IFT = 1
|
n_iter_IFT = 0
|
||||||
verbose = False
|
verbose = False
|
||||||
|
|
||||||
[ALU(Chisel)]
|
[gcd-test]
|
||||||
# Design settings
|
# Design settings
|
||||||
design_name = AluTop
|
design_name = gcd
|
||||||
is_Chisel_design = True
|
is_Chisel_design = False
|
||||||
rtl_input = /home/wxm/cocoon/demo/gcd/gcd.v
|
rtl_input = /home/wxm/cocoon/demo/gcd/gcd.v
|
||||||
Chisel_input = /home/wxm/cocoon/demo/alu-chisel/
|
Chisel_input = /home/wxm/cocoon/demo/alu-chisel/
|
||||||
result_dir = /home/wxm/cocoon/results/
|
result_dir = /home/wxm/cocoon/results/test/
|
||||||
clk_name = clk
|
clk_name = clk
|
||||||
delay = 1000
|
delay = 1000
|
||||||
|
|
||||||
|
@ -82,12 +84,38 @@ lef_input = /home/wxm/cocoon/demo/lib/gscl45nm.lef
|
||||||
liberty_input = /home/wxm/cocoon/demo/lib/gscl45nm.lib
|
liberty_input = /home/wxm/cocoon/demo/lib/gscl45nm.lib
|
||||||
|
|
||||||
# External toolkit settings
|
# External toolkit settings
|
||||||
|
cadence_version = 15
|
||||||
dreamplace_bin_path = /home/wxm/DREAMPlace/install/dreamplace/Placer.py
|
dreamplace_bin_path = /home/wxm/DREAMPlace/install/dreamplace/Placer.py
|
||||||
yosys_bin_path = /home/wxm/yosys/build
|
yosys_bin_path = /home/wxm/yosys/build
|
||||||
|
|
||||||
# Flow settings
|
# Flow settings
|
||||||
flow = {'synth':'yosys', 'placement':'dreamplace', 'routing':'innovus'}
|
flow = {'synth':'genus', 'placement':'innovus', 'routing':'innovus'}
|
||||||
n_iter_IFT = 0
|
n_iter_IFT = 0
|
||||||
verbose = False
|
verbose = False
|
||||||
|
|
||||||
|
|
||||||
|
; [ALU(Chisel)]
|
||||||
|
; # Design settings
|
||||||
|
; design_name = AluTop
|
||||||
|
; is_Chisel_design = True
|
||||||
|
; rtl_input = /home/wxm/cocoon/demo/gcd/gcd.v
|
||||||
|
; Chisel_input = /home/wxm/cocoon/demo/alu-chisel/
|
||||||
|
; result_dir = /home/wxm/cocoon/results/
|
||||||
|
; clk_name = clk
|
||||||
|
; delay = 1000
|
||||||
|
|
||||||
|
; # Library settings
|
||||||
|
; lib_name = gscl45nm
|
||||||
|
; lef_input = /home/wxm/cocoon/demo/lib/gscl45nm.lef
|
||||||
|
; liberty_input = /home/wxm/cocoon/demo/lib/gscl45nm.lib
|
||||||
|
|
||||||
|
; # External toolkit settings
|
||||||
|
; dreamplace_bin_path = /home/wxm/DREAMPlace/install/dreamplace/Placer.py
|
||||||
|
; yosys_bin_path = /home/wxm/yosys/build
|
||||||
|
|
||||||
|
; # Flow settings
|
||||||
|
; flow = {'synth':'genus', 'placement':'innovus', 'routing':'innovus'}
|
||||||
|
; n_iter_IFT = 0
|
||||||
|
; verbose = False
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@ def run(design, flow, flow_name):
|
||||||
|
|
||||||
if x[0] == "InnovusPlace":
|
if x[0] == "InnovusPlace":
|
||||||
tmp_op_pdn = place.InnovusPlace(design)
|
tmp_op_pdn = place.InnovusPlace(design)
|
||||||
|
tmp_op_pdn.params['cadence_version'] = flow.cadence_version
|
||||||
tmp_op_pdn.config(design, design_name + "_" + x[1])
|
tmp_op_pdn.config(design, design_name + "_" + x[1])
|
||||||
overall_tcl.write('source %s%s_to_place.tcl\n'%(tcl_path, design_name))
|
overall_tcl.write('source %s%s_to_place.tcl\n'%(tcl_path, design_name))
|
||||||
|
|
||||||
|
|
1
flow.py
1
flow.py
|
@ -13,6 +13,7 @@ class MyFlow(object):
|
||||||
self.params_drc = []
|
self.params_drc = []
|
||||||
self.n_iter_IFT = 0
|
self.n_iter_IFT = 0
|
||||||
self.verbose = True
|
self.verbose = True
|
||||||
|
self.cadence_version = '19'
|
||||||
self.dreamplace_bin_path = " "
|
self.dreamplace_bin_path = " "
|
||||||
self.yosys_bin_path = " "
|
self.yosys_bin_path = " "
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ class InnovusDRC():
|
||||||
def config(self, design, tcl_file):
|
def config(self, design, tcl_file):
|
||||||
tcl_path = util.getScriptPath(self.design)
|
tcl_path = util.getScriptPath(self.design)
|
||||||
ret = 'check_design'
|
ret = 'check_design'
|
||||||
if self.params['out_file'] is not 'default':
|
if self.params['out_file'] != 'default':
|
||||||
ret = ret + " -out_file " + self.params['out_file']
|
ret = ret + " -out_file " + self.params['out_file']
|
||||||
|
|
||||||
if self.params['no_check']:
|
if self.params['no_check']:
|
||||||
|
|
|
@ -11,6 +11,7 @@ class InnovusPlace(object):
|
||||||
self.params['concurrent_macros'] = False
|
self.params['concurrent_macros'] = False
|
||||||
self.params['incremental'] = False
|
self.params['incremental'] = False
|
||||||
self.params['noPrePlaceOpt'] = False
|
self.params['noPrePlaceOpt'] = False
|
||||||
|
self.params['cadence_version'] = '19'
|
||||||
|
|
||||||
def setParams(self, param):
|
def setParams(self, param):
|
||||||
if self.params.get(param) == None:
|
if self.params.get(param) == None:
|
||||||
|
@ -21,6 +22,13 @@ class InnovusPlace(object):
|
||||||
def config(self, design, tcl_file):
|
def config(self, design, tcl_file):
|
||||||
tcl_path = util.getScriptPath(self.design)
|
tcl_path = util.getScriptPath(self.design)
|
||||||
ret = 'place_design'
|
ret = 'place_design'
|
||||||
|
if self.params['cadence_version'] == '19':
|
||||||
|
ret = 'place_design'
|
||||||
|
elif self.params['cadence_version'] == '15':
|
||||||
|
ret = 'placeDesign'
|
||||||
|
else:
|
||||||
|
Exception("Invalid Cadence version!\n")
|
||||||
|
|
||||||
for i in self.params:
|
for i in self.params:
|
||||||
if self.params[i] == True:
|
if self.params[i] == True:
|
||||||
ret = ret + " -" + i
|
ret = ret + " -" + i
|
||||||
|
|
Loading…
Reference in New Issue