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:
parent
6faf83309e
commit
02b30b6681
|
@ -243,8 +243,8 @@ namespace Vhdl {
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cerr << "VhdlPortMap is in bit mode for \"" << _signal->getName() << "\""
|
// cerr << "VhdlPortMap is in bit mode for \"" << _signal->getName() << "\""
|
||||||
<< " _flags:" << _flags << " mappedNames:" << _mapping.size() << endl;
|
// << " _flags:" << _flags << " mappedNames:" << _mapping.size() << endl;
|
||||||
|
|
||||||
auto imapping = _mapping.rbegin();
|
auto imapping = _mapping.rbegin();
|
||||||
bool first = true;
|
bool first = true;
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace CRL {
|
||||||
void vstDriver ( const string cellPath, Cell *cell, unsigned int& saveState )
|
void vstDriver ( const string cellPath, Cell *cell, unsigned int& saveState )
|
||||||
{
|
{
|
||||||
unsigned int entityFlags = Vhdl::Entity::EntityMode /* | Vhdl::Entity::IeeeMode */;
|
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 );
|
//NamingScheme::toVhdl( cell, NamingScheme::FromVerilog );
|
||||||
Vhdl::Entity* vhdlEntity = Vhdl::EntityExtension::create( cell, entityFlags );
|
Vhdl::Entity* vhdlEntity = Vhdl::EntityExtension::create( cell, entityFlags );
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "hurricane/Breakpoint.h"
|
#include "hurricane/Breakpoint.h"
|
||||||
#include "hurricane/RoutingPad.h"
|
#include "hurricane/RoutingPad.h"
|
||||||
#include "hurricane/Cell.h"
|
#include "hurricane/Cell.h"
|
||||||
|
#include "crlcore/Utilities.h"
|
||||||
#include "anabatic/Dijkstra.h"
|
#include "anabatic/Dijkstra.h"
|
||||||
#include "katana/Block.h"
|
#include "katana/Block.h"
|
||||||
#include "katana/RoutingPlane.h"
|
#include "katana/RoutingPlane.h"
|
||||||
|
@ -27,6 +28,7 @@
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
using std::cout;
|
||||||
using std::cerr;
|
using std::cerr;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
using std::dec;
|
using std::dec;
|
||||||
|
@ -447,19 +449,23 @@ namespace Katana {
|
||||||
if (not ovEdges.empty()) {
|
if (not ovEdges.empty()) {
|
||||||
set< const Net*, Net::CompareByName > nets;
|
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 ) {
|
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() ) {
|
for ( Segment* segment : ovEdges[iEdge]->getSegments() ) {
|
||||||
cerr << " | " << segment << " " << DbU::getValueString(segment->getLength()) << endl;
|
//cerr << " | " << segment << " " << DbU::getValueString(segment->getLength()) << endl;
|
||||||
nets.insert( segment->getNet() );
|
nets.insert( segment->getNet() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cerr << " o Conflicting nets:" << endl;
|
//cerr << " o Conflicting nets:" << endl;
|
||||||
size_t count = 0;
|
//size_t count = 0;
|
||||||
for ( const Net* net : nets )
|
//for ( const Net* net : nets )
|
||||||
cerr << " " << dec << setw(4) << (++count) << "| " << net->getName() << endl;
|
// 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)) {
|
if (getBlock(0)) {
|
||||||
|
|
Loading…
Reference in New Issue