Commit Graph

1196 Commits

Author SHA1 Message Date
Jean-Paul Chaput 8faade8bc6 * ./katabatic:
- New: In AutoSegment, adds a "_parent" attribute to keep track of the fragmentation
        processus. Currently used only for strap segments, points to the original
        segment in the appropriate direction (before the split).
    - New: In GCell & LayerAssign, new method of layer assignment. Move up
        the whole net trunk if only one of it's segment is inside an over-saturated
        GCell. AutoSegment are moved up only if there is at least 2 free tracks
        remaining on the upper level.
    - Change: In Session::_canonize(), uses the lowest segment Id as canonical.
        More reliable than geometricals criterions in the end. Assuming that the
        segments are being created in deterministic order, which *should* be the
        case consediring the way we are walking through the global routing.
    - Change: In AutoSegment, completly suppress the CompareCanonical(), replace
        it by the much simpler CompareId().
    - Change: In GCell::rpDesaturate(), stops desaturation when bottom density
        is under 0.5, otherwise we are causing a severe imbalance in M2/M4
        densities. All wires pushed up to M4...
    - Change: In ChipTools, for the Pad's RoutingPad, reslect the best component
        using the one in the lowest layer. To avoid problem when splitting
        AutoContact as we expect the base Contact to be on the lower layer.
    - Bug: In GCellConfiguration::_GCell_xG_xL1_xL3(), add H/V alignement constraints
        in fork case. This allow NE/SW contact to be splitted correctly later.
    - Bug: In AutoContact::split(), the connexity on the splitted contacts was
        not correctly restored, leading to canonization and parentage looping
        errors. This was concealed by the Kite Track::_check() bug (incomplete
        individual TrackSegment checking).
2010-12-30 18:41:19 +00:00
Jean-Paul Chaput 5b06b19fd6 * ./knik:
- Change: In GraphicKnikEngine, uses the new darken mechanism.
2010-12-30 18:40:30 +00:00
Jean-Paul Chaput beae7fb97e * ./crlcore:
- New: In GraphicsParser, read the new darkening scheme (HSV ratio).
        "display.xml" configuaration file modificated accordingly. May be some
        tuning needed for white background styles.
2010-12-30 18:39:26 +00:00
Jean-Paul Chaput f7721dd754 * ./hurricane/src/hurricane:
- Change: In RoutingPad, uses my C++ style. Normalize constructors calls.
        Allow to select (trough flags) the way the "best component" is choosen.
        Currently: Biggest Area or Lowest Layer or Highest Layer.

  * ./hurricane/src/viewer:
    - New: In DisplayStyle, darkening is now expressed as a ratio over the HSV
        components of a color. Introduce a new DisplayStyle::HSVr type.
        Allow a more readable darkening effect. All object modicated accordingly.
    - Change: In NetlistWidget, the "Net" section now correctly dimension itself
        on the widest net name. Must suppress all the size Hints in the header
        & data models.
2010-12-30 18:38:43 +00:00
Jean-Paul Chaput 3d28803fed Oups. Forgot to remove the throw used to test ExceptionWidget, lanched
after ten RoutingEvents...
2010-12-15 16:08:33 +00:00
Jean-Paul Chaput 410e81a42b * ./unicorn:
- New: Argument to print the measurments (--dump-measures,-M).
2010-12-15 15:13:39 +00:00
Jean-Paul Chaput 0e09dee142 * ./stratus1:
- Change: In st_model, separate View() in two methods, one that load the
        model into the editor (still named View()) and a Breakpoint() method
        for putting true stop points. The Breakpoint() method calls the
        View() method. Will simplificate my explanations to the students...
2010-12-15 15:25:45 +00:00
Jean-Paul Chaput 37d2483443 * ./kite:
- Change: Removed Histogram, moved into crlcore.
    - Change: In GraphicKiteEngine, add a menu entry to dump the measurments.
