Skip to content

RCV should report a successful routing even if hold isn't completely resolved #1533

Open
@dpbaines

Description

@dpbaines

Expected Behaviour

If a successful routing is achieved, i.e. there are no overused nodes and all nets have been routed the router should report a successful routing.

Current Behaviour

Right now when the RCV router is enabled, there is an exit condition that checks to see if hTNS is resolved before allowing the router to complete. There is a function to tell RCV to stop early and report a successful routing in some circumstances, however if this isn't tripped before the max iteration count is reached the router will report a failed routing.

This has caused fails on LU8PEEng and LU32PEEng which reach the maximum iteration count and report fails. These report feasible routing, but don't completely resolve hold.

Possible Solution

The easiest patch right now would be to have the router report successful routing if the routing is feasible and the maximum iteration count is reached, regardless of hTNS. This would ensure routing doesn't finish before RCV has resolved hold, while also serving as a fallback if RCV can't resolve hold but the circuit is otherwise fine.

A more robust fix would be making the RCV early exit function mentioned above smarter.

Steps to Reproduce

  1. Run vtr_qor_reg_chain test
  2. Observe LU8PEEng and LU32PEEng circuits log files

Context

I've been developing RCV this summer, and didn't get around to patching this. The point of this is to make the RCV router less failure prone.

Your Environment

  • VTR revision used: VTR 8.0
  • Operating System and version: Linux-5.8.5-arch1-1 x86_64
  • Compiler version: GNU 10.2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions