<@U016EM8L91B> If I create a 5x5 array and then ge...
# magic
t
@User If I create a 5x5 array and then generate the GDS it's even worse (see the purple hash in the attached image).
t
Sheesh, I thought I fixed all those array counting errors years ago. Thanks for the examples. I will look into it.
The error is reproducible; I can see what it is going to do in the output from the magic layout view with the command
cif *array PSDM
. I'll let you know when I have this fixed. The weird thing here is that I don't know why it is trying to do array processing at all; the PSDM covers the whole area and doesn't need to be extended. So you could get rid of it by doing
cif *hier array disable
before doing
gds write
, but that could cause other issues in other cells, so it's best to let me go ahead and fix it.
t
Ok. Thanks, @Tim Edwards. I'm glad the examples are useful
t
I think I managed to fix this today. Looking into it, it appears that the array processing algorithm (which is something like 35 years old) has some faulty assumptions that don't work with the parameters of the sky130 process. That allowed the array processing to copy stuff outside the bounds of the array. I got rid of that behavior, but the algorithm is complex and I don't know that all my assumptions are correct, either. It does behave correctly now on your circuit, though.
t
Ok thanks, Tim. Are you relatively confident that the assumptions you made while fixing it don'r break anything else? I guess what I'm asking is should I use the new version of use the old and just work around it?
t
I'm generally confident that the changes work for the SkyWater process, worried more about breaking backwards compatibility with other processes I have tech files for (e.g., X-Fab on the efabless platform). Ultimately, the kind of errors that bug produces would get caught by the Calibre checks, so it wouldn't go to manufacture like that.
👍 1
t
Ok