More terse failure message from the global router.

* Bug: In CRL::cstDriver(), re-activate the management of the VstUseConcat
    flag. Why was he removed in the first place?
* Change: In KatanaEngine::runGlobalRouter(), no longer give the details of
    each overflowed edge and the complete list of impacted nets.
    Only a count.
This commit is contained in:
Jean-Paul Chaput 2019-09-29 18:35:16 +02:00
parent 6faf83309e
commit 02b30b6681
3 changed files with 16 additions and 10 deletions

View File

@ -243,8 +243,8 @@ namespace Vhdl {
first = false;
}
} else {
cerr << "VhdlPortMap is in bit mode for \"" << _signal->getName() << "\""
<< " _flags:" << _flags << " mappedNames:" << _mapping.size() << endl;
// cerr << "VhdlPortMap is in bit mode for \"" << _signal->getName() << "\""
// << " _flags:" << _flags << " mappedNames:" << _mapping.size() << endl;
auto imapping = _mapping.rbegin();
bool first = true;

View File

@ -39,7 +39,7 @@ namespace CRL {
void vstDriver ( const string cellPath, Cell *cell, unsigned int& saveState )
{
unsigned int entityFlags = Vhdl::Entity::EntityMode /* | Vhdl::Entity::IeeeMode */;
/*if (saveState & Catalog::State::VstUseConcat)*/ entityFlags |= Vhdl::Entity::VstUseConcat;
if (saveState & Catalog::State::VstUseConcat) entityFlags |= Vhdl::Entity::VstUseConcat;
//NamingScheme::toVhdl( cell, NamingScheme::FromVerilog );
Vhdl::Entity* vhdlEntity = Vhdl::EntityExtension::create( cell, entityFlags );

View File

@ -19,6 +19,7 @@
#include "hurricane/Breakpoint.h"
#include "hurricane/RoutingPad.h"
#include "hurricane/Cell.h"
#include "crlcore/Utilities.h"
#include "anabatic/Dijkstra.h"
#include "katana/Block.h"
#include "katana/RoutingPlane.h"
@ -27,6 +28,7 @@
namespace {
using std::cout;
using std::cerr;
using std::endl;
using std::dec;
@ -447,19 +449,23 @@ namespace Katana {
if (not ovEdges.empty()) {
set< const Net*, Net::CompareByName > nets;
cerr << " o Global routing did not complete, overflowed edges:" << endl;
//cerr << " o Global routing did not complete, overflowed edges:" << endl;
cerr << " o Global routing did not complete." << endl;
for ( size_t iEdge = 0 ; iEdge<ovEdges.size() ; ++iEdge ) {
cerr << " " << dec << setw(4) << (iEdge+1) << "+ " << ovEdges[iEdge] << endl;
//cerr << " " << dec << setw(4) << (iEdge+1) << "+ " << ovEdges[iEdge] << endl;
for ( Segment* segment : ovEdges[iEdge]->getSegments() ) {
cerr << " | " << segment << " " << DbU::getValueString(segment->getLength()) << endl;
//cerr << " | " << segment << " " << DbU::getValueString(segment->getLength()) << endl;
nets.insert( segment->getNet() );
}
}
cerr << " o Conflicting nets:" << endl;
size_t count = 0;
for ( const Net* net : nets )
cerr << " " << dec << setw(4) << (++count) << "| " << net->getName() << endl;
//cerr << " o Conflicting nets:" << endl;
//size_t count = 0;
//for ( const Net* net : nets )
// cerr << " " << dec << setw(4) << (++count) << "| " << net->getName() << endl;
cout << Dots::asUInt (" - Overflowed edges" ,ovEdges.size()) << endl;
cout << Dots::asUInt (" - Unsatisfied nets" ,nets .size()) << endl;
}
if (getBlock(0)) {