Weird behavior in meshing on octave interface #171
-
|
Hello, I'm trying to run a simulation of a microstrip line on the substrate configuration of the open-source sky130 CMOS technology. I'm using a complete representation of its substrate layers and I'm trying to get the mesh on the z coordinate to run properly. I'm getting a very weird behavior of a lot of lines bunching up at the bottom of the signal and ground metals, and after spending the best part of the evening trying to debug it, I basically gave up... Here's my simulation code. It's based on a similar code written to simulate an inductor on IHP SG13G2 technology (https://github.com/IHP-GmbH/IHP-Open-PDK/tree/main/ihp-sg13g2/libs.tech/openems/testcase/SG13_Octagon_L2n0/OpenEMS_Matlab): Also, when I open CSXCAD, I get an error message saying that most of my materials have no properties, and Sub_Metal2 represents almost all of my substrates... Could someone take a look and tell me what I'm missing? :) |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 10 replies
-
|
Hi Leo, I am the author of the IHP SG13G2 model example, and tried to debug your model now. Everything looks ok if we remove the metal and via definitions and meshing. To find out what actually causes your problem, I recommend that you build this step by step, one metal layer after another and one via layer after another. I suspect that you have some ultra-thin layer somewhere, due to a typo.
No, the warning is that you have no geometries in certain properties. That means you have no geometries on many of the layers that you defined. This is actually true and correct regarding metal and via layers, but the message also complains about Sub_Metal3 and Sub_Metal4 and Sub_Metal5 which are some of your inter-metal dielectrics. That last part looks definitely wrong, so check your dielectric stackup carefully before even adding metal and via layers! EDIT: this last issue is simple copy & paste mistake, you added the boxes to the wrong dielectric layer. So my advice here is really to go step by step, and check everything early in AppCSXCAD! Build your dielectrics, then build your metal layers one after another, and check that they appear at the correct z position, before you even add code to do the z-meshing of metals. Then add the vias, step by step. Best regards |
Beta Was this translation helpful? Give feedback.
-
|
Dully noted @VolkerMuehlhaus , thank you so much again! By the way, by only one cell you mean two Z points, top and bottom? Or just the top (or bottom) one? |
Beta Was this translation helpful? Give feedback.
-
|
And here's a better meshing! Now to run the FDTD. |
Beta Was this translation helpful? Give feedback.
-
|
I deleted the comment because I wanted to let it finish before asking for help again. However, after some 7h the energy struggles to descend below -40dB (after taking about 2h to start decreasing). So, yes, mesh is over-dense, you're right. Today I plan to experiment with it before launching another run. Also, after your own experience, simplifying the dielectric leads to any speed improvement? |
Beta Was this translation helpful? Give feedback.




Hello again,
I stripped down your model, temporarily removed all the mesh line code in the metals and vias, and placed a metal polygon on each metal layer.
The metal positions look ok, but you see that we already have some z-mesh lines in the region from Metal1 to Metal5, although I had removed the additional z-mesh code that you added for each metal layer. Note that some mesh lines are very close to the top/bottom position of the metals. I think what went wrong with your original code is that you had a combination (overlap) of the mesh lines shown above plus the linespace() mesh lines across the metal height. The issue is that this can result in mesh lines which are extremely close (=> …