2010-03-09 09:24:55 -06:00
|
|
|
|
|
|
|
include ( ${QT_USE_FILE} )
|
|
|
|
|
2010-06-08 07:03:24 -05:00
|
|
|
include_directories ( ${KITE_SOURCE_DIR}/src
|
2010-03-09 09:24:55 -06:00
|
|
|
${CORIOLIS_INCLUDE_DIR}
|
2010-06-18 09:03:38 -05:00
|
|
|
${HURRICANE_INCLUDE_DIR}
|
|
|
|
${CONFIGURATION_INCLUDE_DIR}
|
|
|
|
${Boost_INCLUDE_DIRS}
|
2010-03-09 09:24:55 -06:00
|
|
|
)
|
|
|
|
set ( includes kite/TrackSegmentCost.h
|
|
|
|
kite/TrackCost.h
|
|
|
|
kite/DataNegociate.h
|
|
|
|
kite/TrackElement.h kite/TrackElements.h
|
|
|
|
kite/TrackSegment.h
|
|
|
|
kite/TrackFixedSegment.h
|
|
|
|
kite/TrackMarker.h
|
|
|
|
kite/Track.h
|
|
|
|
kite/Tracks.h
|
|
|
|
kite/HorizontalTrack.h
|
|
|
|
kite/VerticalTrack.h
|
|
|
|
kite/Session.h
|
|
|
|
kite/RoutingEvent.h
|
|
|
|
kite/RoutingEventQueue.h
|
|
|
|
kite/RoutingEventHistory.h
|
* ./Kite:
- New: In BuildPowerRails, special processing for the power ring segments.
The "diagonal" of vias at each corner is causing a misbehavior of the
routing algorithm (due to fully saturated GCells in one direction).
As a temporary fix, extend the segments so they form a "square corner".
(problem arise on "d_in_i(22)").
- New: In RoutingEvent::_processNegociate, disable the "isForcedToHint()"
feature. No noticeable loss of quality or speed.
- New: In TrackElement/TrackSegment, wraps the AutoSegment parent's mechanism.
Allows to gets the DataNegociate of either the segment or it's parent.
- New: State::solveFullBlockages(), dedicated method to solves the case when
all the allowed tracks of a segment are blocked, tries to moves up
local segments and to break-up global ones.
- New: RoutingEventLoop, a more sophisticated way to detect looping.
Maintain a dynamic histogram of the last N (default 10) segments routeds,
with the count of how many times they have occurred. If that count
exeed 40, we *may* be facing a loop.
- Change: In State::conflictSolve1, implement new policy. The global segments
no more can be broken by local ones. The idea behind is that breaking
a global on the request of a local will only produce more cluttering
in the GCell. Globals must be keep straigth pass through, especially
inside near-saturated GCells. Globals breaking however can occurs at
another global's request.
- Change: In TrackCost, implement the new policy about locals segments that
cannot break globals segments. The sorting class now accept flags to
modulate the sorting function. Two options avalaibles: IgnoreAxisWeigth
(to uses for strap segments) and DiscardGlobals (to uses with locals).
- Change: In TrackCost, the "distance to fixed" have now an upper bound of
50 lambdas (no need to be greater because it means it's outside the
begin & en GCells). Take account not only of fixed segment, but also
of placed segments which makes bound.
- Bug: In Track::_check(), while calling each individual TrackSegment check,
uses it as the *first* argument of the "or", otherwise it may not be
called.
- Bug: In ProtectRoutingPad, loop over segment Collections while modificating
it was producing non-deterministic results. The fact that a collection
must be not modificated while beeing iterated is becoming a more and more
painful problem.
2010-12-30 12:42:17 -06:00
|
|
|
kite/RoutingEventLoop.h
|
2010-03-09 09:24:55 -06:00
|
|
|
kite/RoutingPlane.h
|
|
|
|
kite/NegociateWindow.h
|
|
|
|
kite/Configuration.h
|
|
|
|
kite/KiteEngine.h
|
|
|
|
kite/GraphicKiteEngine.h
|
|
|
|
)
|
2010-06-18 09:03:38 -05:00
|
|
|
set ( mocIncludes kite/GraphicKiteEngine.h )
|
2010-03-09 09:24:55 -06:00
|
|
|
set ( cpps TrackSegmentCost.cpp
|
|
|
|
TrackCost.cpp
|
|
|
|
DataNegociate.cpp
|
|
|
|
TrackElement.cpp
|
|
|
|
TrackElements.cpp
|
|
|
|
TrackSegment.cpp
|
|
|
|
TrackFixedSegment.cpp
|
|
|
|
TrackMarker.cpp
|
|
|
|
Track.cpp
|
|
|
|
Tracks.cpp
|
|
|
|
HorizontalTrack.cpp
|
|
|
|
VerticalTrack.cpp
|
|
|
|
Session.cpp
|
|
|
|
RoutingEvent.cpp
|
|
|
|
RoutingEventQueue.cpp
|
|
|
|
RoutingEventHistory.cpp
|
* ./Kite:
- New: In BuildPowerRails, special processing for the power ring segments.
The "diagonal" of vias at each corner is causing a misbehavior of the
routing algorithm (due to fully saturated GCells in one direction).
As a temporary fix, extend the segments so they form a "square corner".
(problem arise on "d_in_i(22)").
- New: In RoutingEvent::_processNegociate, disable the "isForcedToHint()"
feature. No noticeable loss of quality or speed.
- New: In TrackElement/TrackSegment, wraps the AutoSegment parent's mechanism.
Allows to gets the DataNegociate of either the segment or it's parent.
- New: State::solveFullBlockages(), dedicated method to solves the case when
all the allowed tracks of a segment are blocked, tries to moves up
local segments and to break-up global ones.
- New: RoutingEventLoop, a more sophisticated way to detect looping.
Maintain a dynamic histogram of the last N (default 10) segments routeds,
with the count of how many times they have occurred. If that count
exeed 40, we *may* be facing a loop.
- Change: In State::conflictSolve1, implement new policy. The global segments
no more can be broken by local ones. The idea behind is that breaking
a global on the request of a local will only produce more cluttering
in the GCell. Globals must be keep straigth pass through, especially
inside near-saturated GCells. Globals breaking however can occurs at
another global's request.
- Change: In TrackCost, implement the new policy about locals segments that
cannot break globals segments. The sorting class now accept flags to
modulate the sorting function. Two options avalaibles: IgnoreAxisWeigth
(to uses for strap segments) and DiscardGlobals (to uses with locals).
- Change: In TrackCost, the "distance to fixed" have now an upper bound of
50 lambdas (no need to be greater because it means it's outside the
begin & en GCells). Take account not only of fixed segment, but also
of placed segments which makes bound.
- Bug: In Track::_check(), while calling each individual TrackSegment check,
uses it as the *first* argument of the "or", otherwise it may not be
called.
- Bug: In ProtectRoutingPad, loop over segment Collections while modificating
it was producing non-deterministic results. The fact that a collection
must be not modificated while beeing iterated is becoming a more and more
painful problem.
2010-12-30 12:42:17 -06:00
|
|
|
RoutingEventLoop.cpp
|
2010-03-09 09:24:55 -06:00
|
|
|
RoutingPlane.cpp
|
|
|
|
BuildPowerRails.cpp
|
* ./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 08:00:03 -06:00
|
|
|
ProtectRoutingPads.cpp
|
2010-03-09 09:24:55 -06:00
|
|
|
PreProcess.cpp
|
|
|
|
NegociateWindow.cpp
|
|
|
|
Configuration.cpp
|
|
|
|
KiteEngine.cpp
|
|
|
|
GraphicKiteEngine.cpp
|
|
|
|
)
|
|
|
|
set ( kitecpps KiteMain.cpp )
|
|
|
|
qt4_wrap_cpp ( mocCpps ${mocIncludes} )
|
|
|
|
|
|
|
|
|
2010-07-12 10:12:20 -05:00
|
|
|
add_library ( kite ${cpps} ${mocCpps} )
|
2011-02-02 16:25:26 -06:00
|
|
|
set_target_properties ( kite PROPERTIES VERSION 1.0 SOVERSION 1 )
|
2010-07-12 10:12:20 -05:00
|
|
|
target_link_libraries ( kite ${KATABATIC_LIBRARIES}
|
|
|
|
${KNIK_LIBRARIES}
|
|
|
|
${NIMBUS_LIBRARIES}
|
|
|
|
${CORIOLIS_LIBRARIES}
|
|
|
|
${HURRICANE_PYTHON_LIBRARIES}
|
|
|
|
${HURRICANE_GRAPHICAL_LIBRARIES}
|
|
|
|
${HURRICANE_LIBRARIES}
|
|
|
|
${CONFIGURATION_LIBRARY}
|
2010-08-18 15:25:02 -05:00
|
|
|
${BOOKSHELF_LIBRARY}
|
2010-07-12 10:12:20 -05:00
|
|
|
${CIF_LIBRARY}
|
|
|
|
${AGDS_LIBRARY}
|
|
|
|
${LEFDEF_LIBRARIES}
|
|
|
|
${OA_LIBRARIES}
|
|
|
|
${QT_LIBRARIES}
|
|
|
|
${Boost_LIBRARIES}
|
|
|
|
${LIBXML2_LIBRARIES}
|
|
|
|
${PYTHON_LIBRARIES} -lutil
|
2010-03-09 09:24:55 -06:00
|
|
|
)
|
|
|
|
|
2010-07-12 10:12:20 -05:00
|
|
|
add_executable ( kite-text ${kitecpps} )
|
|
|
|
target_link_libraries ( kite-text kite )
|
|
|
|
install ( TARGETS kite DESTINATION lib${LIB_SUFFIX} )
|
|
|
|
install ( TARGETS kite-text DESTINATION bin )
|
|
|
|
|
|
|
|
install ( FILES ${includes}
|
|
|
|
${mocIncludes} DESTINATION include/coriolis2/kite )
|
2010-03-09 09:24:55 -06:00
|
|
|
|