Chris
07/05/2023, 11:14 PMmf
of mimcap
, I looked into the SKY130 spice model of mimcap
and see there is a definition of mf
, but when using xschem to export the netlist, there are both m
and mf
defined for the capacitor. I noticed that these two parameters are generally the same. What is the difference between m
and mf
here? Or is this some sort of artifact to avoid some script conversion error? And what if these two parameters are not with the same value? Thanks!Stefan Schippers
07/06/2023, 7:18 AMmf
in xschem for a mimcap (example: mf=2
) it will emit a netlist line with m=2
and mf=2
.
the mf
is just a copy of he m
instance multiplier. It is created to make this multiplier parameter available inside the mimcap model. For some unclear reason the multiplier m
parameter can not be used inside a model equation. This is done also for mosfets, where mult
and m
are set to the same value, mult
only present to make it available inside the model definition.
see in below cap_mim_m3_1
spice model the mf
parameter used in capacitance mismatch estimation:
* SKY130 Spice File.
.subckt sky130_fd_pr__cap_mim_m3_1 c0 c1 w=1 l=1 mf=1
.param wc = 'w+m3_dw*1e6+tol_m3*1e6'
.param lc = 'l+m3_dw*1e6+tol_m3*1e6'
.param via3_spacing = '(0.17+0.25+0.140)*(0.17+0.25+0.140)'
.param num_contacts = '(wc*lc/via3_spacing)'
.param r1 = 'rm3*(lc)/(wc)'
.param r2 = 'rcvia3/num_contacts'
.param carea = 'camimc*(wc)*(lc)'
.param cperim = 'cpmimc*((wc)+(lc))*2'
.param czero = 'carea + cperim+MC_MM_SWITCH*AGAUSS(0,1.0,1)*0.01*2.8*(carea + cperim)/sqrt(wc*lc**mf*)'
c1 c0 a 'czero' tc1 = 0 tc2 = 0.0
rs1 a b1 'r1' tc1 = {tc1rm3} tc2 = {tc2rm3}
rs2 b1 c1 'r2' tc1 = {tc1rvia3} tc2 = {tc2rvia3}
.ends sky130_fd_pr__cap_mim_m3_1
Chris
07/06/2023, 6:00 PMLinen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.
Powered by