Saturday, 2021-10-16

*** tpb <[email protected]> has joined #symbiflow00: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 #symbiflow02:08
*** gatecat <gatecat!sid281702@2a03:5180:f:1::4:4c66> has quit IRC (Ping timeout: 268 seconds)02:08
*** gatecat_ is now known as gatecat02:08
*** benreynwar_ <[email protected]> has joined #symbiflow02:08
*** benreynwar <[email protected]> has quit IRC (Ping timeout: 268 seconds)02:09
*** benreynwar_ is now known as benreynwar02:09
*** elms_ <[email protected]> has joined #symbiflow02:10
*** tucanae47_ <[email protected]> has joined #symbiflow02:24
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)09:41
*** TMM_ <[email protected]> has joined #symbiflow09: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 just10:05
sf-slack1sets 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 website10:09
sf-slack1<kgugala> Oh I see10:09
sf-slack1<kgugala> simple CMOS3310:09
sf-slack1<gergo> the seven-segment display is integrated onto the board so the vendor's XDC should be correct10:09
sf-slack1<gergo> the keypad is connected via a PMOD connector10: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 verilog10: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 vivado10:12
sf-slack1<kgugala> you can get some info from the vivado run10:12
sf-slack1<kgugala> https://github.com/SymbiFlow/symbiflow-xc-fasm2bels10:12
sf-slack1<kgugala> this one can be used to decompile 7-series bitstreams10:12
sf-slack1<gergo> thanks, I'll give it a shot10:13
sf-slack1<gergo> Umm, what do I do after `make build`?10:16
sf-slack1<kgugala> in general this is a python tool10:17
sf-slack1<kgugala> you can install it with pip10:17
sf-slack1<kgugala> and use the `fasm2bels` command10: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.txt10: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.yml10:21
sf-slack1<kgugala> it should not install everything10:21
sf-slack1<gergo> I now managed to get `pip3 install --user fasm2bels` to finish without errors, still no executable script anywhere10: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 tool10: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 pacakages10:28
sf-slack1<kgugala> [...]lib/python3.X/site-packages10: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 #symbiflow12: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 can12:41
sf-slack1normally 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-slack1exec(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)   File12: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])   File12: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/!