Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
macroplacement
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
macroplacement
Commits
d2640b35
Commit
d2640b35
authored
Nov 14, 2022
by
sakundu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated .gitignore and flow scripts for MemPool Group NG45
Signed-off-by: sakundu <sakundu@ucsd.edu>
parent
41bbeda6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
146 additions
and
1 deletions
+146
-1
.gitignore
+1
-1
Flows/NanGate45/mempool_group/scripts/cadence/run_genus_hybrid.tcl
+145
-0
No files found.
.gitignore
View file @
d2640b35
...
@@ -13,6 +13,6 @@ CodeElements/Plc_client/failed_proxy_plc/*
...
@@ -13,6 +13,6 @@ CodeElements/Plc_client/failed_proxy_plc/*
__pycache__/
__pycache__/
__pycache__
__pycache__
run
run
run*
run
-
*
GF12/
GF12/
GF12
GF12
Flows/NanGate45/mempool_group/scripts/cadence/run_genus_hybrid.tcl
0 → 100644
View file @
d2640b35
# This script was written and developed by ABKGroup students at UCSD. However, the underlying commands and reports are copyrighted by Cadence.
# We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.
source
lib_setup.tcl
source
design_setup.tcl
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
read_mmmc mmmc_iSpatial_setup.tcl
}
# set the output directories
set
OUTPUTS_PATH syn_output
set
REPORTS_PATH syn_rpt
set
HANDOFF_PATH syn_handoff
if
{
!
[
file
exists
${OUTPUTS_PATH}
]}
{
file mkdir
${OUTPUTS_PATH}
}
if
{
!
[
file
exists
${REPORTS_PATH}
]}
{
file mkdir
${REPORTS_PATH}
}
if
{
!
[
file
exists
${HANDOFF_PATH}
]}
{
file mkdir
${HANDOFF_PATH}
}
#
# set threads
set_db max_cpus_per_server 16
set_db super_thread_servers
"localhost"
#
set
list_lib
"
$libworst
"
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
set_db invs_temp_dir
${OUTPUTS_PATH}
/invs_tmp_dir
read_physical -lefs
$lefs
}
# Target library
set
link_library
$list
_lib
set
target_library
$list
_lib
# set pathi
set_db hdl_flatten_complex_port true
set_db hdl_record_naming_style %s_%s
set_db auto_ungroup none
if
{
!
[
info
exist ::env
(
PHY_SYNTH
)]
||
$::env
(
PHY_SYNTH
)
== 0
}
{
set_db library
$list
_lib
}
#################################################
# Load Design and Initialize
#################################################
set_db init_hdl_search_path
$rtldir
source rtl_list.tcl
foreach
rtl_file
$rtl
_all
{
read_hdl -language sv -define TARGET_SYNTHESIS -define XPULPIMG=1 -define NUM_CORES=256 -define AXI_HIER_RADIX=20 -define AXI_DATA_WIDTH=256 -define NUM_GROUPS=4 -define RO_LINE_WIDTH=256 -define NUM_CORES_PER_TILE=4 -define L2_SIZE=400000 -define L2_BANKS=4 -define SEQ_MEM_SIZE=1024 -define BANKING_FACTOR=4
$rtl
_file
}
elaborate $DESIGN
time_info Elaboration
if
{
!
[
info
exist ::env
(
PHY_SYNTH
)]
||
$::env
(
PHY_SYNTH
)
== 0
}
{
#read_sdc
$sdc
source
$sdc
}
init_design
check_design -unresolved
check_timing_intent
# reports the physical layout estimation report from lef and QRC tech file
report_ple >
${REPORTS_PATH}
/ple.rpt
###############################################
# Read DEF
###############################################
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
read_def
$floorplan
_def
check_floorplan -detailed
}
# keep hierarchy during synthesis
set_db auto_ungroup none
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
syn_generic -physical
}
else
{
syn_generic
write_hdl -generic >
${HANDOFF_PATH}
/$
{
DESIGN
}
_generic.v
}
time_info GENERIC
# generate a summary for the current stage of synthesis
write_reports -directory
${REPORTS_PATH}
-tag generic
write_db
${OUTPUTS_PATH}
/$
{
DESIGN
}
_generic.db
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
syn_map -physical
}
else
{
syn_map
}
time_info MAPPED
# generate a summary for the current stage of synthesis
write_reports -directory
${REPORTS_PATH}
-tag map
write_db
${OUTPUTS_PATH}
/$
{
DESIGN
}
_map.db
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
syn_opt -spatial
}
else
{
syn_opt
}
time_info OPT
write_db
${OUTPUTS_PATH}
/$
{
DESIGN
}
_opt.db
##############################################################################
# Write reports
##############################################################################
# summarizes the information, warnings and errors
report_messages >
${REPORTS_PATH}
/$
{
DESIGN
}
_messages.rpt
# generate PPA reports
report_gates >
${REPORTS_PATH}
/$
{
DESIGN
}
_gates.rpt
report_power >
${REPORTS_PATH}
/$
{
DESIGN
}
_power.rpt
report_area >
${REPORTS_PATH}
/$
{
DESIGN
}
_power.rpt
write_reports -directory
${REPORTS_PATH}
-tag final
if
{[
info
exist ::env
(
PHY_SYNTH
)]
&&
$::env
(
PHY_SYNTH
)
== 1
}
{
write_design -innovus -base_name
${HANDOFF_PATH}
/$
{
DESIGN
}
exec cp
${HANDOFF_PATH}
/$
{
DESIGN
}
.CON.sdc
${HANDOFF_PATH}
/$
{
DESIGN
}
.sdc
}
else
{
write_sdc >$
{
HANDOFF_PATH
}
/$
{
DESIGN
}
.sdc
write_hdl >
${HANDOFF_PATH}
/$
{
DESIGN
}
.v
}
exit
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment