-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intalling the techno files for gf180mcu_c4m from CRL. #73
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to clash with #76
path = None | ||
for pathVar in [ 'PATH', 'path' ]: | ||
if pathVar in os.environ: | ||
path = os.environ[ pathVar ] | ||
os.environ[ pathVar ] = path + ':' + (Where.allianceTop / 'bin').as_posix() | ||
break | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
alliance as a dependency?
path = None | ||
for pathVar in [ 'PATH', 'path' ]: | ||
if pathVar in os.environ: | ||
path = os.environ[ pathVar ] | ||
os.environ[ pathVar ] = path + ':' + (Where.allianceTop / 'bin').as_posix() | ||
break |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
alliance a dependency?
A preview of ff4738f is uploaded and can be seen here: ✨ https://lip6.github.io/coriolis/pull/73/ ✨ Changes may take a few minutes to propagate. Since this is a preview of production, content with |
* Returns the set of biggest rectangles inscribed inside the Rectilinear. This is *not* a partition, the rectangles overlaps. This is intended for the router to select the biggest rectangle in the direction he sees fit and making it a RoutingPad.
This is pursing me!
* Instead of choosing the kind of segments in accordance to the rounting gauge, use the form factor of the rectangle.
* In AnabaticEngine::loadGlobalRouting(), call relaxOverConstraineds() only if M1 is vertical (may write another one for M1 horizontal). * In AnabaticEngine::computeEdgeCapacities(), don't complain for offgrid M1 if it is allowed... * In AutoContactTerminal::updateGeometry(), implement dragging on horizontal M1. * In AutoSegment::getExtensionCap(), manage the case when neither source nor target is requested. Return the bottom layer cap in that instance (for M1 terminals). * In AutoVertical::updatePositions(), on non-preferred segments, the extention must be further extendend as to include perpendiculars axis of tracks that we may impact. * In AutoHorizontal::updatePositions(), idem. * In Configuration::selectRpComponent(), detect M1 offgrid components and flag them. HSmall & VSmall are now forced to be flagged as *punctual*. * In NetBuilderHV, support for M1 offgrid terminals. Systematically use doRp_Accesss() and never call directly doRp_AutoContacts(). * In NetBuilderVH, general overhaul & bug fixes. * In RoutingPad, add a flag to tell that a component has been selected. * In RoutingPlane::getTrackByPosition(), add failsafe when we are before the first track axis or after the last.
* TrackBlockage do not rely on an existing AutoSegment, or even a Segment, it is a portion of Track that we declare as blocked. * Used to manage the blockages coming for the LocalOnly planes, typically terminal planes. As it is not related to a Segment, we do not need to flatten the obstacles coming from the standard cells (would be a lot of them). * In PowerRails, also support blockages from Rectilinear, decomposed in vertical rectangles. * In Session, add a mechanism for TrackElement that have been put in their track *before* closing the session (used for TrackBlockage).
* Renaming TrackBlockage into a more flexible TrackFixedSpan than can handle both blockage and terminal reservation. Allow to change the associated net of a TrackFixedSegment, to easily manage conflicts. * Manage the segment unbreakble flag at the AutoSegment::create() flag level (need to be added to Constant). * In AutoSegment::makeDogleg(AutoContact*), don't check if the break point is under the source/target GCell, in some case it could be slightly outside (SegForOffgrid case). * In AutoSegment::create(), get the correct wire with for metal1 segments. * In RoutingPad, add the ability to manually select what is to be considered as the center of the RP. See Configuration::selectRpComponent(). * In Configuration::selectRpComponent(), force the center of the RoutingPad so it is in the GCell that have an accessible track (due to offgrid). * In Disjkstra::load(), use RoutingPad::getUserCenter() to locate the relevant GCell. * In NetBuilderVH::doRp_Access(), more complex creation of wiring for offgrid metal1 terminals. Allow local metal2 to be one track outside it's owning GCell (set the SegForOffgrid flag). * In Anabatic::propagateConstraintsFromRp(), manage the case of offgrid RoutingPad. Allow a one pitch margin on each side (widow of two pitchs which should contains at least a grid point). * In GlobalRoute::runGlobalRouter(), protect the RoutingPad in Constant::LocalOnly layer gauge. * In protectRoutingpads(), manage conflicts when a part of a track may be reached by multiple terminals or overlap a blockage. Use a simple strategy : in case of overlap, change into blockage. Session must be revalidated after each terminal so the tracks are up to date for overlap search for the next one. * In RoutingEvent::revalidate(), expand the track axis constraint of one pitch in case of an offgrid flagged segment (set in NetBuilderVH::doRp_Access()). * In Track::getBeginIndex(), finally manage the case where consecutive segments of a same net are *not* overlapping (was assumed so before). * In Track::expandFreeInterval(), fix wrong management of the case BeginIsSegmentMax with a begin index of 0. This is a very corner case causing error only at the very beginning of a track. * New proxy method TrackElement::isForOffgrid().
* In AutoContact, add a flag to tag metal-only contact (for offgrid segments on metal1 mostly. * In DataNegociate::update(), when computing perpandicular constraints, when processing a non-pref, if S/T is metal-only, add a one pitch slack. * In PowerPlanes, when decomposing Rectilinear, do it *perpandicular* to the preferred routing direction. If it's horizontal, then slice vertically. * In protectRoutingpads(), full rework on how the track fixed span intervals are computeds. Must give a set of non-overlaping ones. So if they are changed into blockages they won't generate overlaps in tracks. * In Track, beginning of support for partial reorder (may give some speed-up in the end).
* Restrict the RoutingPad boxes to the cell abutment box. * Check that there are overlaping bounds returned by Tracks::getOverlapBounds(). * Pass the current net to Track::getFreeInterval(), so it is not considered a blockage...
* Returns the set of biggest rectangles inscribed inside the Rectilinear. This is *not* a partition, the rectangles overlaps. This is intended for the router to select the biggest rectangle in the direction he sees fit and making it a RoutingPad.
* In AnabaticEngine::loadGlobalRouting(), call relaxOverConstraineds() only if M1 is vertical (may write another one for M1 horizontal). * In AnabaticEngine::computeEdgeCapacities(), don't complain for offgrid M1 if it is allowed... * In AutoContactTerminal::updateGeometry(), implement dragging on horizontal M1. * In AutoSegment::getExtensionCap(), manage the case when neither source nor target is requested. Return the bottom layer cap in that instance (for M1 terminals). * In AutoVertical::updatePositions(), on non-preferred segments, the extention must be further extendend as to include perpendiculars axis of tracks that we may impact. * In AutoHorizontal::updatePositions(), idem. * In Configuration::selectRpComponent(), detect M1 offgrid components and flag them. HSmall & VSmall are now forced to be flagged as *punctual*. * In NetBuilderHV, support for M1 offgrid terminals. Systematically use doRp_Accesss() and never call directly doRp_AutoContacts(). * In NetBuilderVH, general overhaul & bug fixes. * In RoutingPad, add a flag to tell that a component has been selected. * In RoutingPlane::getTrackByPosition(), add failsafe when we are before the first track axis or after the last.
ff4738f
to
6a5204b
Compare
This should have be already integrated trough the merge of |
Continuation of the
wip-gf180mcu-2
branch (skipped botched attempt withwip-gf180mcu_c4m-3
).