From dfe3a4defd6c8f0ff4daf3c390e7def442b8fb90 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Tue, 12 Sep 2023 11:52:15 -0400 Subject: [PATCH] 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). --- tcltk/cellmgr.tcl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tcltk/cellmgr.tcl b/tcltk/cellmgr.tcl index 5f715857..a239b81c 100644 --- a/tcltk/cellmgr.tcl +++ b/tcltk/cellmgr.tcl @@ -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:"