2010-12-15 15:12:00 +00:00
Jean-Paul Chaput a93e5be3da * ./crlcore:
- New: Histogram object, imported from Kite. Made more generic to be reusable
        by all.
    - Change: In Measures, added Inspector support.
        NOTE: The hidden property holding MeasuresDatas no longer uses a pointer
              a value. This forces us to enable the copy constructor. It is needed
              for some inner STL container manipulation, but should *not* be used
              with non-empty datas. The copy constructor *do not* copy the internal
              datas (reset the object).
    - New: In Measurments, support for complex data sets, saved in separate Gnuplot
        <.dat> files. Used to integrate Histogram.
    - New: In Histogram, now a supported Measure type so it can be integrated along
        all others measurments.
    - Bug: In display.xml, forgotten gcut description in Alliance Classic black
        style.
2010-12-15 15:11:25 +00:00
Jean-Paul Chaput daab8a8b8f * ./hurricane/src/viewer:
- In CellViewer, adds a shortcut for launching Stratus scipts: SHIFT+P,S
        and one for pure Python scripts: SHIFT+P,P.
    - In ExceptionWidget, put the trace inside a QScrollArea so all the call
        stack can be viewed regardless of the window's size. It seems that
        QFontMetrics has problems to compute the right text size when using
        a Qt::RichText enabled widget. Adds some "manual" corrections, hope
        they will be sufficiently portables.
2010-12-15 15:10:58 +00:00
Jean-Paul Chaput c356715d80 * ./bootstrap:
- Change: Now installing coriolisEnv.py & coriolis2.sh to simplificate
        the environement initialiszation for students.
2010-12-13 14:00:40 +00:00
The Coriolis Project 49af37f6a4 Once more, overload problem under 64 bits and unsigned int/size_t. 2010-12-12 22:35:40 +00:00
The Coriolis Project 80bf4027fb Last minutes corrections. 2010-12-12 22:15:44 +00:00
Jean-Paul Chaput 629452dcc6 * ./katabatic:
- Change: In GCell & GCellGrid, unificated way of computing all the GCell's
        densities.
    - Change: In GCell::stepDesaturate(), uses shearUp() instead of moveUp().
    - Change: In AutoSegment, new method ::shearUp() to avoid moveUp() saturating
        GCells as side-effect.
2010-12-12 21:43:25 +00:00
Jean-Paul Chaput c9e1c3101a * ./kite:
- Change: Big cleanup. Supress all the GCell level: GCell, GCellGrid,
        GCellRoutingSet. Blockages now managed inside the BuildPower.
    - New: In NegociateWindow, Histogram of GCell densities in Gnuplot
        format.
2010-12-12 21:42:57 +00:00
Damien Dupuis 011be5487b regex correction for Mac osX 2010-12-09 14:38:41 +00:00
Damien Dupuis e43c102f45 Missing include dirs
Boost_LIBRARIES misplaced : not in add_library but target_link_libraries
2010-12-07 11:53:36 +00:00
Damien Dupuis 4e4a13c265 Adding autoDTR tool in Chams project 2010-12-06 09:42:58 +00:00
Jean-Paul Chaput 23fc3e7b79 * ./kite:
- Change: Propagate renaming "obstacle" -> "blockage".
    - Bug/Change: In Configuration, the value of the extensionCap was too big
        (1.5 lambda), reduce to 0.5 lambda. This is a problem, the extension
        should be coupled to the layer as it is not the same for each METAL.
    - Bug: When using TrackElement, always uses the virtual "->isFixed()" method
        instead of trying to access to "->base()->isFixed()" as the base may be
        NULL in case of blockage/fixed segment.
    - Change: Merge PowerRails & Blockage trans-hierarchical construction (into
        PowerRails). All blockages are groupeds under "blockagenet".
          Allows to remove TrackBlockage & BuildBlockages.
    - Change: In KiteEngine::annotateGloblalGraph(), when routing a full chip,
        ring power segments around the core must completly saturate the edges
        in their segment direction. This is to prevent the global router to
        use paths under the power/ground ring (may generate unsolvable configs).
    - Change: In KiteEngine::annotateGloblalGraph(), when routing a full chip,
        distinguish three areas: the core (65%), the corona (90%) and the pads
        (100%). Capacities on the edges are sets accordingly.
    - Change: In RoutingEvent, introduce an alternative algorithm for
        conflictSolve1, FindPath which try to deduce the breakpoints from a
        truly explorated path. Unfortunatly this gives worst results than the
        Cs1Candidates method. The why should be investigated as it's a critical
        point in the algorithm.
    - Change: In Manipulator::ripupPerpandicular(), when a caged perpandicular
        is encountered, instead of just "stopping", rip it up and change is
        axis hint (actually increase) it's axis hint so it stands a chance to
        go outside the track with an obstacle.
    - Change: In RoutingEvent/State::slackenTopology(), allow move up of local
        segments when they are tightly constrained *and* blocked (cageds).
        Partial modification of functions calls from booleans to flags.
    - Bug: In NegociateWindow::NegociateOverlapCost, check for fixed segments
        before trying to get DataNegociate. The lack of DataNegociate cause the
        TrackElement to be discarted. It's a failsafe behavior, but it leads to
        overlaps.
    - Bug: In ProtectRoutingPad, in Pad Cells only, *do not* protect RoutingPad
        to avoid the edge capacity over the pad to decrease to zero. This is
        due to unused RoutingPads being accounted as blockages.
