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...
This commit is contained in:
Jean-Paul Chaput 2021-10-16 13:45:14 +02:00
parent e80df4538d
commit 5343f9c98b
1 changed files with 9 additions and 1 deletions

View File

@ -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." );
}