lip6 / coriolis

Coriolis VLSI EDA Tool (LIP6)
https://coriolis.lip6.fr
GNU General Public License v2.0
44 stars 5 forks source link

GDS parse fixes (text layer to have datatype and aref bug) #120

Closed lanserge closed 5 months ago

lanserge commented 5 months ago

Fixed gds parser to use type in the textbody as datatype for the gds layer.

Fixed aref parsing bug: previously first dx, dy were calculated from xy points and then transformed, also the first point(origin) was not transformed and all these resulted(in case of 90, 270 degrees when axis swap) in wrong coordinates and one of dx or dy wrongly been zero, now changed to transform xy points first and then calcualate dx, dy.

lanserge commented 5 months ago

Example of bug in the AREF:

angle=270, columns=13, rows=1, xy: [(110665, 66080), (110665, 61400), (110665, 66080)]

after:

dx = (arrayArea[1].getX() - arrayArea[0].getX()) / columns; // arrayArea is xy dy = (arrayArea[2].getY() - arrayArea[0].getY()) / rows;

the dx will be zero and dy will be zero and any further swaps and change of sign don't effect them.

The xy needs to be transformed first(axes will swap as angle is 270) and then dx, dy should be calculated.

jpc-lip6 commented 5 months ago

Did you checked it on the GF180 SRAM ?

It was not too easy for me to test your modification before merging, so I did it. But, after checking on the SRAM you can see that the AREF that makes the bits matrix are completely offgrid. Could you please have a look at it ? Where was the problem you encoutered ?