v {xschem version=2.9.8 file_version=1.2

* Copyright 2021 Stefan Frederik Schippers
* 
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.

}
G {}
K {type=nmos
format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
+ nf=@nf ad='int(( @nf + 1)/2) * @W / @nf * 0.29'  as='int(( @nf +2)/2) * @W / @nf * 0.29' pd='2*int(( @nf +1)/2) * ( @W / @nf + 0.29)' ps='2*int(( @nf +2)/2) * ( @W / @nf + 0.29)'
+ nrd='0.29 / @W ' nrs='0.29 / @W ' sa=@sa sb=@sb sd=@sd 
+ mult=@mult m=@mult"
template="name=M1
L=0.5
W=1
nf=1
mult=1
sa=0 sb=0 sd=0
model=nfet_03v3_nvt
spiceprefix=X
"}
V {}
S {}
E {}
L 4 20 -30 20 -17.5 {}
L 4 20 17.5 20 30 {}
L 4 7.5 -17.5 20 -17.5 {}
L 4 7.5 17.5 15 17.5 {}
L 4 -20 -0 -2.5 0 {}
L 4 7.5 -22.5 7.5 -12.5 {}
L 4 7.5 12.5 7.5 22.5 {}
L 4 7.5 -5 7.5 5 {}
B 5 17.5 -32.5 22.5 -27.5 {name=D dir=inout}
B 5 -22.5 -2.5 -17.5 2.5 {name=G dir=in}
B 5 17.5 27.5 22.5 32.5 {name=S dir=inout}
B 5 19.921875 -0.078125 20.078125 0.078125 {name=B dir=in}
P 4 4 15 15 20 17.5 15 20 15 15 {fill=true}
P 4 5 -2.5 15 -2.5 -15 2.5 -15 2.5 15 -2.5 15 {}
P 5 4 20 -2.5 15 0 20 2.5 20 -2.5 {fill=true}
T {3V} 5 17.5 0 1 0.2 0.2 { layer=4}
T {@name} 5 -30 0 1 0.2 0.2 {}
T {S} 22.5 17.5 0 0 0.15 0.15 {layer=7}
T {D} 22.5 -17.5 2 1 0.15 0.15 {layer=7}
T {B} 20 -10 0 0 0.15 0.15 {layer=7}
T {G} -10 -10 0 1 0.15 0.15 {layer=7}
T {@model} 30 -8.75 2 1 0.2 0.2 {}
T {@mult x @W / @L} 31.25 11.25 0 0 0.2 0.2 { layer=13}
