Update to Qt 5, requires cmake 2.8.9. New placer: Etesian.
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.
2014-03-22 05:50:36 -05:00
|
|
|
# -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt<hurricane/src/isobar>" -*-
|
2008-03-06 10:46:43 -06:00
|
|
|
|
2015-03-22 13:12:45 -05:00
|
|
|
# include( ${QT_USE_FILE} )
|
|
|
|
include_directories( ${HURRICANE_SOURCE_DIR}/src/hurricane
|
|
|
|
${HURRICANE_SOURCE_DIR}/src/viewer
|
|
|
|
${HURRICANE_SOURCE_DIR}/src/isobar
|
2016-07-20 08:21:50 -05:00
|
|
|
${Boost_INCLUDE_DIRS}
|
Implementation of DataBase native save/restore in JSON (step 1).
* New: In Hurricane, added first support for DataBase native import/export
using JSON.
We choose RapidJSON, in SAX mode, to manage the JSON format low level
Read/Write. Thus, it's Git repository http://github.com/miloyip/rapidjson
must be added under ~/coriolis-2.x/src and manually build and installed
in the Coriolis installation tree (to be integrated in ccb later).
Two mode are being supported:
1. Cell mode: one Cell only is saved. In that mode, Entities
referred by Occurrences are "outside" the file. They are coded
through their "signature" (mostly, all the values of their
attributes). The ids saved in the file cannot be restored
identically as we cannot predict when and in which context the
Cell will be reloaded.
2. Design Blob mode: the whole design hierarchy, down and including
the standard cells is saved. This way the design is completly
self contained and Entities ared referred through their ids.
A design blob can only be loaded immediatly after starting cgt
as the DataBase *must* be empty. This way we restore the whole
design hierarchy with *exactly* the same ids.
Now, Hurricane object should provide a "toJson()" method for driving
JSON, and be associated with a JsonObject derived class for parsing.
* New: In Hurricane, ability to force the next id that will be used for a
DBo (used by Design Blob Mode).
* New: In Hurricane, in DataBase, added getCell() and getLibrary() functions
to allow the hierarchical access of a Cell/Library in native mode
(i.e. whithout the requirement of AllianceFramework).
* New: In Hurricane, In CellViewer, added menu entry for Save/Load of
JSON Design Blobs. Added at this level because we consider it as the
"native" format of Hurricane.
* New: In Unicorn, added support of import/export of JSON Cell.
* Bug: In Hurricane, in Instance, when cloning an Instance or uniquifying
it's master Cell, we forgot about the Occurrences (through shared pathes).
When an instance is cloned the Shared pathes still points toward the
original Instance. And when it's the master Cell that is uniquifyed
it's the Entities pointed to that remains in the original Cell.
This is a software design problem. It is difficult to define what
policy to adopt when uniquifying: basically that means that one
Occurence is either moved onto the clone or duplicated. Furthermore,
it is not trivial to known what Occurrence is pointing on the
uniquifyed/cloned item. Have to think about it a little more.
* Bug: In Etesian, in EtesianEngine, build the flattened nets and their
RoutingPads *after* uniquifying (through slaving bounding boxes).
This way we avoid the Occurrences problem described above.
* Bug: In Etesian, in EtesianEngine, invalidate the RoutingPad after
processing the placement so they are put into the right quadtree.
This problem is due to the fact that the RoutingPads do not belong
to the Instance that they refer. And when this instance is moved
around, she doesn't inform the RoutingPad that is has moved.
More software architecture design to review...
2016-01-07 06:13:16 -06:00
|
|
|
${CONFIGURATION_INCLUDE_DIR}
|
2015-03-22 13:12:45 -05:00
|
|
|
${PYTHON_INCLUDE_PATH}
|
|
|
|
)
|
|
|
|
set( pyCpps ProxyProperty.cpp
|
|
|
|
PyBreakpoint.cpp
|
|
|
|
PyInterval.cpp
|
|
|
|
PyBox.cpp
|
|
|
|
PyCell.cpp
|
|
|
|
PyCellCollection.cpp
|
|
|
|
PyComponent.cpp
|
|
|
|
PyComponentCollection.cpp
|
|
|
|
PyContact.cpp
|
|
|
|
PyDataBase.cpp
|
|
|
|
PyEntity.cpp
|
|
|
|
PyHorizontal.cpp
|
|
|
|
PyHurricane.cpp
|
|
|
|
PyHyperNet.cpp
|
|
|
|
PyPlacementStatus.cpp
|
|
|
|
PyInstance.cpp
|
|
|
|
PyInstanceCollection.cpp
|
|
|
|
PyMaterial.cpp
|
|
|
|
PyLayer.cpp
|
|
|
|
PyLayerMask.cpp
|
|
|
|
PyBasicLayer.cpp
|
|
|
|
PyRegularLayer.cpp
|
|
|
|
PyContactLayer.cpp
|
|
|
|
PyDiffusionLayer.cpp
|
|
|
|
PyTransistorLayer.cpp
|
|
|
|
PyViaLayer.cpp
|
|
|
|
PyLayerCollection.cpp
|
|
|
|
PyBasicLayerCollection.cpp
|
|
|
|
PyRegularLayerCollection.cpp
|
|
|
|
PyViaLayerCollection.cpp
|
|
|
|
PyLibrary.cpp
|
|
|
|
PyNet.cpp
|
|
|
|
PyNetType.cpp
|
|
|
|
PyNetDirection.cpp
|
|
|
|
PyNetCollection.cpp
|
|
|
|
PyNetExternalComponents.cpp
|
Added analog type on segment NetRoutingProperty.
* New: In Anabatic_AutoSegments collection, added a Flag to the constructors
to allow different behavior between digital and analog modes.
For "Aligneds" and "Perpandiculars" collections, now manage a new
Flag WithDoglegs to follow aligned globals through local doglegs
(for analog nets).
Adjust the log level of collections to 144 (formerly 145).
* New: In Anabatic::AutoSegment, new flag SegAnalog for segments that are
part of an analog net.
Note that with this flag, we reach the 32 bits limit...
* Change: In Anabatic::Constants, Flags are now declared as BaseFlags
objects and *not* uint64_t. This avoids overload resolution problems with
arithmetical overload of the operators.
The BaseFlags/Flags types are now completly "isolated" from the
uint64_t, it has the advantage of showing where unwanted previous implicit
conversions where occuring.
* Change: In Katana::Constants, Flags values are now of BaseFlags type instead
of uint64_t.
* Change: In Anabatic::Dijkstra, lots of log cleanup.
* Change: In Anabatic::GCell::getSide(), make the "shrink" parameter visible
to allow to substract the topmost and rightmost track for axis span
computation in AutoSegment::computeOptimal(). Used for analog mode.
* Change: In NetRoutingState, added a flag for analog mode. Use uint32_t
for the flags type.
* New: In Isobar, export the NetRoutingState and NetRoutingExtension objects.
2017-05-20 05:33:12 -05:00
|
|
|
PyNetRoutingState.cpp
|
|
|
|
PyNetRoutingProperty.cpp
|
2015-03-22 13:12:45 -05:00
|
|
|
PyOccurrence.cpp
|
|
|
|
PyOccurrenceCollection.cpp
|
|
|
|
PyHook.cpp
|
|
|
|
PyHookCollection.cpp
|
|
|
|
PyPad.cpp
|
|
|
|
PyPath.cpp
|
|
|
|
PyPin.cpp
|
|
|
|
PyPinPlacementStatus.cpp
|
|
|
|
PyPinDirection.cpp
|
|
|
|
PyPinCollection.cpp
|
|
|
|
PyPlug.cpp
|
|
|
|
PyPlugCollection.cpp
|
|
|
|
PyPoint.cpp
|
|
|
|
PyReference.cpp
|
|
|
|
PyReferenceCollection.cpp
|
|
|
|
PyRoutingPad.cpp
|
|
|
|
PySegment.cpp
|
|
|
|
PySegmentCollection.cpp
|
|
|
|
PyTechnology.cpp
|
|
|
|
PyTransformation.cpp
|
|
|
|
PyOrientation.cpp
|
|
|
|
PyDbU.cpp
|
|
|
|
PyUpdateSession.cpp
|
|
|
|
PyDebugSession.cpp
|
|
|
|
PyVertical.cpp
|
|
|
|
PyQueryMask.cpp
|
|
|
|
PyQuery.cpp
|
|
|
|
)
|
|
|
|
set( pyIncludes hurricane/isobar/ProxyProperty.h
|
|
|
|
hurricane/isobar/PyBreakpoint.h
|
|
|
|
hurricane/isobar/PyInterval.h
|
|
|
|
hurricane/isobar/PyBox.h
|
|
|
|
hurricane/isobar/PyCell.h
|
|
|
|
hurricane/isobar/PyCellCollection.h
|
|
|
|
hurricane/isobar/PyComponent.h
|
|
|
|
hurricane/isobar/PyComponentCollection.h
|
|
|
|
hurricane/isobar/PyContact.h
|
|
|
|
hurricane/isobar/PyDataBase.h
|
|
|
|
hurricane/isobar/PyEntity.h
|
|
|
|
hurricane/isobar/PyHorizontal.h
|
|
|
|
hurricane/isobar/PyHurricane.h
|
|
|
|
hurricane/isobar/PyHyperNet.h
|
|
|
|
hurricane/isobar/PyPlacementStatus.h
|
|
|
|
hurricane/isobar/PyInstance.h
|
|
|
|
hurricane/isobar/PyInstanceCollection.h
|
|
|
|
hurricane/isobar/PyMaterial.h
|
|
|
|
hurricane/isobar/PyLayerMask.h
|
|
|
|
hurricane/isobar/PyLayer.h
|
|
|
|
hurricane/isobar/PyBasicLayer.h
|
|
|
|
hurricane/isobar/PyRegularLayer.h
|
|
|
|
hurricane/isobar/PyContactLayer.h
|
|
|
|
hurricane/isobar/PyDiffusionLayer.h
|
|
|
|
hurricane/isobar/PyTransistorLayer.h
|
|
|
|
hurricane/isobar/PyLayerCollection.h
|
|
|
|
hurricane/isobar/PyBasicLayerCollection.h
|
|
|
|
hurricane/isobar/PyRegularLayerCollection.h
|
|
|
|
hurricane/isobar/PyViaLayerCollection.h
|
|
|
|
hurricane/isobar/PyViaLayer.h
|
|
|
|
hurricane/isobar/PyLibrary.h
|
|
|
|
hurricane/isobar/PyNet.h
|
|
|
|
hurricane/isobar/PyNetType.h
|
|
|
|
hurricane/isobar/PyNetDirection.h
|
|
|
|
hurricane/isobar/PyNetCollection.h
|
|
|
|
hurricane/isobar/PyNetExternalComponents.h
|
Added analog type on segment NetRoutingProperty.
* New: In Anabatic_AutoSegments collection, added a Flag to the constructors
to allow different behavior between digital and analog modes.
For "Aligneds" and "Perpandiculars" collections, now manage a new
Flag WithDoglegs to follow aligned globals through local doglegs
(for analog nets).
Adjust the log level of collections to 144 (formerly 145).
* New: In Anabatic::AutoSegment, new flag SegAnalog for segments that are
part of an analog net.
Note that with this flag, we reach the 32 bits limit...
* Change: In Anabatic::Constants, Flags are now declared as BaseFlags
objects and *not* uint64_t. This avoids overload resolution problems with
arithmetical overload of the operators.
The BaseFlags/Flags types are now completly "isolated" from the
uint64_t, it has the advantage of showing where unwanted previous implicit
conversions where occuring.
* Change: In Katana::Constants, Flags values are now of BaseFlags type instead
of uint64_t.
* Change: In Anabatic::Dijkstra, lots of log cleanup.
* Change: In Anabatic::GCell::getSide(), make the "shrink" parameter visible
to allow to substract the topmost and rightmost track for axis span
computation in AutoSegment::computeOptimal(). Used for analog mode.
* Change: In NetRoutingState, added a flag for analog mode. Use uint32_t
for the flags type.
* New: In Isobar, export the NetRoutingState and NetRoutingExtension objects.
2017-05-20 05:33:12 -05:00
|
|
|
hurricane/isobar/PyNetRoutingState.h
|
|
|
|
hurricane/isobar/PyNetRoutingProperty.h
|
2015-03-22 13:12:45 -05:00
|
|
|
hurricane/isobar/PyOccurrence.h
|
|
|
|
hurricane/isobar/PyOccurrenceCollection.h
|
|
|
|
hurricane/isobar/PyHook.h
|
|
|
|
hurricane/isobar/PyHookCollection.h
|
|
|
|
hurricane/isobar/PyPad.h
|
|
|
|
hurricane/isobar/PyPath.h
|
|
|
|
hurricane/isobar/PyPin.h
|
|
|
|
hurricane/isobar/PyPinPlacementStatus.h
|
|
|
|
hurricane/isobar/PyPinDirection.h
|
|
|
|
hurricane/isobar/PyPinCollection.h
|
|
|
|
hurricane/isobar/PyPlug.h
|
|
|
|
hurricane/isobar/PyPlugCollection.h
|
|
|
|
hurricane/isobar/PyPoint.h
|
|
|
|
hurricane/isobar/PyReference.h
|
|
|
|
hurricane/isobar/PyReferenceCollection.h
|
|
|
|
hurricane/isobar/PyRoutingPad.h
|
|
|
|
hurricane/isobar/PySegment.h
|
|
|
|
hurricane/isobar/PySegmentCollection.h
|
|
|
|
hurricane/isobar/PyTechnology.h
|
|
|
|
hurricane/isobar/PyTransformation.h
|
|
|
|
hurricane/isobar/PyOrientation.h
|
|
|
|
hurricane/isobar/PyDbU.h
|
|
|
|
hurricane/isobar/PyUpdateSession.h
|
|
|
|
hurricane/isobar/PyDebugSession.h
|
|
|
|
hurricane/isobar/PyVertical.h
|
|
|
|
hurricane/isobar/PyQueryMask.h
|
|
|
|
hurricane/isobar/PyQuery.h
|
|
|
|
)
|
2010-07-06 05:10:50 -05:00
|
|
|
|
2015-03-22 13:12:45 -05:00
|
|
|
set( depLibs hurricane
|
|
|
|
${Boost_LIBRARIES}
|
|
|
|
${PYTHON_LIBRARIES}
|
|
|
|
)
|
2008-09-08 03:46:18 -05:00
|
|
|
|
2015-03-22 13:12:45 -05:00
|
|
|
add_python_module( "${pyCpps}"
|
|
|
|
"${pyIncludes}"
|
|
|
|
"isobar;1.0;1"
|
|
|
|
Hurricane
|
|
|
|
"${depLibs}"
|
|
|
|
include/coriolis2/hurricane/isobar
|
|
|
|
)
|