Minor router1 debug log improvements
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
parent
51b09f2407
commit
caca485cff
@ -666,12 +666,18 @@ struct Router1
|
|||||||
|
|
||||||
WireId cursor = dst_wire;
|
WireId cursor = dst_wire;
|
||||||
delay_t accumulated_path_delay = 0;
|
delay_t accumulated_path_delay = 0;
|
||||||
|
delay_t last_path_delay_delta = 0;
|
||||||
while (1) {
|
while (1) {
|
||||||
auto pip = visited[cursor].pip;
|
auto pip = visited[cursor].pip;
|
||||||
|
|
||||||
if (ctx->debug) {
|
if (ctx->debug) {
|
||||||
log(" node %s (%+.1f)\n", ctx->nameOfWire(cursor),
|
delay_t path_delay_delta = ctx->estimateDelay(cursor, dst_wire) - accumulated_path_delay;
|
||||||
ctx->getDelayNS(ctx->estimateDelay(cursor, dst_wire)) - ctx->getDelayNS(accumulated_path_delay));
|
|
||||||
|
log(" node %s (%+.2f %+.2f)\n", ctx->nameOfWire(cursor), ctx->getDelayNS(path_delay_delta),
|
||||||
|
ctx->getDelayNS(path_delay_delta - last_path_delay_delta));
|
||||||
|
|
||||||
|
last_path_delay_delta = path_delay_delta;
|
||||||
|
|
||||||
if (pip != PipId())
|
if (pip != PipId())
|
||||||
accumulated_path_delay += ctx->getPipDelay(pip).maxDelay();
|
accumulated_path_delay += ctx->getPipDelay(pip).maxDelay();
|
||||||
accumulated_path_delay += ctx->getWireDelay(cursor).maxDelay();
|
accumulated_path_delay += ctx->getWireDelay(cursor).maxDelay();
|
||||||
|
@ -46,7 +46,8 @@ See [archapi.md](archapi.md) for a complete reference of the architecture API.
|
|||||||
### Delay Estimates
|
### Delay Estimates
|
||||||
|
|
||||||
Each architecture must implement a `estimateDelay()` method that estimates the expected delay for a path from given `src` to `dst` wires.
|
Each architecture must implement a `estimateDelay()` method that estimates the expected delay for a path from given `src` to `dst` wires.
|
||||||
*It is very important that this method slightly overestimates the expected delay.* Otherwise there will be performance issues with the router.
|
*It is very important that this method slightly overestimates the expected delay.* Furthermore, it should overestimate the expected delay
|
||||||
|
by a slightly larger margin for longer paths than for shorter paths. Otherwise there will be performance issues with the router.
|
||||||
|
|
||||||
The delays estimates returned by that method should also be as fine-grain as possible. It definitely pays off to spend some time improving the `estimateDelay()`
|
The delays estimates returned by that method should also be as fine-grain as possible. It definitely pays off to spend some time improving the `estimateDelay()`
|
||||||
for your architecture once implementing small designs work.
|
for your architecture once implementing small designs work.
|
||||||
|
Loading…
Reference in New Issue
Block a user