From 5343f9c98b286dde2d472765b311b0d1501de456 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 16 Oct 2021 13:45:14 +0200 Subject: [PATCH] Disable tie cell insertion in EtesianEngine::toHurricane(). * Change: In Etesianengine::toHurricane(), no longer call interTies(). This *should* no longer be needed as almost all standard cells (SxLib & FlexLib) already contains polarisation contacts. So do not need to disturb the placement. Secondly, in presence of a H-Tree, when there is not enough space to insert a sufficient number of tie cell, the lefmost one in the sub-row is shifted to left, overlaping the H-Tree buffer cells. This is a bug (even signaled by a warning). But as this part is disabled, I won't correct it soon... --- etesian/src/Placement.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/etesian/src/Placement.cpp b/etesian/src/Placement.cpp index 8a8ec225..cc138e8f 100644 --- a/etesian/src/Placement.cpp +++ b/etesian/src/Placement.cpp @@ -16,6 +16,7 @@ #include "hurricane/Error.h" #include "hurricane/Warning.h" +#include "hurricane/Breakpoint.h" #include "hurricane/DataBase.h" #include "hurricane/DebugSession.h" #include "hurricane/UpdateSession.h" @@ -35,8 +36,9 @@ namespace Etesian { using namespace std; using Hurricane::tab; - using Hurricane::Warning; using Hurricane::Error; + using Hurricane::Warning; + using Hurricane::Breakpoint; using Hurricane::Path; using Hurricane::Transformation; using Hurricane::DataBase; @@ -738,6 +740,8 @@ namespace Etesian { void EtesianEngine::toHurricane () { + Breakpoint::stop( 101, "EtesianEngine::toHurricane() called." ); + if (not getFeedCells().feedNumbers()) { cerr << Warning( "EtesianEngine::readSlices(): No feed cells available, skipping." ) << endl; return; @@ -813,6 +817,7 @@ namespace Etesian { _area->buildSubSlices(); _area->showSubSlices(); +#if DISABLED_TIE_INSERTION if (getConfiguration()->getLatchUpDistance()) { Cell* feed = getFeedCells().getBiggestFeed(); DbU::Unit tieSpacing = getConfiguration()->getLatchUpDistance()*2 - feed->getAbutmentBox().getWidth(); @@ -820,12 +825,15 @@ namespace Etesian { tieSpacing -= feed->getAbutmentBox().getWidth(); _area->insertTies( tieSpacing ); } +#endif _area->addFeeds(); UpdateSession::close(); //DebugSession::close(); if (_viewer) _viewer->getCellWidget()->refresh(); + + Breakpoint::stop( 101, "EtesianEngine::toHurricane() finished." ); }