[Magic-dev] Magic stacked contact bug...
Philippe Pouliquen
philippe at alpha.ece.jhu.edu
Sat May 17 13:47:19 EDT 2008
Hi All,
There seems to be a couple bugs in Magic's stacked contacts or possibly
I'm writing my techfiles incorrectly. These two bugs seem to have been
around for a while, and no one else seems to have reported any trouble, so
I'm suspicious that that the latter may be the problem. On the other
hand, I let my students have a go at 7.5.115, so possibly it's gotten a
little more exposure than usual. Anyway, these two bugs are definitely in
versions as early as 7.5.108, and also present in the current version
7.5.137.
The first bug is that when you use stretch to move a contact at the end of
a wire (by more than the contact size), the wire should shrink in length,
but this only occurs for one of the contact's residue types. You can
observe this problem in the attached layout with the long command:
box 0 0 4 4 ; select area ; stretch u 10
The metal 1 will be shortened as normal, but the metal 2 does not. A
temporary work-around is to move in steps of 4 or less -- but that brings
us to the second bug.
The second bug is more insidious. If you move a stack of three contacts
more than once, the middle contact is dropped. This occurs if you move
something diagonally, as the move has to be done with two separate
"Manhattan" moves. (I don't know if stacks of four or more are affected
as I haven't been working with a techfile that had that many stackable
contacts lately.) You can duplicate this problem in the sample layout
with the command:
box 20 0 24 4 ; select area ; move r 10 ; move u 10
You can see that the middle contact has been dropped from the selection by
inserting a "what" command around the moves. Note that on the second
move, you will get a warning about "You selected paint outside the edit
cell..." This warning might be generated anyway if your original
selection contained paint in a subcell, so who pays attention :-)
A temporary work-around is to modify the command to be:
box 20 0 24 4 ; select area ; move r 10 ; select area ; move u 10
but it's not that useful for complicated selection patterns. For those,
you just need to do a "move to ...".
Philippe Pouliquen
The Johns Hopkins University
-------------- next part --------------
magic
tech simple
timestamp 1211041433
<< metal1 >>
rect 0 4 4 28
rect 10 0 14 4
<< metal2 >>
rect 0 4 4 28
rect 10 8 14 12
<< metal3 >>
rect 10 16 14 20
<< metal4 >>
rect 10 24 14 28
<< m12contact >>
rect 0 0 4 4
rect 10 4 14 8
rect 20 0 24 4
<< m23contact >>
rect 10 12 14 16
rect 20 0 24 4
<< m34contact >>
rect 10 20 14 24
rect 20 0 24 4
<< end >>
-------------- next part --------------
tech
format 33
simple
end
version
version 1
description "Magic debug"
end
planes
metal1,m1
metal2,m2
metal3,m3
metal4,m4
end
types
metal1 metal1,m1
metal2 metal2,m2
metal3 metal3,m3
metal4 metal4,m4
metal1 m12contact,m12c
metal2 m23contact,m23c
metal3 m34contact,m34c
end
contact
m12c m1 m2
m23c m2 m3
m34c m3 m4
stackable
end
styles
styletype mos
m1 20
m2 21
m3 22
m4 23
m12c 20
m12c 21
m12c 33
m23c 21
m23c 22
m23c 37
m34c 22
m34c 23
m34c 38
error_p 42
error_s 42
error_ps 42
end
compose
end
connect
m1,m12c/m1 m1,m12c/m1
m2,m12c/m2,m23c/m2 m2,m12c/m2,m23c/m2
m3,m23c/m3,m34c/m3 m3,m23c/m3,m34c/m3
m4,m34c/m4 m4,m34c/m4
end
cifoutput
end
cifinput
end
# mzrouter
# end
drc
end
extract
style debug
planeorder metal1 0
planeorder metal2 1
planeorder metal3 2
planeorder metal4 3
end
# wiring
# end
# router
# end
# plowing
# end
# plot
# end
More information about the magic-dev
mailing list