*** tpb <[email protected]> has joined #symbiflow | 00:00 | |
*** tucanae47_ <[email protected]> has quit IRC (Ping timeout: 252 seconds) | 02:06 | |
*** elms_ <elms_!sid284710@2a03:5180:f:4::4:5826> has quit IRC (Ping timeout: 268 seconds) | 02:08 | |
*** gatecat_ <[email protected]> has joined #symbiflow | 02:08 | |
*** gatecat <gatecat!sid281702@2a03:5180:f:1::4:4c66> has quit IRC (Ping timeout: 268 seconds) | 02:08 | |
*** gatecat_ is now known as gatecat | 02:08 | |
*** benreynwar_ <[email protected]> has joined #symbiflow | 02:08 | |
*** benreynwar <[email protected]> has quit IRC (Ping timeout: 268 seconds) | 02:09 | |
*** benreynwar_ is now known as benreynwar | 02:09 | |
*** elms_ <[email protected]> has joined #symbiflow | 02:10 | |
*** tucanae47_ <[email protected]> has joined #symbiflow | 02:24 | |
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 09:41 | |
*** TMM_ <[email protected]> has joined #symbiflow | 09:41 | |
sf-slack1 | <gergo> I have a small "pocket calculator" circuit that supports both serial and keypad/seven-segment IO. I am targeting the `xc7a50tcsg324-1` model. If I synthesize it with Vivado, both serial and keypad/seven-segment IO works. If I synthesize with SymbiFlow, only serial works: there's no output on the seven-segment display, and pressing any of the keypad buttons doesn't work. I tried a simple combinational circuit that just | 10:05 |
---|---|---|
sf-slack1 | sets the seven-segment display based on the value of switches, and that one works with SymbiFlow. I have uploaded the full code to https://github.com/gergoerdi/symbiflow-sevensegment-bug. How would I start figuring out what is going wrong with SymbiFlow? | 10:05 |
sf-slack1 | <gergo> The way the circuit works, both serial and keypad input is fed into the same state, and both the seven-segment display and serial output shows this shared state at the same time. So there is no separate "serial in - serial out" calculator and "keypad in - SS out" calculator. | 10:07 |
sf-slack1 | <gergo> I can, of course, start bisecting on the actual circuit functionality (in the original Clash source), if someone can tell me what direction I should try cutting for it to be helpful. | 10:08 |
sf-slack1 | <kgugala> what IO standard do you use in the design? | 10:09 |
sf-slack1 | <gergo> I'm using the XDC file that I downloaded from the FPGA dev board vendor's website | 10:09 |
sf-slack1 | <kgugala> Oh I see | 10:09 |
sf-slack1 | <kgugala> simple CMOS33 | 10:09 |
sf-slack1 | <gergo> the seven-segment display is integrated onto the board so the vendor's XDC should be correct | 10:09 |
sf-slack1 | <gergo> the keypad is connected via a PMOD connector | 10:10 |
sf-slack1 | <gergo> (I hope these answer your questions...) | 10:10 |
sf-slack1 | <kgugala> you can try runnign the bitstream through fasm2bels to decompile it and get structural verilog | 10:11 |
sf-slack1 | <gergo> where do I get that from? I only have `fasm2frames` | 10:11 |
sf-slack1 | <kgugala> later, this decompiled design can be run through vivado | 10:12 |
sf-slack1 | <kgugala> you can get some info from the vivado run | 10:12 |
sf-slack1 | <kgugala> https://github.com/SymbiFlow/symbiflow-xc-fasm2bels | 10:12 |
sf-slack1 | <kgugala> this one can be used to decompile 7-series bitstreams | 10:12 |
sf-slack1 | <gergo> thanks, I'll give it a shot | 10:13 |
sf-slack1 | <gergo> Umm, what do I do after `make build`? | 10:16 |
sf-slack1 | <kgugala> in general this is a python tool | 10:17 |
sf-slack1 | <kgugala> you can install it with pip | 10:17 |
sf-slack1 | <kgugala> and use the `fasm2bels` command | 10:17 |
sf-slack1 | <gergo> `pip3 install --user fasm2bels` fails with `No matching distribution found for python-fpga-interchange` | 10:18 |
sf-slack1 | <kgugala> first install https://github.com/SymbiFlow/symbiflow-xc-fasm2bels/blob/master/requirements.txt | 10:19 |
sf-slack1 | <gergo> (this is in an env where I have `conda activate`d the SymbiFlow `xc7` environment) | 10:19 |
sf-slack1 | <gergo> oh wtf so `make env` is now installing yet another copy of everything... | 10:20 |
sf-slack1 | <kgugala> it goes with this env https://github.com/SymbiFlow/symbiflow-xc-fasm2bels/blob/master/environment.yml | 10:21 |
sf-slack1 | <kgugala> it should not install everything | 10:21 |
sf-slack1 | <gergo> I now managed to get `pip3 install --user fasm2bels` to finish without errors, still no executable script anywhere | 10:25 |
sf-slack1 | <gergo> is it just a library that I will need to use from a Python `main` that I'll need to write? | 10:25 |
sf-slack1 | <kgugala> it is a tool | 10:25 |
sf-slack1 | <kgugala> try `symbiflow_fasm2bels` | 10:25 |
sf-slack1 | <gergo> OK I'm completely lost. So I installed `symbiflow` itself by blindly following the instructions for `symbiflow-examples` , which led me to this rat's nest of files at random locations with a `conda` environment that I need to hope sorts everything out. But now, I can't find `symbiflow_fasm2bels` next to the other `symbiflow_*` frontend scripts. | 10:27 |
sf-slack1 | <gergo> and since this is a Python program, I'd expect the `.egg` to be egg-xecutable (...), but alas, it says there's no `__main__` in it... | 10:28 |
sf-slack1 | <kgugala> if you installed a python package with pip it should be with the rest of python's pacakages | 10:28 |
sf-slack1 | <kgugala> [...]lib/python3.X/site-packages | 10:29 |
sf-slack1 | <kgugala> once you install the module you can run it with e.g. `ython3 -m fasm2bels --help` | 10:39 |
sf-slack1 | <gergo> ah hah! that one does work. | 12:17 |
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 12:19 | |
sf-slack1 | <gergo> so `python3 -m fasm2bels` works, but I don't have a `symbiflow_fasm2bels` script to set the DB root etc. | 12:19 |
*** TMM_ <[email protected]> has joined #symbiflow | 12:19 | |
sf-slack1 | <gergo> I got as far as `python3 -m fasm2bels --fasm_file _build/Top.fasm --db_root ~/.conda/envs/xc7/share/symbiflow/prjxray-db/artix7/ --part xc7a50tcsg324-1`. The only missing argument is the `connection_database` that seems to require a SQLite database file. I tried looking at the files installed from SymbiFlow but I can't see any SQLite databases. What should I pass for this parameter? | 12:30 |
sf-slack1 | <gergo> oh there's a `create_channels` module under `fasm2bels`. | 12:35 |
sf-slack1 | <gergo> lol it uses `--db-root` whereas the toplevel main uses `--db_root` :) | 12:35 |
sf-slack1 | <gergo> Unfortunately, `fasm2bels` seems to fail on the `.fasm` file generated from https://github.com/gergoerdi/symbiflow-sevensegment-bug: ```$ python3 -m fasm2bels --fasm_file _build/Top.fasm --db_root ~/.conda/envs/xc7/share/symbiflow/prjxray-db/artix7/ --part xc7a50tcsg324-1 --connection_database ~/prog/fpga/symbiflow/symbiflow-xc-fasm2bels/channels.s3db | 12:41 |
sf-slack1 | /home/cactus/.conda/envs/xc7/lib/python3.7/site-packages/fasm/parser/__init__.py:33: RuntimeWarning: Unable to import fast Antlr4 parser implementation. ImportError: cannot import name 'antlr_to_tuple' from 'fasm.parser' (/home/cactus/.conda/envs/xc7/lib/python3.7/site-packages/fasm/parser/__init__.py) Falling back to the much slower pure Python textX based parser implementation. Getting the faster antlr parser can | 12:41 |
sf-slack1 | normally be done by installing the required dependencies and then reinstalling the fasm package with: pip uninstall pip install -v fasm """.format(e), RuntimeWarning) Traceback (most recent call last): File "/home/cactus/.conda/envs/xc7/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/home/cactus/.conda/envs/xc7/lib/python3.7/runpy.py", line 85, in _run_code | 12:41 |
sf-slack1 | exec(code, run_globals) File "/home/cactus/.local/lib/python3.7/site-packages/fasm2bels-0.0.1-py3.7.egg/fasm2bels/__main__.py", line 15, in <module> main() File "/home/cactus/.local/lib/python3.7/site-packages/fasm2bels-0.0.1-py3.7.egg/fasm2bels/fasm2bels.py", line 475, in main process_tile(top, tile, tile_features) File | 12:41 |
sf-slack1 | "/home/cactus/.local/lib/python3.7/site-packages/fasm2bels-0.0.1-py3.7.egg/fasm2bels/fasm2bels.py", line 139, in process_tile PROCESS_TILE[tile_type](top.conn, top, tile, tile_features) File "/home/cactus/.local/lib/python3.7/site-packages/fasm2bels-0.0.1-py3.7.egg/fasm2bels/models/clb_models.py", line 2079, in process_clb process_slice(top, slices[s]) File | 12:41 |
sf-slack1 | "/home/cactus/.local/lib/python3.7/site-packages/fasm2bels-0.0.1-py3.7.egg/fasm2bels/models/clb_models.py", line 1840, in process_slice assert False AssertionError``` | 12:41 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!