2010-12-04 15:25:48 +00:00
Jean-Paul Chaput cf9a7a7911 * ./katabatic:
- New: ChipTools, regroup all datas and utilities to manage a full-chip
        design.
    - Change: In LoadGrByNet/GCellConfiguration::_GCell_xG_1Pad(), uses straight
        perpandicular wires on top & right pads. The GCells under those connectors
        are fully saturated, wires must go out as straight as possible.
    - Change: In AutoHorizontal/AutoVertical, update the "terminal" flag after
        slackening. This is to avoid global that are no longer connected to
        terminals behave as such.
    - Change: In AutoSegment::canMoveUp() & canPivotUp(), prevent all local segments
        to go up. This is to avoid cluttering upper levels with small segments.
    - Change: In GCellConfiguration, for xG_xL3, detect straight vertical topologies
        and for them to be fixed (new flag FIXED_GLOBAL set by the topological
        builder instead of the constructor). This prevent the router to do
        stupid things...
          To sets the "Fixed" flag *after* the axis of global segments have been
        positionned correctly adds a "_toFixGlobals" static table lookup.
    - Change: In GCell::stepDesaturate(), if less than one free track remains in
        the upper layer, do not move up the segment. This allows from a minimum
        free room for expansion.
    - Change: In GCell::_getString(), display indexes and layer names in various
        saturation tables.
    - Change: In AutoSegment, allow move up of local Segment. ::moveUp() and
        ::canMoveUp() arguments go from booleans to flags, which are more
        explicits.
2010-12-04 15:25:18 +00:00
Jean-Paul Chaput 8c5fdd12d5 * ./knik:
- Change: Restore Inspector support.
2010-12-04 15:24:43 +00:00
Jean-Paul Chaput c86e720066 * ./crlcore:
- Change: Rename "obstacle" to "blockage" in all the places it still appears
        to be completly homogeneous.
    - New: In Catalog, adds a "Pad" attribute to mark cells that are pads.
    - Change: In ApParser, discard "padreal" instances as a cause for a Cell to
        be non-terminal. This is for LeafPlugOccurrences to consider the terminals
        of those cells.
    - Change: In ApParser, makes use of the new Pad flag in Catalog.
2010-12-04 15:23:51 +00:00
Jean-Paul Chaput 828b1d6b6f * ./hurricane/src/hurricane:
- New: Torus object. To allow a simpler management of a chip's corona,
         the toric area between the pads and the core.
    - Change: In HyperNet/LeafPlugOccurrences, change the instance stop criterions
        from "isLeaf()", which means "contains no instances" to "isTerminal()"
        which can be programmatically changed. This has to be done for the Pads
        which are non-leaf due to "padreal" but still must be considered for their
        connectors.
          This modification is coupled with one in the Ap parser.
    - Change: In Backtrace, enable support for Apple backtrace. This is a blind
        test as I can't check by myself.

  * ./hurricane/src/viewer:
    - Change: In CellWidget/SelectionModel/SelectionWidget, rewrite the Gos selec-
        tion mechanism. Now ExtensionGo could be selecteds as they ought to be.
        Also adopt a more standard way of how objetcs are selecteds.
          Prefer "dataChanged()" signal over "reset()" or "layoutChanged()" as
        it keeps the selection instead of resetting it.
          Unselecteds entry in the window (toggled with 't') are now shown in
        red for better readability.
