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
1b8753e0
Commit
1b8753e0
authored
Oct 09, 2022
by
sakundu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated def generation from plc and pl
Signed-off-by: sakundu <sakundu@ucsd.edu>
parent
c462529e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
13 deletions
+23
-13
Flows/util/gen_macro_place_def.sh
+3
-1
Flows/util/gen_macro_place_def.tcl
+4
-1
Flows/util/place_from_pl.tcl
+16
-11
No files found.
Flows/util/gen_macro_place_def.sh
View file @
1b8753e0
#!/bin/tcsh
#!/bin/tcsh
## Set to 1 to run refine_macro_place ##
## Set to 1 to run refine_macro_place ##
setenv run_refine_macro_place
0
setenv run_refine_macro_place
1
setenv SYN_HANDOFF
$argv
[
1]
setenv SYN_HANDOFF
$argv
[
1]
if
(
$#argv
==
3
)
then
if
(
$#argv
==
3
)
then
setenv pb_netlist
$argv
[
2]
setenv pb_netlist
$argv
[
2]
setenv plc_file
$argv
[
3]
setenv plc_file
$argv
[
3]
else if
(
$#argv
==
2
)
then
setenv pl_file
$argv
[
2]
else
else
echo
"Required clustered netlist and plc file to generate macro placed defs"
echo
"Required clustered netlist and plc file to generate macro placed defs"
endif
endif
...
...
Flows/util/gen_macro_place_def.tcl
View file @
1b8753e0
...
@@ -56,9 +56,12 @@ if {[info exist ::env(pb_netlist)] &&
...
@@ -56,9 +56,12 @@ if {[info exist ::env(pb_netlist)] &&
exec /home/sakundu/.conda/envs/py-tf/bin/python3.8
\
exec /home/sakundu/.conda/envs/py-tf/bin/python3.8
\
../../../../util/plc_pb_to_placement_tcl.py
$::env
(
plc_file
)
$::env
(
pb_netlist
)
\
../../../../util/plc_pb_to_placement_tcl.py
$::env
(
plc_file
)
$::env
(
pb_netlist
)
\
"macro_place.tcl"
$origin
_x
$origin
_y
"macro_place.tcl"
$origin
_x
$origin
_y
source macro_place.tcl
}
else
if
{
[
info
exist ::env
(
pl_file
)]
&&
[
file
exist
$::env
(
pl_file
)]
}
{
source ../../../../util/place_from_pl.tcl
place_macro_from_pl
$::env
(
pl_file
)
}
}
source
macro_place.tcl
if
{
[
info
exist ::env
(
run_refine_macro_place
)]
&&
$::env
(
run_refine_macro_place
)
== 1
}
{
if
{
[
info
exist ::env
(
run_refine_macro_place
)]
&&
$::env
(
run_refine_macro_place
)
== 1
}
{
dbset
[
dbget top.insts.cell.subClass block -p2
]
.pStatus placed
dbset
[
dbget top.insts.cell.subClass block -p2
]
.pStatus placed
...
...
Flows/util/place_from_pl.tcl
View file @
1b8753e0
...
@@ -21,22 +21,28 @@ proc get_orient { tmp_orient } {
...
@@ -21,22 +21,28 @@ proc get_orient { tmp_orient } {
return
$orient
return
$orient
}
}
proc
place_macro_from_pl
{
file_path
}
{
proc
place_macro_from_pl
{
file_path
{
place_std 0
}
}
{
set dbu 100
set dbu 100
set fp
[
open
$file
_path r
]
set fp
[
open
$file
_path r
]
while
{
[
gets
$fp
line
]
>= 0
}
{
while
{
[
gets
$fp
line
]
>= 0
}
{
if
{[
llength
$line
]
=
= 7
}
{
if
{[
llength
$line
]
>= 6 &&
[
llength
$line
]
<
= 7
}
{
set inst_name
[
lindex
$line
0
]
set inst_name
[
lindex
$line
0
]
puts
"
$inst
_name"
#puts
"
$inst
_name"
set pt_x
[
expr
[
lindex
$line
1
]
/$dbu
]
set pt_y
[
expr
[
lindex
$line
2
]
/$dbu
]
set tmp_orient
[
expr
[
lindex
$line
5
]]
set orient
[
get_orient
$tmp
_orient
]
if
{[
dbget top.insts.name
$inst
_name -e
]
==
""
}
{
if
{[
dbget top.insts.name
$inst
_name -e
]
==
""
}
{
puts
"
\[
ERROR
\]
$inst
_name does not exists."
#
puts
"
\[
ERROR
\]
$inst
_name does not exists."
}
else
{
}
else
{
placeInstance
$inst
_name
$pt
_x
$pt
_y
$orient
-fixed
set pt_x
[
expr
[
lindex
$line
1
]
/$dbu
]
set pt_y
[
expr
[
lindex
$line
2
]
/$dbu
]
set tmp_orient
[
expr
[
lindex
$line
5
]]
set orient
[
get_orient
$tmp
_orient
]
if
{[
dbget
[
dbget top.insts.name
$inst
_name -p
]
.cell.subClass block -e
]
!=
""
}
{
puts
"Placing
$inst
_name"
placeInstance
$inst
_name
$pt
_x
$pt
_y
$orient
-placed
}
if
{
$place
_std == 1 &&
[
dbget
[
dbget top.insts.name
$inst
_name -p
]
.cell.subClass core -e
]
!=
""
}
{
placeInstance
$inst
_name
$pt
_x
$pt
_y
}
}
}
}
}
}
}
}
}
\ No newline at end of file
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