[Libre-soc-bugs] [Bug 526] create dry-run 180nm GDS-II files for IMEC

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Nov 29 22:29:27 GMT 2020


https://bugs.libre-soc.org/show_bug.cgi?id=526

--- Comment #65 from Cole Poirier <colepoirier at gmail.com> ---
(In reply to Jean-Paul.Chaput from comment #64)
> [snip]
> * In your json file, you seems to have inverted vdd/vss on the I/O pads.
>   "vdd" should be connecteds to "power" and "vss" to "ground".
> 
> * The power pads are too far off the side, at least put one ordinary pad
>   at the very begin/end of each side.

This should hopefully resolve the error we were running into. Luke created the
hack/patch of changing the behavior of alpha/chip/corona.py from erroring when
a contact is outside rail corona X/Y range to just raising a warning, such that
the compilation would run to completion, but with errors in the P&R layout. See
diff below:

```
diff --git a/cumulus/src/plugins/alpha/chip/corona.py
b/cumulus/src/plugins/alpha/chip/corona.py
index c86fc70a..a19425aa 100644
--- a/cumulus/src/plugins/alpha/chip/corona.py
+++ b/cumulus/src/plugins/alpha/chip/corona.py
@@ -120,9 +120,9 @@ class HorizontalRail ( Rail ):
         if    contactBb.getXMin() < self.side.innerBb.getXMin() \
            or contactBb.getXMax() > self.side.innerBb.getXMax():
             trace( 550, '-' )
-            raise ErrorMessage( 1, [ '{} is outside rail/corona X
range,'.format(contact)
+            print ( WarningMessage( [ '{} is outside rail/corona X
range,'.format(contact)
                                   , 'power pad is likely to be to far off west
or east.'
-                                  , '(core:{})'.format(self.side.innerBb) ] ) 
+                                  , '(core:{})'.format(self.side.innerBb) ] )
)
         if self.vias.has_key(contact.getX()): return False
         trace( 550, '\tvias:{}\n'.format(self.vias) )
         keys = self.vias.keys()
@@ -232,9 +232,9 @@ class VerticalRail ( Rail ):
         contactBb = contact.getBoundingBox()
         if    contactBb.getYMin() < self.side.innerBb.getYMin() \
            or contactBb.getYMax() > self.side.innerBb.getYMax():
-            raise ErrorMessage( 1, [ '{} is outside rail/corona Y
range'.format(contact)
+            print ( WarningMessage( [ '{} is outside rail/corona Y
range'.format(contact)
                                    , 'power pad is likely to be to far off
north or south.'
-                                   , '(core:{})'.format(self.side.innerBb) ] ) 
+                                   , '(core:{})'.format(self.side.innerBb) ] )
)
```

> * Display is still abnormally slow. Another thing to look at after tapeout.

I have already investigated this because I was curious. I found the problem and
solution. Let's talk after the tapeout :)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list