//Program power_plane_circuit_model.sci //Circuit model for power plane impedance with decoupling. //Lines ending in ? can be editted to change the program parameters. // f0=100.0e3;// Initial frequency for Bode plot ? f1=9.99e9;// Final frequency for Bode plot ? //Bare board inductance and capacitance must be supplied from a field solution. L=116.5e-12;// Bare board inductance ? C=3.714e-9;// Bare board capacitance ? // ************** Decoupling caps ? ************** //These arrays specify the decoupling caps by species. The array sn is the //number of caps in each species on the board. Cd is the cap value for each species, //Lesl is the effective series inductance for each species and Resr is the effective //series resistance for each species. These values are just used in the argument //list of the function standard_cap to calculate the discrete impedance Zd. sn= [1 ,3 ,3 ,0 ,37 ,0 ,0 ,0 ,0 ]; Cd= [470.0e-6,10.0e-6,1.0e-6 ,330.0e-9,100.0e-9,33.0e-9 ,10.0e-9 ,3.3e-9 ,1.0e-9 ]; Lesl=[4.0e-9 ,1.5e-9 ,1.5e-9 ,1.5e-9 ,1.5e-9 ,1.5e-9 ,1.5e-9 ,1.5e-9 ,1.5e-9 ]; Resr=[19.0e-3 ,20.0e-3,20.0e-3,40.0e-3 ,60.0e-3 ,130.0e-3,200.0e-3,300.0e-3,400.0e-3]; //*********************************************** // // ************ Start of the code ******************* s=poly(0,"s");//Laplace transform variable Y=s*C;//Y will be the total admittance for j=1:length(sn), if sn(j)>0 then Zj=(s*Lesl(j)+1/(s*Cd(j))+Resr(j))/sn(j);//Impedance of jth species Yj=1/Zj;//Admittance of jth species Y=Y+Yj; end; end; Z=s*L+1/Y; s1=syslin('c',Z); bode(s1,f0,f1,0.01);