hi everyone. Suppose I instantiate a MOS in Xschem...
# magic
a
hi everyone. Suppose I instantiate a MOS in Xschem and tell it to be
W=10
and
nf=2
. When I open up an empty
.mag
file in Magic and do
Import SPICE
, I get a MOS with truly 2 fingers, each 5 width, so that's great. However, the diffusion contacts are overlapped... That, itself, wouldn't be a problem - if I Magic was able to extract the middle node as source. What Magic does at extraction is: • it calls the left diffusion of the left finger a source, and its right diffusion a drain. • it calls the left diffusion of the right finger a source, and its right diffusion a drain. That, further, means that these two fingers are actually connected in series... and I don't want that. Can I perform
Import SPICE
in a way that MOS devices with multiple fingers are generated without diffusion contacts overlapping? Or, even better, can I get them with diffusion contacts overlapping, but in such a way that diffusions are treated as:
D (finger1) S (finger2) D
so that both left and right finger get source contact in the middle?
hi @권용진학부생, sorry to bother you, but I just noticed you were active couple of hours ago responding to an interesting topic (thanks so much, I didn't know about
Ctrl+P
<-- I would simply delete & create again) and I see you are still online - do you maybe know how to deal with my question in this thread?
m
@Alexander Shabarshin for mosfet cmos devices, the extractor can not determine the difference between the source and drain. In order to realize your device W=10 and nf=2, you’ll need to connect the left “source” with the right “drain” for LVS to recognize them as parallel and reduce them accordingly. You might try W=5 mult=2 to get 2 discrete transistors.
a
hi @Mitch Bailey, thanks so much for response. I tried with
m
first, however, it stacks them on top, i.e. in vertical,
y
dimension, how to call it, whereas I need them side by side, i.e. in horizontal,
x
dimension of the screen. Is there any way we could send the instruction through the netlist for magic not to overlap diffusion?
m
not sure. Is there a parameter to place them horizontally in the device generator (maybe check with crtl-P after reading the netlist). Normally, diffusion overlaps in multi-finger mosfet. What is the problem again?
a
The problem is that diffusion overlaps in the following way:
Copy code
S1 (finger1) D1/S2 (finger2 ) D2
making the middle diffusion drain for the first subMOS (so to call it, i.e. finger) and at the same time source of the second subMOS. What I would like to achieve is either:
Copy code
S1 (finger1) D1/D2 (finger2) S2
or (better):
Copy code
D1 (finger1) S1/S2 (finger2) D2
So, overlap itself is not a problem. The problem is that Magic at extract time thinks by default these transistors are connected in series (drain of one to source of two), whereas I need them in parallel (drain of one to drain of two). Thanks!
t
@Aleksandar Pajkanovic: There isn't much in the way of information in the schematic to tell magic how to draw the devices, so most manipulation will have to be done by hand after importing. (Maybe Stefan Schippers and I could work out a set of comments in SPICE that would tell magic how to draw the devices?) But in the dialog for a FET device, there is a checkbox "Overlap at diffusion contact". If you uncheck that box, you will get multiple non-overlapping devices. You can also tag the source and drain with a label by putting a point label on the boundary between gate and source or gate and drain with the text
S$
for source or
D$
for drain. This will force magic to extract source and drain as marked. I do not have a method in the FET dialog for tagging sources and drains (I should add one!) so you will need to do it manually.
(Manual edits to an auto-generated device are possible; just be aware that manual edits will get deleted whenever you change something in the cell and click on "Apply" in the dialog. Yet another reason for adding the S/D tagging as an option in the dialog.)
m
@Aleksandar Pajkanovic if your devices are symmetrical, than it doesn’t matter which side is extracted as the source and which side is extracted as the drain. netgen permutes the first and third terminals of mosfet devices which means either one can match a source or a drain in the other netlist.
a
Thanks @Tim Edwards and @Mitch Bailey for clarifications. Tim, that's actually how I went about - basically, after
Import SPICE
I went around and recreated every MOS by removing the one with fingers whose diffusions are overlapping and then instantiating the same one with just unticking the Overlap diffusion contact. It wasn't that much of an issue for 8 transistors, but still I just wanted to make sure I am not missing something. Thanks for the reminder on `S$`/`D$` <== completely forgot about those! David, thanks for pointing that out! I knew that drain/source side for symmetrical devices doesn't matter, but I saw magic taking it always in one direction - I had no idea netgen permutes them... I'll test it, thanks.