Added a "Place" button in the cell manager after realizing that

other commands like "Place Instance" and "Library Manager" do not
track cells in the internal database, and so are unable to place
a cell instance that does not have a corresponding file on disk
(e.g., a cell read from GDS or LEF).
This commit is contained in:
Tim Edwards 2023-09-12 11:52:15 -04:00
parent 68a088943f
commit dfe3a4defd
1 changed files with 6 additions and 1 deletions

View File

@ -34,6 +34,7 @@ proc magic::instcallback {command} {
if { $cellpath == {} } {
switch $command {
load {$winname load $rootdef}
place {$winname getcell $rootdef}
default {
magic::select top cell
switch $command {
@ -51,6 +52,7 @@ proc magic::instcallback {command} {
switch $command {
load {$winname load $celldef}
place {$winname getcell $celldef}
default {
# Here: need to check first for the select cell belonging to the
# current loaded root cell (get the first use).
@ -105,11 +107,14 @@ proc magic::makecellmanager { mgrpath } {
button ${mgrpath}.actionbar.edit -text "Edit" -command {magic::instcallback edit}
button ${mgrpath}.actionbar.load -text "Load" -command {magic::instcallback load}
button ${mgrpath}.actionbar.expand -text "Expand" -command \
{magic::instcallback expand}
{magic::instcallback expand}
button ${mgrpath}.actionbar.place -text "Place" -command \
{magic::instcallback place}
pack ${mgrpath}.actionbar.load -side left
pack ${mgrpath}.actionbar.edit -side left
pack ${mgrpath}.actionbar.expand -side left
pack ${mgrpath}.actionbar.place -side left
pack ${mgrpath}.actionbar.done -side right
label ${mgrpath}.target.name -text "Target window:"