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

assert - no upstream connection #29

Closed
jgoeders opened this issue Oct 9, 2020 · 4 comments
Closed

assert - no upstream connection #29

jgoeders opened this issue Oct 9, 2020 · 4 comments

Comments

@jgoeders
Copy link
Contributor

jgoeders commented Oct 9, 2020

I have the following design (dcp and fasm in zip) that was compiled (Verilog to bistream) using Vivado.
design.zip

I'm running into an assertion during make_routes:

https://github.com/SymbiFlow/symbiflow-xc-fasm2bels/blob/8961d6a3b8c0dad0e3800180d4fe788fe93744bb/fasm2bels/make_routes.py#L625

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/__main__.py", line 4, in <module>
    main()
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/fasm2bels.py", line 455, in main
    top.make_routes(allow_orphan_sinks=args.allow_orphan_sinks)
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/models/verilog_modeling.py", line 2270, in make_routes
    for sink_wire, src_wire in make_routes(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 701, in make_routes
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 472, in expand_sink
    expand_sink(
  File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/make_routes.py", line 625, in expand_sink
    assert False, (sink_node_pkey, tile_name, wire_name, sink_wire_pkey)
AssertionError: (4909118, 'CLK_BUFG_BOT_R_X139Y152', 'CLK_BUFG_BOT_R_CK_MUXED0', 6787259)

There appears to be one BUFG used in this tile. It is fed by a wire that seems to come from this INTER to the left, but also from a long route from an IOB (maybe this is normal to be drawn like this?)

image

The long wire is driven by an IOB input:

image

@mithro
Copy link
Contributor

mithro commented Oct 12, 2020

@litghost - Any ideas?

@litghost
Copy link
Contributor

Nevermind, one minute

@litghost
Copy link
Contributor

@jgoeders It looks the problem is that you decoded the bit -> fasm using an old prjxray-db. I used the latest prjxray-db and saw the following feature in my fasm that was missing from yours:

2546a2547
> CLK_HROW_BOT_R_X139Y130.CLK_HROW_BOT_R_CK_BUFG_CASCO0.CLK_HROW_BOT_R_CK_BUFG_CASCIN0

That first feature explains the missing route. Something to do in the future is always run bit2fasm with --verbose, and grep for unknown features (e.g. grep unknown design.fasm) to make sure all features were decoded.

@jgoeders
Copy link
Contributor Author

Thanks! This is very helpful. I'll add that grep check to my flow.

I was using the prjxray-db cloned by fasm2bels -- didn't even cross my mind that it was out of date. Thanks for the debug help!!

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

3 participants