Thursday, 2021-01-28

*** tpb has joined #symbiflow00:00
*** xobs has joined #symbiflow00:02
*** promach3 has joined #symbiflow00:02
*** unrznbl[m] has joined #symbiflow00:02
*** abeljj[m] has joined #symbiflow00:02
*** craigo has joined #symbiflow01:14
*** tpb has joined #symbiflow02:20
*** ktemkin has quit IRC02:21
*** ktemkin_ is now known as ktemkin02:21
*** craigo has quit IRC02:22
*** ktemkin has quit IRC02:26
promach3mithro: I had already asked in #freenode_#yosys:matrix.org02:26
*** ktemkin has joined #symbiflow02:27
mithropromach3: Sorry, the people in #yosys probably know a *lot* more about formal than we do.02:28
*** citypw_ has joined #symbiflow02:41
*** maartenBE has quit IRC02:45
*** maartenBE has joined #symbiflow02:45
*** Degi_ has joined #symbiflow03:43
*** Degi has quit IRC03:44
*** Degi_ is now known as Degi03:44
*** rvalles has joined #symbiflow03:47
*** rvalles_ has quit IRC03:49
sf-slack<jgoeders> @litghost Still having some issues with fasm2bels + interchange format.  This is what I've done so far: • Downloaded/compiled rapidwright • Installed capnproto • Downloaded capnproto-java, compiled, and added capnpc-java to my PATH • After that I can "cd interchange && make" in rapidwright without error. • However, running fasm2bels test-py still hits several errors like this: ```raceback (most recent call04:36
sf-slacklast):   File "/home/jgoeders/bfasst/third_party/fasm2bels/env/lib/python3.8/site-packages/parameterized/parameterized.py", line 533, in standalone_func     return func(*(a + p.args), **p.kwargs)   File "/home/jgoeders/bfasst/third_party/fasm2bels/tests/test_fasm2bels.py", line 108, in test_fasm2bels     main()   File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/fasm2bels.py", line 493, in main04:36
sf-slackoutput_interchange(top, args.interchange_capnp_schema_dir,   File "/home/jgoeders/bfasst/third_party/fasm2bels/fasm2bels/lib/interchange.py", line 561, in output_interchange     interchange = Interchange(capnp_folder)   File "/home/jgoeders/bfasst/third_party/fasm2bels/env/lib/python3.8/site-packages/fpga_interchange/interchange_capnp.py", line 797, in __init__     self.logical_netlist_schema = capnp.load(   File04:36
sf-slack"capnp/lib/capnp.pyx", line 4030, in capnp.lib.capnp.load   File "capnp/lib/capnp.pyx", line 3293, in capnp.lib.capnp.SchemaParser.load capnp.lib.capnp.KjException: home/jgoeders/RapidWright/interchange/LogicalNetlist.capnp:1: failed: Import failed: /capnp/java.capnp``` I'm probably just missing a simple setup step, but I'm not sure what it is.  I'd be happy to update the documentation once I get it running.04:36
*** daniellimws has quit IRC05:56
*** daniellimws has joined #symbiflow05:58
*** kgugala has quit IRC06:20
*** kgugala has joined #symbiflow06:21
*** jopdorp_ is now known as jopdorp06:31
*** diamondman has quit IRC06:49
*** diamondman has joined #symbiflow06:49
*** kgugala has quit IRC07:31
*** kgugala has joined #symbiflow07:31
*** kgugala_ has joined #symbiflow07:48
*** kgugala has quit IRC07:52
LoneTechmaking minor progress. xilinx bitgen can actually report the bit and frame locations of all LUTs and RAMs (that are in use in any design) using -l08:02
*** ym_ has joined #symbiflow08:40
*** ym has quit IRC08:40
*** mkru has joined #symbiflow08:47
*** kgugala has joined #symbiflow08:51
*** kgugala_ has quit IRC08:53
*** kgugala_ has joined #symbiflow08:55
*** kgugala has quit IRC08:58
*** mkru has quit IRC09:29
*** kraiskil has joined #symbiflow09:55
*** umarcor|2 has joined #symbiflow09:56
*** umarcor has quit IRC09:58
*** kraiskil has quit IRC10:01
*** craigo_ has quit IRC10:08
*** citypw_ has quit IRC10:29
*** citypw_ has joined #symbiflow10:30
*** kraiskil has joined #symbiflow11:32
*** m_hackerfoo has quit IRC11:36
*** HackerFoo has quit IRC11:37
*** m_hackerfoo has joined #symbiflow11:41
*** HackerFoo has joined #symbiflow11:44
*** craigo_ has joined #symbiflow12:08
*** kgugala_ has quit IRC12:18
*** kgugala has joined #symbiflow12:18
*** rvalles has quit IRC12:22
*** rvalles has joined #symbiflow12:29
*** kraiskil has quit IRC12:30
*** sf-slack3 has joined #symbiflow12:31
*** sf-slack has quit IRC12:31
*** FFY00 has quit IRC12:55
*** rvalles has quit IRC13:00
*** rvalles has joined #symbiflow13:02
*** sf-slack has joined #symbiflow13:42
*** sf-slack3 has quit IRC13:45
*** rvalles has quit IRC13:46
*** rvalles has joined #symbiflow13:46
*** rvalles has quit IRC14:08
*** citypw_ has quit IRC15:26
Loftykgugala: Been looking through the test results you've sent me and added them to my chart15:53
litghostjgoeders: How did you install capnproto-java?  There was a bug in capnproto-java where it didn't install `capnp/java.capnp`, but I thought I had fixed it.15:59
litghostjgoeders: If you create an issue on fasm2bels with your replication instructions, I take a look and see where your setup went astray15:59
litghostjgoeders: But overall, I think you had the right idea16:00
litghostjgoeders: I see the problem actually.  You said " added capnpc-java to my PATH".  You want to install capnproto-java, not just add capnpc-java to the PATH16:00
litghostjgoeders: If you don't want to run "make install" on capnproto-java, we have conda packages for capnproto-java etc all16:01
Loftykgugala: So, top-120-13 is one of the ABC9 regressions, and it can be analyzed by `sta`16:04
sf-slack<kgugala> I suppose this will be good test case16:05
LoftyABC finds a 474 LC, 78.9 ns logic path16:05
LoftyABC9 finds a 702 LC, 43.1 ns logic path16:05
LoftyThe reason that -D does nothing there is because the 16.8 ns logic target is too aggressive for that design16:06
*** rvalles has joined #symbiflow16:06
LoftyAnd I bet something similar is happening for soc_litex_pwm16:06
sf-slack<kgugala> yep I think all the regressions are similar16:07
LoftySo if you do a run with `scratchpad -set abc9.D 80000` on that design, ABC9 finds a design with a lot fewer LUT4s16:09
*** FFY00 has joined #symbiflow16:10
Loftykgugala: ^16:10
sf-slack<kgugala> I see, can this parameter be somehow auto calculated? What about the two run approach you proposed yestarday?16:11
sf-slack<kgugala> (I'll run this test case)16:11
Loftykgugala: you know how e.g. Quartus will ask you to specify the target clock frequency, and complain if you don't16:12
Loftyabc9.D *is* that target clock frequency16:12
sf-slack<kgugala> can we suck in sdc file?16:13
sf-slack<kgugala> and use it to set this?16:13
LoftyThat would be feasible, yes16:13
sf-slack<kgugala> I believe we have a plugin for xdc parsing16:13
sf-slack<kgugala> https://github.com/SymbiFlow/yosys-symbiflow-plugins16:14
sf-slack<kgugala> there is an sdc plugin16:14
sf-slack<kgugala> maybe you can try using it?16:14
LoftyI would probably fudge it a little and set abc9.D to roughly half (or maybe a third) the target delay16:14
LoftyBut sure, I can give that a go16:14
litghostThe XDC + SDC plugins should provide target periods for clock wires16:15
litghosthttps://github.com/SymbiFlow/yosys-symbiflow-plugins/tree/master/sdc-plugin16:15
litghosthttps://github.com/SymbiFlow/yosys-symbiflow-plugins/blob/0a5b28fafe3d14da440291a2dc8d9af486642c84/sdc-plugin/clocks.cc#L25-L3716:15
litghostOnce the propagation pass is done, all clock wires should have clock period annotations16:16
Loftylitghost: to my knowledge, the Yosys ABC9 pass doesn't do clock partitioning, and abc9.D is a global parameter16:16
litghostOph16:16
litghostIn the long term that might be problematic16:16
litghostI know many real designs have multiple clock domains16:16
LoftyIn the long term, depending on a pass which has a maintainer that is currently on parental leave is more problematic :P16:17
litghostI'd say that just means we have a documentation/testing problem, but sure16:17
LoftyIt's uh, not that straightforward16:20
litghostNever is :)16:20
LoftyAnyway, if kgugala can provide an SDC file for the benchmarks (which might require talking to QL), then I'd be happy to plumb SDC to ABC9 support16:22
sf-slack<kgugala> those SDCs should be in QL repos16:22
LoftyI also think tuning abc9.W could be beneficial16:23
Loftyabc9.W is roughly intended to represent typical interconnect delay16:23
LoftyWhich is of course very tricky to estimate16:24
sf-slack<kgugala> https://github.com/QuickLogic-Corp/symbiflow-arch-defs/tree/quicklogic-upstream-rebase/quicklogic/pp3/tests/quicklogic_testsuite/top_120_1316:24
sf-slack<kgugala> hmm, there is no sdc16:24
sf-slack<kgugala> there is one here https://github.com/QuickLogic-Corp/symbiflow-arch-defs/tree/quicklogic-upstream-rebase/quicklogic/pp3/tests/quicklogic_testsuite/counter_16bit16:26
sf-slack<kgugala> you can grab it for tests (before we add the rest)16:26
LoftyNoted16:27
*** epony has quit IRC16:31
LoftyFunny to note: ABC gets a delay of 11.164 ns, while ABC9 gets a delay of 8.449 ns.16:31
LoftyIf you take into account potential interconnect delays, I think that means ABC fails timing16:31
Lofty(for counter_16bit)16:32
sf-slack<kgugala> I think we can have the number for interconnects16:32
sf-slack<kgugala> @mkurc can possibly help here16:32
sf-slack<mkurc> Hello. Indeed the data is present.16:33
sf-slack<mkurc> But defining a single number for LUT-to-LUT connection won't be possible as it depends on the final routing. Nevertheless we can take eg. worst case or average delay and use it in Yosys16:34
Loftymkurc: as I said, it's difficult to come up with a good number for abc9.W16:36
LoftySomething something machine learning /s16:36
sf-slack<mkurc> @Lofty: You may find routing propagation delays there: https://github.com/QuickLogic-Corp/EOS-S3/tree/master/Timing%20Data%20Files. There should be two CSV files16:37
*** emilazy has quit IRC16:37
*** emilazy has joined #symbiflow16:38
*** craigo_ has quit IRC16:43
*** rvalles has quit IRC17:07
*** kgugala has quit IRC17:07
*** rvalles has joined #symbiflow17:07
*** kgugala has joined #symbiflow17:07
*** epony has joined #symbiflow17:10
*** epony has quit IRC17:18
*** kraiskil has joined #symbiflow17:26
*** epony has joined #symbiflow17:26
nickoeammm, acomodi here?17:52
nickoeI wonder what args write_bitstream actually takes17:52
nickoehttps://github.com/SymbiFlow/symbiflow-examples/issues/123#issuecomment-76902527117:52
sf-slack<acomodi> @nickoe: https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/toolchain_wrappers/symbiflow_write_bitstream this is the script. I think we should add a help command to get its usage.17:56
sf-slack<acomodi> In general though it takes: device,  part, input FASM file and output bit  file17:57
nickoemm, why don't I see this error in the log? https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/toolchain_wrappers/symbiflow_write_bitstream#L5917:57
nickoeacomodi, do I need it for the synth command as well?17:58
nickoeit looks like the quicklogic veriosn has the device for everything?17:58
nickoehttps://github.com/nickoe/nmigen/blob/b1af42fa046b302545b0fb79fc6e40897f4d540c/nmigen/vendor/quicklogic.py#L82-L12417:58
*** infinite_recursi has joined #symbiflow17:59
nickoemmm18:00
nickoeI mean here, the device is used as an arg as well, for synth. https://github.com/SymbiFlow/symbiflow-examples/blob/b0ee6d226410a5af56af9f636d0041c0e3a712ab/xc7/counter_test/Makefile#L4518:02
nickoeacomodi, not it looks for FileNotFoundError: [Errno 2] No such file or directory: '/home/nickoe/symbiflow_install/xc7/conda/envs/xc7/share/symbiflow/prjxray-db/xc7a35t'18:03
nickoeI added "-d {{platform.device}}"18:04
sf-slack<acomodi> @nickoe No, that should be provided for the symbiflow_write_bitstream command only18:07
nickoeacomodi, I am not sure how to actually get the device string properly18:07
nickoeWhat do you mean?18:07
nickoeah, right.18:07
sf-slack<acomodi> artix based devices (e.g. xc7a50tfgg484-1) has device name ase `artix7`18:07
nickoeBut still, I am not sure if we can get the artix7 string from the current nmigen stuff, but I wonder why it is required. Can't the write_bitstream just fint it?18:08
-_whitenotifier- [symbiflow-arch-defs] acomodi opened issue #1985: Provide better usage output for the toolchain wrappers - https://git.io/Jtl8l18:09
nickoebut it looks like it tries to find that device folder by itself..18:11
nickoebut fails18:11
* nickoe adds set -x18:11
nickoehttps://dpaste.com/BSWNNSJ3418:12
tpbTitle: dpaste: BSWNNSJ34 (at dpaste.com)18:12
nickoeohh that log was with my non working patch, wait a bit18:14
nickoeunmodified incomminf18:14
*** FFY00 has quit IRC18:15
nickoeso this is unmodified https://dpaste.com/ARSDXEFUV18:16
tpbTitle: dpaste: ARSDXEFUV (at dpaste.com)18:16
nickoeomg, it does fin the dir18:16
nickoebut just not for the part_file18:16
nickoebut does not set it as the root18:17
*** FFY00 has joined #symbiflow18:18
nickoeacomodi, so I guess it is a but in the toolchain wapper instead?18:18
nickoeI mean it defines DEVICE but does not use it for the DBROOT18:18
nickoeacomodi, isn't that the root causE?18:18
nickoeah18:19
nickoeacomodi, but was introduced in https://github.com/SymbiFlow/symbiflow-arch-defs/commit/b35514859f7f02c289c2f6bc058fd3ca1c00143b18:20
nickoeit moved the DBROOT=`realpath ${XRAY_DATABASE_DIR}/${DEVICE}` up18:20
nickoemmm, acomodi, but there is still no tilegrid.json18:28
nickoewhere is that located?18:28
sf-slack<rsiddiqui> Hey everyone, I hope you all are fine and healthy. I'm Raheel an undergraduate student. I've been contributing to opensource for an year I've developed RISCV single cycle and 5 stage processor using chisel language and with that I have contributed in BURQ IDE for RISCV core testing with that I'm a python developer ranked 42 over all the world in Google Hashcode 2020 extended round. This yearI I'm really passionate18:29
sf-slackabout participating in Google Summer of code and couldn't found better organization than symbiflow for it. Can you guys help me If some one new want to contribute he can start? I would love to contribute as I just checked there are really cool projects. symbiflow18:29
nickoeor is tilegrid.json generated?18:31
nickoemm, no the other chips has it :S18:31
litghostprjxray-db conda package has it18:32
litghostexample18:32
litghost: https://github.com/SymbiFlow/prjxray-db/tree/15d169033e6ad23db508c8a4676e73c1e569dc92/artix7/xc7a100tcsg324-118:32
sf-slack<acomodi> nickoe: in the conda environment it can be found under `<install_dir>/conda/envs/xc7/share/symbiflow/prjxray-db/artix7/<part>`18:33
nickoeacomodi, yeah, it _can_ but it is not dfined for all https://github.com/SymbiFlow/symbiflow-examples/issues/123#issuecomment-76928904418:34
nickoealthough it is in https://github.com/SymbiFlow/prjxray-db/tree/15d169033e6ad23db508c8a4676e73c1e569dc92/artix7/xc7a35tcsg324-118:35
nickoewhy is it not present locally for me?18:35
litghostnickoe: The file paths are getting switched around18:35
sf-slack<acomodi> Yeah, so, there was a recent change in the database structure18:35
litghostnickoe: I had you install a newer prjxray-db, which was an error18:35
litghostnickoe:  Install the version in xc7/requirements.txt and I think you'll be okay18:36
nickoeI did patch the wrapper with https://github.com/nickoe/symbiflow-arch-defs/tree/fix_xc7_symbiflow_write_bitstream18:36
*** infinite_recursi has quit IRC18:36
nickoelitghost: ... but when was this updated?18:36
nickoehow do I update it? isn't there some conda thing to do that?18:36
litghostThe following packages will be DOWNGRADED:18:36
litghost11:44 AM   prjxray-db              0.0_0239_gd87c844-20201120_145821 --> v0.0_243_g057e179-20210119_09180818:36
litghostSo to reverse it do:18:36
litghostRun "conda install -c litex-hub prjxray-db=0.0_0239_gd87c844=20201120_145821"18:37
nickoeok, now it did build the bit file, but the flashing in nmigen does not appear to look for the correct bit file.18:40
nickoehttps://dpaste.com/BBY5L3UGW18:41
tpbTitle: dpaste: BBY5L3UGW (at dpaste.com)18:41
*** infinite_recursi has joined #symbiflow18:42
sf-slack<acomodi> You can use xc3sprog to program the basys3 through the microUSB port18:46
nickoewell, yes, but it needs to know the path to the bit file18:47
nickoeand that does not really resolve correctly when the symbiflow toolchain is used in nmigen, apparently.18:47
sf-slack<acomodi> If symbiflow_write_bitstream completed correctly, the bit file should be in the build directory18:52
nickoeacomodi, yes it is, please see https://github.com/SymbiFlow/symbiflow-examples/issues/123#issuecomment-76929692418:52
*** infinite_recursi has quit IRC18:59
nickoeusing openocd -f ${INSTALL_DIR}/${FPGA_FAM}/conda/envs/${FPGA_FAM}/share/openocd/scripts/board/digilent_arty.cfg -c "init; pld load 0 build/top.bit; exit" does flash and it blinks19:00
sf-slack<acomodi> Great!19:01
litghostYay!19:01
nickoeI am stuck at fixing the nmigen flashing though19:09
nickoeacomodi, what is that kokoro thing?19:19
nickoethe ci thin is not overly happy, but that does not seem to be caused by my change19:22
nickoe  ERROR: Could not find a version that satisfies the requirement rapidyaml (from python-fpga-interchange)19:23
nickoe  ERROR: No matching distribution found for rapidyaml19:23
nickoelitghost: ^19:24
litghostWhich CI failed?19:24
nickoehttps://github.com/SymbiFlow/symbiflow-arch-defs/pull/1986/checks?check_run_id=178664123419:28
litghostThanks19:32
* nickoe goes to the grocery store go get food19:34
nickoelets hope your fix makes it green19:35
nickoelitghost: why is that rapidyaml not on pypi yet?20:08
litghostWe don't have anything on PyPi right now20:08
litghostWider issue20:08
nickoeok20:57
nickoelitghost: How long time does those other tests take?20:58
-_whitenotifier- [python-fpga-interchange] litghost opened issue #11: Remove rapidyaml git+https in requirements once rapidyaml is in PyPi - https://git.io/JtlaV21:23
*** kraiskil has quit IRC21:40
litghostnickoe: A while, the CI is not short21:41
*** toshywoshy has joined #symbiflow22:18
*** vup has quit IRC23:31
*** vup has joined #symbiflow23:32
*** y2kbugger has quit IRC23:36
*** perillamint has quit IRC23:36
*** ovf has quit IRC23:37
*** y2kbugger has joined #symbiflow23:37
*** elms_ has joined #symbiflow23:37
*** tannewt has quit IRC23:37
*** ovf has joined #symbiflow23:38
*** elms has quit IRC23:38
*** perillamint has joined #symbiflow23:38
*** elms_ is now known as elms23:38
*** tannewt has joined #symbiflow23:39

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!