Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite loop in router for a large fraction of seeds on a consistent net #1341

Open
ld-cd opened this issue Jul 11, 2024 · 0 comments
Open

Comments

@ld-cd
Copy link

ld-cd commented Jul 11, 2024

This is similar to #179 and #1189, the router enters an infinite loop when routing the following net, always alternating between two arcs. On some seeds the router finishes immediately and the design works otherwise it enters an infinite loop. I am using "yowasp-nextpnr-ice40" -- Next Generation Place and Route (Version nextpnr-0.7) on MacOS. On linux running "nextpnr-ice40" -- Next Generation Place and Route (Version nextpnr-0.7-47-gba293437) the router always succeeds.

Here are the build artifacts for both a working and non working run: https://gist.github.com/ld-cd/af1fcfca837cdc477948e73dc09660d3

As well as the glasgow applet: https://gist.github.com/ld-cd/72b393e78da0a5a33916cc293a33119d#file-__init__-py-L65

The stuff I'm doing with the PLLs is admittedly highly questionable but this net should be upstream of that

-- 21046 --
Routing arc 3 on net multiplexer.U$0.U$0.modindex[0] (7 arcs total):
  source ... X18/Y5/lutff_4:out
  sink ..... X17/Y7/lutff_0:in_1_lut
  total number of visited nodes: 111
  final route delay:       0.96
  final route penalty:  1195.63
  final route bonus:       0.17
  node X17/Y7/lutff_0:in_1_lut (+0.01 +0.01)
    ripup pip X17/Y7/17.7.lutff_0:in_1.->.17.7.lutff_0:in_1_lut
      unbind wire X17/Y7/lutff_0:in_2_lut
    bind pip X17/Y7/17.7.lutff_0:in_1.->.17.7.lutff_0:in_1_lut
  node X17/Y7/lutff_0:in_1 (+0.01 +0.00)
  node X17/Y7/local_g3_0 (+0.01 +0.00)
  node X18/Y8/sp4_v_b_5 (-0.16 -0.17)
  node X18/Y5/lutff_4:out (+0.25 +0.41)
-- 21047 --
Routing arc 2 on net multiplexer.U$0.U$0.modindex[0] (7 arcs total):
  source ... X18/Y5/lutff_4:out
  sink ..... X17/Y7/lutff_0:in_2_lut
  total number of visited nodes: 111
  final route delay:       0.96
  final route penalty:  1204.65
  final route bonus:       0.17
  node X17/Y7/lutff_0:in_2_lut (+0.01 +0.01)
    ripup pip X17/Y7/17.7.lutff_0:in_1.->.17.7.lutff_0:in_2_lut
      unbind wire X17/Y7/lutff_0:in_1_lut
    bind pip X17/Y7/17.7.lutff_0:in_1.->.17.7.lutff_0:in_2_lut
  node X17/Y7/lutff_0:in_1 (+0.01 +0.00)
  node X17/Y7/local_g3_0 (+0.01 +0.00)
  node X18/Y8/sp4_v_b_5 (-0.16 -0.17)
  node X18/Y5/lutff_4:out (+0.25 +0.41)
-- 21048 --
@ld-cd ld-cd changed the title Infinite in router for a large fraction of seeds on a consistent net Infinite loop in router for a large fraction of seeds on a consistent net Jul 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant