Hi <@U02A4K5TG5B> I know you had some very nice wo...
# sky130
c
Hi @Leonardo Gomes I know you had some very nice work on EM simulations using IHP PDK and have a modified script for gds to matlab conversion for SKY130. Do you happen to have a SKY130 matlab script for actually running the EM simulation? I am specifically looking for the SKY130 material stackup information. If I can find this information I can adapt it to matlab script format that openEMS understands Here is that particular code section for IHP130 for a few of the layers.
Copy code
%%%%%%%%%%%%%%%%%%%%%%%%%  SG13G2 stackup  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% silicon substrate
CSX = AddMaterial( CSX, 'Sub' );
CSX = SetMaterialProperty( CSX, 'Sub', 'Epsilon', 11.9, 'Kappa', 2 );
Sub.thick = 280;
Sub.zmin = 0;
Sub.zmax = Sub.zmin + Sub.thick;

mesh.z = [linspace(Sub.zmin,Sub.zmax,20) ];


%% EPI
CSX = AddMaterial( CSX, 'EPI' );
CSX = SetMaterialProperty( CSX, 'EPI', 'Epsilon', 11.9, 'Kappa', 5 );
EPI.thick = 3.75;
EPI.zmin = Sub.zmax;
EPI.zmax = EPI.zmin + EPI.thick;

mesh.z = [mesh.z linspace(EPI.zmin,EPI.zmax,2)];


%% SiO2
CSX = AddMaterial( CSX, 'SiO2' );
CSX = SetMaterialProperty( CSX, 'SiO2', 'Epsilon', 4.1 );
SiO2.thick = 17.73;
SiO2.zmin = EPI.zmax;
SiO2.zmax = SiO2.zmin + SiO2.thick;

mesh.z = [mesh.z SiO2.zmin SiO2.zmax];


%% air above is background material, no need to place box, just add mesh line
Air.thick = 300;
Air.zmax = SiO2.zmax + Air.thick;
mesh.z = [mesh.z Air.zmax];


%% TopMetal2
TopMetal2.sigma = 30300000.0;
TopMetal2.thick = 3;
TopMetal2.zmin  = SiO2.zmin + 11.23;
TopMetal2.zmax  = TopMetal2.zmin + TopMetal2.thick;
CSX = AddMaterial( CSX, 'TopMetal2' );
CSX = SetMaterialProperty( CSX, 'TopMetal2', 'Kappa', TopMetal2.sigma );

mesh.z = [mesh.z linspace(TopMetal2.zmin,TopMetal2.zmax,3)];


%% TopMetal1
TopMetal1.sigma = 27800000.0;
TopMetal1.thick = 2;
TopMetal1.zmin  = SiO2.zmin + 6.43;
TopMetal1.zmax  = TopMetal1.zmin + TopMetal1.thick;
CSX = AddMaterial( CSX, 'TopMetal1' );
CSX = SetMaterialProperty( CSX, 'TopMetal1', 'Kappa', TopMetal1.sigma );

mesh.z = [mesh.z linspace(TopMetal1.zmin,TopMetal1.zmax,3)];

%% TopVia2
TopVia2.sigma = 3143000.0;
TopVia2.thick = 2.8;
TopVia2.zmin  = TopMetal1.zmax;
TopVia2.zmax  = TopVia2.zmin + TopVia2.thick;
CSX = AddMaterial( CSX, 'TopVia2' );
CSX = SetMaterialProperty( CSX, 'TopVia2', 'Kappa', TopVia2.sigma );
In this link I can see the height information but but not material information like conductivity. https://skywater-pdk.readthedocs.io/en/main/rules/assumptions.html
Update: I’ve found this person do something like this. I can get the material information from here, but would be nice to see the source documentation from SKY130 if anyone knows where this is explained. https://github.com/diadatp/sky130_rf_tools/blob/main/openems/create_sky130_geometry.matlab