2010-12-04 15:22:54 +00:00
Damien Dupuis edd711dd9b Thanks to the help of Jean-Paul may python installation is alive !
- Updated Boost.Python port for OpenChams

  - Updated drive & aprse examples in Python
2010-11-22 14:44:27 +00:00
Damien Dupuis ec97d7f369 Thanks to the help of Jean-Paul may python installation is alive !
- Updated Boost.Python port for OpenChams

  - Updated drive & aprse examples in Python
2010-11-22 14:44:17 +00:00
Damien Dupuis 501ac35b2b !! Adding support for subCircuits !!!
* New <subCircuitsPathes> section in <circuit> that lists the pathes that contain subCircuits xml files

    * New Device object that inherits from simplified Instance object.
        - Instance has a name, a model, some connectors and optionnal parameters
        - Device has the same attributes plus mosType, sourceBulkConnected and transistors

    * Updated readFromFile and wrtieToFile methods to support these modifications

    * Updated parse and drive examples to support these modifications
        - Note: only C++ examples has been updated since my boost.python environment is actually totaly broken

    * New buffer.xml example that uses subCircuits.
2010-11-22 10:22:04 +00:00
Damien Dupuis 5887a0b59f !! Adding support for subCircuits !!!
* New <subCircuitsPathes> section in <circuit> that lists the pathes that contain subCircuits xml files

    * New Device object that inherits from simplified Instance object.
        - Instance has a name, a model, some connectors and optionnal parameters
        - Device has the same attributes plus mosType, sourceBulkConnected and transistors

    * Updated readFromFile and wrtieToFile methods to support these modifications

    * Updated parse and drive examples to support these modifications
        - Note: only C++ examples has been updated since my boost.python environment is actually totaly broken

    * New buffer.xml example that uses subCircuits.
2010-11-22 10:21:52 +00:00
Damien Dupuis 3c2062bdd0 Version property for tehcnology tag is not mandatory. 2010-11-18 15:13:56 +00:00
Jean-Paul Chaput 7d49e75797 * ./crlcore:
- New: Inspector support enabled for AllianceFramework and most of it's
        sub-objects. Attached as a property on the DataBase to be browsable
        through the Inspector.
    - Change: Now also read a <.coriolis2.configuration.xml> in the user's
        root account (before the directory specific one and after the system-
        wide).
    - Change: In verbose mode, also display what environment files are being
        read.
    - Change: No more reference to CRL_CATA_LIB in error messages.
    - Change: Suppress stratus2sxlib obsolete library.
2010-11-17 15:40:39 +00:00
Damien Dupuis 928b3a0a2a Updated examples 2010-11-17 15:39:03 +00:00
Damien Dupuis 48407432c9 New version attribute in Techno object (it is parsed and drived)
Recently adds have been adjusted in PyDtr.py

    Examples have been updated (c++ is tested, python fails on my Mac due to a strange python2.6.6 behavior I have to check this)
2010-11-17 15:09:59 +00:00
Damien Dupuis 9e5b5226d9 Adding setName & setUnit methods on Techno object.
getRule method of Techno does not throw exception anymore if rule is not found : a NULL Rule* is returned instead.

    but getValue methods throw exception if rule is not found
2010-11-16 15:33:42 +00:00
Damien Dupuis cefe8dc6a7 Adding translate method to PyHorizontal
Bug correction in METHOD_HEAD definition of PyHorizontal
2010-11-16 15:24:19 +00:00
Jean-Paul Chaput c4a91ec39c * ./unicorn:
- New: In CgtMain, support for Stratus script execution from command line:
        "--stratus-script=<script_file>" (whitout ".py" extension).
    - Change: In CgtMain, makes use of priority for configuration settings.
