In Katabatic & Kite, remove all hard-coded values related to track pitches.
* New: In <Session>, add more convenience function to access RoutingGauge
characteristics.
* New: In <AutoSegment>, <AutoContact>, add support for the "depth spin",
that is, if the source/target contacts are going "top" or "down".
Used to compute the perpandicular pitch. Need a small modification
of the revalidation mechanism. The observers of <AutoSegment> are
notified when the spin changes.
* New: In <AutoSegment>, the getPPitch() method allow to compute the
"perpandicular pitch". For now it is simply the greatest from the
source perpandicular pitch and the target perpandicular pitch.
Make uses of the "depth spin".
* New: In <TrackElement>, <TrackSegment>, cache the perpandicular pitch.
Updated through the notification from the observable.
When upgrading from doxygen 1.5.x to 1.8.5 the way the documentation
is generated has underwent many changes, particularly in the headers.
* Change: In <header.html>, must include the javascripts <jquery.js>
and <dynsections.js>.
* In <CMakeLists.txt>, as the header is customized, doxygen seems not
copy some files like the javascripts and some images (open.png,
closed.png). So we copy them from doxygen installation and make
the CMakeLists.txt install them. I hope they will not change too
much in the future.
* In <doxyfile>, disable markdown support as it do not interpret
correctly the formating we already adopted (with a left margin
to put command into). Use HTML_EXTRA_STYLESHEET instead of
HTML_STYLESHEET. Enable the index (DISABLE_INDEX=NO), for the
top header. Enable dot for inheritance diagram. Set the
EXAMPLE_PATH=. to include the synthetic hierarchy.
Correct the tag inclusion (faulty path in some places).
* In <SoC.css>, create style for the new header generated by doxygen.
* In the documentation, move the synthetic hierarchy into a module.
Miscellaneous:
* Change: In <crlcore>, in display.conf use the same display threshold
for both METAL2 & METAL3.
In alliance.conf, the side of VIAs in the gauge is 2l (not 3l).
In kite.conf, separate edge densities for H/V.
* Change: In <Cell>, in flattenNets() use flag as argument, not a
boolean. Do not create rings for clock or supply nets.
* Change: In <DeepNet>, in _createRoutingPads() do not create rings
for clock or supply net (duplicated policy as in Cell::flattenNets()).
* Bug: In <ControllerWidget>, at last find the bad signal disconnect
that was causing ungraceful messages.
* Change: In <knik>, in Edge display occupancy/capacity in the string
name. Improved display progress and debugging capabilities.
Improved exception catch & breakpoint managment:
* Bug: In <PaletteWidget>, in updateExtensions() replace the calls to
deleteLayer() by delete. This cause the widget to be immediatly
erased instead of waiting for the event queue to be completly
processed. This was causing the widget to be left in a incoherent
state when stoping at a breakpoint.
* Bug: In <BreakpointWidget>, in execNoModal(), flush the main event
loop (QApplication::flush()) *before* lauching the *local* event
loop. This is to ensure all widgets are in their final state when
waiting (especially <PaletteWidget>).
* Change: In <ExceptionWidget>, new method catchAllWrapper() to
execute any std::function< void() > function/method with a "try"/
"catch" wraparound and lauch the widget in case something is catch.
* New: In <hurricane>, support for a oberver pattern, backported from
<katabatic> with an Obervable capable of being linked to any
number of Obervers.
* New: In <Cell>, made it observable to detect Cell change, currently
emit two kind of signals:
- Cell::CellAboutToChange : *before* any change.
- Cell::CellChanged : *after* the change has been completed.
* New: In <UpdateSession>, in Go::invalidate() add the Cell owning the
Go to the UPDATOR_STACK (of course the cell is added only once).
In addition, when the Cell is added, send a notification of
Cell::CellAboutToChange to all it's observers. The slave instances
are also invalidated.
Conversely in UpdateSession::_preDestroy() for each invalidated
Cell send a Cell::CellChanged notification to all observer.
The UPDATOR_STACK has been slightly amended to accept Cell which
are not Gos. Prior to this, the Cell where completly excluded from
the UpdateSession mechanism, so it's instances where never actualised
of anything referring to the Cell for that matter.
Note: we use two different mechanisms to transmit a Cell change,
observers and the slave instance map. I think at some point it
should be unificated.
* Change: In <CellViewer>, make it a Cell observer to redraw when the
cell is modificated (also update the palette).
Uses the catchAllWrapper() to protect all critical actions.
* Change: In <GraphicTool>, no longer need of cellPreModificated and
cellPostModificated signals. Now done through the Cell obersvers.
* Change: In <mauka>, <etesian> & <kite> now uses the catchAllWrapper
method for protection (need to split methods in two, to be able
to pass it as argument). No longer emit cellPreModificated and
cellPostModificated.
Support for RoutingGauge in P&R:
* Bug: In <placeandroute.py>, the connection from the internal power
ring to the connectors was not done correctly. Wrong contact layers
leading to a gap.
* Change: In <BuildPowerRails>, detection of the corona signals based
on how the "pck_px" pad is connected. No longer based on name
matching.
* Change: In <placeandroute.py>, support for 2 routing metal only
(3 metal in the technology).
* Change: In <katabatic> & <kite> support for a "top layer" limitation
on the routing gauge, this allows to use only two routing metals
(METAL2 & METAL3). Work in progress.
Cleanup:
* Cleanup: In <vlsisapd/src/bookshelf>, remove unused file Bookshelf.cpp
(may have been a parser once upon a time).
* Cleanup: In <hurricane>, in Cell::flattenNets() use flags instead of
booleans to be more readable. Allow occurrence placement checking.
* New: In <crlcore> add Python wrapper for the Ispd05 loader.
* New: In <unicorn> add option for direct loading of ISPD05 designs.
* Bug: In <hurricane/src/viewer>, RecordModel must emit
layoutAboutToBeChanged() before changing the record contents (and
layoutChanged() afterwards).
Details:
* New: In <vlsispad/utilities>, new objet Dots for displaying a kind
of progress bar.
* Change: In <vlsisapd/bookshelf>, keywords are now case-insensitive.
Added a "strict syntax" option (to be disabled for ISPD05).
* New: First working implementation of Etesian, at least for ISPD05
"bigblue1".
* Change: In <hurricane>, in Cell::flattenNets(), no longer display
a warning if an instance is unplaced, this does not make sense
when the circuit is not placed.
* New: In <crlcore>, Added translator for ISPD05 bookshelf, the
circuit is *not* placed, unlike in ISPD04 and terminal nodes
*are* true cells.
* New: In <unicorn>, added entry in import cell for ISPD05 benchmarks.
Update to Qt 5:
* Change: Now requires at least cmake 2.8.9.
* Change: CMakeLists.txt needs small changes. Qt modules must be found
one by one (Core, Gui, Widgets). Must add "set(CMAKE_AUTOMOC ON)"
in the top file and replace "qt4" prefix in macros by "qt5".
Added simpler macro "setup_qt()" in FindBootstrap.cmake.
* Change: No longer need to include <QGtkStyle> is is choosen by default
according to the current desktop environment.
* Change: In <hurricane>, In HApplication, launch ExceptionWidget when
a std::exception is catched instead of silently discarting it.
New placer Tool: Etesian
* New: <etesian> analytical placer. Encapsulate Coloquinte from
Gabriel Gouvine.
* New: in <documentation>, add stub demonstration ToolEngine <smurf>.
Needs to be commented.
Miscellaneous:
* New: in <boostrap> and <unicorn>, added support for Etesian, the new
analytic placer. The tool itself will be added in the next commit.
* Bug: in <CellWidget>, when shifting the display buffer, we no longer
can copy the buffer on itself (we should never have). Now go through
a temporary one (PlaneId::AutoCopy) which is added to the
DrawingPlanes. Affect "goLeft()" and "goUp()".
* Bug: In <CellWidget>, remove the WA_PaintOnScreen flag/attribute.
When it's on, no PaintEvent is transmitted to the CellWidget
when it's the central widget of the <CellViewer> (QMainWindow).
It's something I still don't understand from the doc of Qt.
* Change: In <AreaCommand>, use the PlaneId enumeration instead of a
anonymous numerical index.
* Change: In <HApplication>, no longer catch and silently discard
standartd exceptions but launch the ExceptionWidget...
Suppress the now deprecated constructor with "Type" argument.
* Change: In <SelectionModel>, the "reset()" method is deprecated in
Qt5, instead enclose the "clear()" by a "beginResetModel()" and
"endResetModel()" pair.
* New: In <crlcore>, add support for ISPD05 benchmarks (in Bookshelf
format). Forked from ISPD04 and not finished yet.
* Change: In <Mauka>, distinguish the Action string identifier from
<Etesian>
* New: In <unicorn>, add entry for ISPD05 loader. Add entry for
<Etesian> analytic placer.
Details:
* New: in <bootstrap>: add support for devtoolset-2 in ccb. Run the
cmake commands through 'scl', set shell environment variables
BOOST_INCLUDEDIR & BOOST_LIBRARYDIR and disable the default
system path search.
* Change: In various flex scanners add the %nounput to suppress
compiler warnings.
* Change: Little cleanup for g++ 4.8.1 as it's more strict.
* Change: In various top CMakeLists.txt, suppress extraneous '/'
after DESTDIR.
Documentation restructuration:
* Bug: in <hurricane>: bad figure for transf-R1.
* Change, in <kite>: Remove deprecated configuration variables.
* New: documentation <tool> to regroup all documentation not directly
related to one tool.
* Change, in <crlcore>, move the user's guide and the top doc index
into <documentation>.
* New, in <documenation>: added Python script demo based on AM2901.
Project hierarchy reorganisation:
* With svn, we were doing a tool by tool checkout, suppressing the
whole repository hierarchy level.
* The tools were also grouped, inside one repository, into multiple
projects (<bootstrap>, <vlsisapd>, <coriolis>).
* We do not want to split up each tool into a separate repository,
given their tight integration (except for vlsisapd).
* We choose to simplify, and consider all tools in a svn repository
one project. Due to the way Git clone repositories, the directory
containing the project is now to be seen under "src/".
CMake modifications:
* Now that the <vlsisapd> and <bootstrap> projects are merged into
coriolis, modificate the top CMakeLists.txt of each tool to uses
only Coriolis (and bootstrap hard wired).
CCB compile script modifications:
* Uses the new source tree hierarchy, with the project directory
inserted.
* Remove (comment) all parts relateds to svn managment.
* Git is sufficiently simple so that we do not want to integrate
command shortcut into the script.
SVN cleanup:
* Remove the obsolete <chamsin> tool, that has become the full fledged
<chams> project long time ago.
- Change: In Cell, added doc about PlacementStatus.
- Change: In Transformation, more detailed explanations about the
orientations. A little beautifying too...
- Change: RoutingPad doc update.
- Change: Entity doc update (for id).
- Change: In HTML header/footer uses the new SoC.css.
* ./crlcore/src:
- Change: In DefDriver, added support for placement exportation.
- New: In Utility, added a "paranoid" output stream (for my extra
warnings in the router).
- Bug: In ApParser, correct parsing of connectors index (recreate
the vector).
- Change: In alliance.conf, make "blockageNet" case insensitive.
- Change: In misc.conf, added support for paranoid stream.
- Change: In x2y and CyclopMain correct verbose flags positionning.
* ./crlcore/doc:
- Change: Updated style and added some documenation.
- New: In Environment, adds a method getLIBRARYPath() to directly access the
path of an element in the SearchPath. Also added to the Python interface.
This is a quick alternative to fully export SearchPath and it's element
into the Python interface.
- Bug: In AgdsQuery::goCallBack(), take account the instance transformation.
This problem was not showing until now because there wasn't any instances...
- Bug: In CMakeLists.txt, when our custom macro "setup_boost()" is used,
do not call find_package() afterward, it corrupt the library pathes
from '/usr/lib/' to '/usr/lib/lib/'.
- Bug: In Histogram::addSample(), reject the sample if iset is superior
OR EQUAL to the sets size...
- Change: In etc/mauka.conf, sets "mauka.standardAnnealing" to True. Otherwise,
when hMetis (4-part) is not used, this leads toward very poor placements.
- New: In UsersGuide, add a third style variant for the soc-extras site.
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
(<otaciliodearaujo@gmail.com>).
* ./crlcore:
- New: In Utilities, cbug stream to separate all the scary messages
from Kite/Katabatic and maybe others.
- New: In stratus1.conf, adds default settings previously in st_config.
- New: Moves Python configuration helpers from under /etc/coriolis2
into PYTHON_SITE_PACKAGES/crlcore. Adapt Utilities so coriolisInit.py
is now searched in that directory. This way only true configuration
files remains under /etc/coriolis2
- Change: In helpers/__init__.py, do not try to guess the sysConfDir
when not run through coriolisInit.py. This is done by exploring the
call stack with traceback.
- Change: In ApDriver, when a physical view is driven, update the flag
in the catalog state telling that this view is present. This is far
from satisfactory as this flag should be set as soon as any physical
component is created.
- A complete sweep of cleanup to suppress allmost all compiler warnings.
* ./crlcore:
- New: Extented Python support for all objects needed to configure Coriolis.
- New: Configuration files and load helpers completly written in Python.
An XML emulation mode is still avalaible.
- New: UsersGuide, as a replacement for README, written in ReST.
- New: Start of Doxygen documentation (mostly for documenting the initialisation
objects & methods).
- Bug: In ApParser.cpp, the connectors where not parsed. The problem
was not showing if you run all Stratus scripts in the same process
as the caching mechanism will prevent the parsing of the disk file
and uses the memory copy (which is correct).
- Change: For the setup_sysconfdir() boostrap/cmake macro uses the
CMAKE_INSTALL_PREFIX to guess where we are being installed.
Should be more reliable than any *_TOP environment variable.
- New: Install a general index for the HTML documentation.
- Bug: In cyclop CMakeLists, forgot to list all the needed libraries for
the linker.
- New: Support of Python installation layout under Ubuntu 10.04.
lib/python2.6/dist-packages
- Change: In RoutingLayerGauge, no longer throw exception when the position
requested it outside the track grid. Instead returns first/last track
index.
- 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.
- 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.
- 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.
- 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.
- 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.
- New: In LefExport, export the spacer cells (rowend & tie) to enable
filling in Cadence Encounter.
- New: In DefImport, added support for regular wiring in NETS. Allows us
to import routing from Encounter and characterize it.
- New: In Catalog, added a CatalogExtension static property manager to
allow more easy access to the Catalog::State of each Cell. Do not
uses the default template because of a specific destructor and a
"by pointer" value.