2010-11-16 14:01:54 +00:00
Jean-Paul Chaput 802d80e850 * ./stratus:
- Change: Add support for chip-level nets. POWER/GROUND/CLOCK as signals.
    - Bug: Reorder import so that CRL is always imported first so that the
        problem of duplicated type_info RTTI doesn't show.
2010-11-16 14:09:53 +00:00
Jean-Paul Chaput 5b7b078688 * ./cumulus:
- Bug: Uses correct Contact with for rings.
    - Bug: Reorder import so that CRL is always imported first so that the
        problem of duplicated type_info RTTI doesn't show.
2010-11-16 14:09:31 +00:00
Jean-Paul Chaput 3b11ca116c * ./kite:
- New: In BuilPowerRails & BuildBlockage, specific support for chip-level
        design. The Alliance "top chip" design hierarchical structure is
        hard-coded. Top level POWER/GROUND/CLOCK nets must always have the
        <vsse>, <vdde>, <ck>, <vssi>, <vddi>, <ckc>, <cki> names.
          Specific method to get trans-hierarchical root nets, espcially in
        case of global ones (POWER/GROUND). Clock is *not* global.
          Some correction in the manner obscured tracks are computeds.
    - New: ProtectRoutingPad module that perform a more clean work for protecting
        unused RoutingPad.
    - Bug: In BuildPowerRails, uses stable_sort<> instead of sort<>, which
        causes unexplained core dumps (seems to try to perform a comparison
        using the "end" pseudo element). Already occured in Knik, no explanation
        other than a STL bug.
    - Change: Slight changes in the weights to move up. Now needs a full empty
        track instead of a half one.
2010-11-16 14:00:03 +00:00
Jean-Paul Chaput 36a99a53ae * ./katabatic:
- Change: In loadGlobalRouting(), more exlicit message as to why a net is
        filtered out the routing set (POWER, GROUND, CLOCK or BLOCKAGE).
    - New: ChipTool, module with utilities specific to chip routing. Containing
        a function to pre-break wires around a block.
    - New: In loadGlobalRouting/GCellConfiguration, adds supports for RoutingPad
        connected on chip's pad.
    - New: In GCellGrid/GCell, can compute the density in three modes: average,
        max of H/V and max of layer. Currently implemented in getMaxHVDensity(),
        should be unificated with getDensity(). Used for display purposes.
    - Bug: In AutoContact, when splitting a contact, add a specific check for
        "one layer span".
    - Bug: In AutoSegment::canMoveUp(), do not move up fixed segments.
2010-11-16 13:59:38 +00:00
Jean-Paul Chaput fe58d862a1 * ./knik:
- Bug: In Edge::getCost(), when the edge capacity is null, return maximum
        cost (HUGE).
    - Bug: In Knik::saveSolution(), saves only Segments that belongs to global
        routing, that is in GMetalH/GMetalV.
2010-11-16 13:59:03 +00:00
Jean-Paul Chaput 2c50fae3d3 * ./crlcore/src/ccore:
- New: In Utilities, uses the new Backtrace to print the stack before
        core-dumping.
    - New: In Environment, pattern recognition of Pad model names.
    - New: In AllianceFramework, pattern recognition of Pad model names.
    - Bug: In Measures, add inspector support and uses pointer to prevent using
        copy construction. Makes the inspector to core-dump.
    - New: In RoutingLayerGauge, inspector support for Constant::Direction.
    - Change: In ApDriver, correct managment of BIGVIA sizes. BIGVIA in one
        metal keep their sizes, but BIGVIA whith cut must be expandeds to
        contains their enclosure in metals. In Hurricane VIA size are relatives
        to the cut but in Alliance, to the biggest metal.
          Generate correct direction (always UP or RIGHT) for segments.
    - Change: In ApParser, shrink BIGVIA to the size of their cut from the
        Alliance format. Avoid VIA "bloating".
          More thorough verification of Segment data coherency, mainly with
        direction.  
          Suppress warning of non-existent logical instance in the special
        case of "padreal".
    - Change: In VstParserGrammar, perform an explicit plug connection on globals
        Nets if the names of globals Nets differs.
    - New: In display.xml, add style for printers (B&W).
    - Bug: In technology.symbolic.xml, BLOCKAGE6 was associated to metal6 instead
        of blockage6.
          Correct extensions value for VIA metal layers above cut1.
    - Bug: In Utilities, in System singleton constructor check of duplicated
        type_info/RTTI initialization. Occurs when python modules are useds.
        CRL must always be included first.
2010-11-16 13:57:57 +00:00
Jean-Paul Chaput 8be83b1ae0 * ./hurricane/src/hurricane:
- New: Backtrace to print the stack when an exception is thrown.
    - New: In Error, support for Backtrack.
    - Change: In TextTranslator, provides a default HTML translator instead of
        building it every time it was needed.
    - Bug: In Common, when demangling a C++ symbol fails, returns the empty
        string instead of NULL.

  * ./hurricane/src/viewer:
    - New: In Exception, support for the Backtrack new feature.

  * ./hurricane/src/isobar:
    - Change: In PyHurricane, when catching a C++ exception, adds a newline to
        have a more clean display.
2010-11-16 13:43:34 +00:00
Jean-Paul Chaput a9d0783026 * ./vslsisapd/src/configuration:
- New: In Parameter, adds a priority for all the mutators method calls.
        Allows to sets values according to where they came from instead of
        only taking the last change. This is needed because we cannot ensure
        that the last sets value is the truly wanted one. Four priorities
        are avalaibles (in increasing order):
          1. - ApplicationBuiltin (the default).
          2. - ConfigurationFile  (currently: the XML parser).
          3. - CommandLine        (supplied by the command line, see Unicorn).
          4. - Interactive        (changed through ConfigurationWidget).
    - New: In ConfigurationWidget, hideTabs()/showTabs() to explicitly select
        which tabs are displayeds or hidden. Two modes are avalaibles:
        Incremental and Exact. In Exact mode only hidden tabs are hiddens and
        only shown tabs are shown.
    - Change: In ConfigurationWidget/ConfTabWidget/ParameterWidget, no longer
        relies on the Widget parent/child tree to find the ConfigurationWidget
        from a ParameterWidget (consequence of the hide/show capability which
        is implemented by cutting off hidden tabs). Adds an explicit attribute.
2010-11-16 13:51:14 +00:00
Damien Dupuis 7506bae16e Adding support for unspecified values (saving NaN)
Adding setValue && setRef methods on Rules

    writeToFile method now produce an easy to read file thanks to iomanip.stw() method
2010-11-16 11:24:26 +00:00
Jean-Paul Chaput b90b40f656 * ./hurricane/src/hurricane:
- New: In Query, adds an accessor to get the current path.
    - Bug: In NetExternalComponents, every component of an external net was
        considered as an external one. Now only truly external components
        are considered.

  *  ./hurricane/src/isobar:
     - New: StratusScript, dedicated Stratus script laucher.
     - Bug: In CellWidget, when drawing selecteds Gos, the loop variable was
         not reset between loops resulting in incomplete display.

  * ./hurricane/src/isobar:
    - New: In PyHorizontal & PyVertical, adds mutator methods.
2010-11-02 16:05:29 +00:00
Sophie Belloeil 6f7f8fb49a g++ 4.4 compliant (limits include was missing) 2010-11-02 11:27:59 +00:00
Sophie Belloeil 578877d8d7 VlsiSAPD is now G++ version 4.4 compliant ! 2010-11-02 11:02:44 +00:00
Damien Dupuis ab4be8a22b As Farakh asked me : Operator name is now always converted to upper case before save. 2010-10-28 20:56:08 +00:00
Sophie Belloeil 81d4d455bd - Improvment of parsing examples with examples of maps and vectors.
- No more pprint method in Python, now __repr__method encapsuling new c++ method getString.
2010-10-15 11:13:53 +00:00
Sophie Belloeil 2bc62b400b - Python examples
- forgotten PyLiberty.cpp
2010-10-14 11:06:22 +00:00
Sophie Belloeil 40a6d2e0da Python wrapper. (without example it seems ?) 2010-10-14 11:01:16 +00:00