Monday, 2020-06-08

*** tpb has joined #symbiflow00:00
*** smkz has quit IRC00:46
*** smkz has joined #symbiflow00:47
*** smkz has quit IRC00:47
*** smkz has joined #symbiflow00:48
*** citypw has joined #symbiflow02:18
*** citypw has quit IRC02:18
*** Degi has quit IRC02:36
*** Degi has joined #symbiflow02:37
-_whitenotifier-f- [sv-tests] wsnyder opened issue #863: third_party UVM submodule? - https://git.io/JfDqT03:01
*** citypw has joined #symbiflow03:25
*** az0re has joined #symbiflow05:11
*** proteusguy has quit IRC05:19
*** proteusguy has joined #symbiflow05:20
*** craigo has quit IRC06:47
*** OmniMancer1 has joined #symbiflow06:56
*** OmniMancer has quit IRC06:58
*** az0re has quit IRC07:30
*** kraiskil has joined #symbiflow07:45
*** craigo has joined #symbiflow12:08
*** andrewb1999 has joined #symbiflow13:54
nats`if someone is interested I have a Genesys 2 to sell, barely used but vivado voucher not available since used a long time ago. PM for details14:40
mithrotnt: You are one of the first people to try the quick logic stuff, so its going to be a bit bumpy14:46
mithrotnt: The EOS S3 FPGA is fairly slow14:48
tntmithro: Yeah, I was hoping to port my USB core to it since that core is faster than the tinyusb-bootloader core, I had good hope to get it running ... but with the timing number I got that's not going to happen ...14:55
tntI have no idea how they got the tinyusb-bootloader code to meet timing at 48 MHz14:55
mithrotnt: They used hand placement14:58
mithroAnd a lot of pipelining14:58
*** andrewb1999 has quit IRC15:00
mithromkurc / kgugala: See tnt's question above15:00
*** kraiskil has quit IRC15:15
sf-slack<kgugala> tnt: no you cannot initialize the RAM - this is not real blockram, but rather a hard RAM block (like SB_SPRAM in ice40)15:26
*** kraiskil has joined #symbiflow15:27
sf-slack<kgugala> tnt: PART and DEVICE were introduced for xc7 flow where some chips are in fact the same devices, but named differently. In QL this is not really the case (at least for now).15:36
ryancj14Hello I am a BYU student learning the fpga-tool-perf repository. Is there someone experienced with that tool who could help answer some of my questions about it?15:41
sf-slack<acomodi> @ryancj14 Hi, sure15:42
ryancj14Awesome thanks. So far, I've been able to run fpgaperf.py with the vivado, vpr, and vivado-yosys toolchains. One error I encountered when trying to run the --check-env option is that it ran until it reached a have_exec() function that it says is undefined. Was that defined previously and then removed. Is there any way to get this to run properly, as it seems useful.15:58
ryancj14The command I ran was:15:58
ryancj14python3 fpgaperf.py --check-env --toolchain vpr15:58
ryancj14and the error ends with:15:58
ryancj14File "/home/student/fpga-tool-perf/symbiflow.py", line 408, in check_env15:58
ryancj14    'yosys': have_exec('yosys'),15:58
ryancj14NameError: name 'have_exec' is not defined15:58
*** gsmecher has joined #symbiflow16:05
sf-slack<acomodi> @ryancij14 So, looking at it now. have_exec is defined in fpgaperf.py. And it is not imported in symbiflow.py, hence the error. Thanks for spotting this, because it is not tested on CI. I am opening a PR soon with a fix16:07
sf-slack<acomodi> @ryancij14 fix here: https://github.com/SymbiFlow/fpga-tool-perf/pull/14216:12
tpbTitle: symbiflow: fix check-env by acomodi · Pull Request #142 · SymbiFlow/fpga-tool-perf · GitHub (at github.com)16:12
ryancj14awesome thanks16:14
ryancj14It looks like similar changes may need to be made for the vivado.py file for running --check-env on the vivado or vivado-yosys toolchains.16:35
sf-slack<acomodi> Sure, will update the PR, thanks16:36
ryancj14I've made the changes on my own, but it still says false for vivado even though I can run the vivado toolchain just fine otherwise.16:40
sf-slack<acomodi> Right, this because the vivado settings.sh file is sourced just before running it (you can see this in the Makefile generated by edalize). If --check-env if called, the settngs.sh has not been sourced, hence vivado cannot be found16:43
ryancj14oh ok got it16:44
*** citypw has quit IRC16:47
HackerFooI have symbiflow-arch-defs, VPR, nextpnr-xilinx, fpga-tool-perf, etc. working on MacOS, if anyone is interested: https://github.com/HackerFoo/nix-symbiflow.17:09
*** alexhw has joined #symbiflow17:36
tntkgugala: the PART / DEVICE thing is because the scripts that are installed from the sources of arch-defs still use/require those to be set ... (as opposed to the scripts in the binary distribution that use DEVICE / PKG).18:09
tntkgugala: as for the BRAM ok. I could work around the non-init. But it would be nice if the packer was smart enough so that you can instanciate a 8kbit block on its own and the packer/placer just packs 2 of them together.  Because when you need a few 8kbit RAM at _completely_ different places of the design, having a single hard-ip that contain 2 of them is basically un-usable.18:12
tntA bit like Xilinx has RAMB18 and RAMB36 ...18:13
mithro@tnt That feels pretty doable18:14
tntYeah. I mean worse case, I'll just invent my own blackbox and do a post processing on the json to merge 2  of them into a single ram but that seems like something that would be generally useful.18:25
tntAlso, does that FPGA have global clock buffer?   Some example show "gclkbuff" cell. Which I tried to use to distribute my clock and reset and although there was no error, the timing report still seems to show the clock is distributed around using normal routing (and creates giant clock skews ...)18:27
*** OmniMancer1 has quit IRC18:31
*** az0re has joined #symbiflow19:32
*** kraiskil has quit IRC20:17
*** kraiskil has joined #symbiflow20:31
*** craigo has quit IRC21:01
tntLofty: I think you're right about the "abc -lut 1:4" comment.  Looking at synth result, it seems it likes a lot to put a LUT2 whoes output is only used by a following LUT3 ... which really should just be a LUT4.21:11
LoftyABC9~21:12
LoftyBut yeah, give it a try with abc -lut 421:12
Lofty> it seems it likes a lot to put a LUT2 whoes output is only used by a following LUT321:13
LoftyIf you consider LUT2/3/4 to have 2/4/8 units of area, then a LUT2 into a LUT3 is 6 units, whereas a LUT4 is 821:14
tntyeah exactly, but I think that just makes the packer/placer job harder for no reason.21:14
LoftyHere's one of the things which comes to mind though21:14
LoftyImagine you take the LUT3 as 1 unit of area21:15
LoftyThen a LUT2 into a LUT3 has 2 units of area, and a LUT4 has 2 units of area21:15
LoftyABC9 could work out that the LUT4 has *much* less delay21:15
LoftyABC by itself can't21:15
Lofty(ABC uses unit delay; ABC9 uses generalised delay)21:16
*** OmniMancer has joined #symbiflow21:18
*** kraiskil has quit IRC21:19
LoftyIf you're using a SlowLogic chip, it's best not to shoot yourself in the foot before you even begin21:20
tntYeah, I'm sure abc9 could help, but changing the flow to use that is above my head.21:22
LoftyI have apparently become the ABC9 abyss domain expert :P21:23
Loftysynth_intel_alm uses ABC9 exclusively (although FlowMap is...surprisingly competitive)21:23
LoftyAnd I have a PR outstanding to add Gowin ABC921:24
LoftyThe latter I did as a favour to Pepijn21:24
* Lofty needs to remember 'free software isn't free to make' more often21:24
-_whitenotifier-f- [symbiflow-examples] mithro opened issue #11: Why is counter_test/counter_basys3.v? - https://git.io/JfDhs22:29
sf-slack<timo.callahan> Hi @kgugala, with the Edalize flow with Yosys->Vivado, are there any known unsupported features or "gotchas"?   I am trying to get a scalable proc example to work on the Arty 100t board.   It works with Vivado and with Symbiflow, but has bad output when built using the yosys_vivado.py script.23:09
*** adjtm_ has joined #symbiflow23:09
*** adjtm has quit IRC23:10
sf-slack<pgielda> what is the output?23:13
sf-slack<timo.callahan> @litghost, the PR with the xPath fix is here: https://github.com/SymbiFlow/symbiflow-arch-defs/pull/1483 .23:14
tpbTitle: Allow import scripts to parse huge .net files by rw1nkler · Pull Request #1483 · SymbiFlow/symbiflow-arch-defs · GitHub (at github.com)23:14
sf-slack<timo.callahan> @pgielda, instead of the seeming random stream of 32b hex values, N per line, I see all zeros (but the correct number of values per line).   When I get time, I can try to simulate it post-Yosys, but I need to make a new top module w/o the UART interface.23:16
sf-slack<pgielda> oh, I thought it fails23:16
sf-slack<pgielda> but it generates something that does not work you mean?23:16
mithrotnt: We are moving towards having better support for not using conda -> https://github.com/SymbiFlow/conda-env-make/pulls23:17
tpbTitle: Pull requests · SymbiFlow/conda-env-make · GitHub (at github.com)23:17
sf-slack<timo.callahan> Yeah, it compiles without error, but on the board using the receiver script, it values sent back are wrong.23:17
litghosttimo.callahan: Does it met timing?23:20
sf-slack<timo.callahan> @litghost @pgielda I forgot to check, good idea :)23:21
tntmithro: ? That repo looks like the opposite of not using conda.23:22
mithrotnt: It seperates the conda from the cmake23:24
mithrotnt: Rather than having the two tangled together23:25
tntAh oki, I see.23:25
mithrotnt: Have you seen https://github.com/SymbiFlow/symbiflow-examples ?23:26
tpbTitle: GitHub - SymbiFlow/symbiflow-examples: Examples designs for showing different ways to use SymbiFlow toolchains. (at github.com)23:26
sf-slack<pgielda> this tutorial will be shorter ... and download less stuff once we finish working on a vtr package that is console only23:27
-_whitenotifier-f- [symbiflow-examples] mithro opened issue #12: The linux_litex_demo doesn't make much sense - https://git.io/Jfye923:28
sf-slack<pgielda> btw @mithro this repo was originally a travis CI testing the binary flow, then it morphed into what it is now23:29
mithropgielda: Ahh23:30
sf-slack<pgielda> but I do think we should keep it simple, and maybe have a LiteX+Symbiflow tools somewhere else? Especially that LiteX hides the tools? And this one is Makefile based23:30
mithropgielda: I think we want a couple of different examples in that repo23:31
sf-slack<pgielda> Yes, I just think they escalate from a counter to Linux to quickly :)23:31
sf-slack<pgielda> https://github.com/SymbiFlow/symbiflow-examples/blob/master/counter_test/Makefile23:31
tpbTitle: symbiflow-examples/Makefile at master · SymbiFlow/symbiflow-examples · GitHub (at github.com)23:31
sf-slack<pgielda> I like this demo actually23:31
-_whitenotifier-f- [symbiflow-examples] mithro opened issue #13: Add a FuseSoC based demo - https://git.io/JfyeF23:32
sf-slack<pgielda> maybe apart from this _test in the DEVICE name, we have to fix that23:32
sf-slack<pgielda> and maybe apart from this abspath lastword pathsubst whatever stuff at the top23:33
sf-slack<pgielda> But in general this looks like Unix stuff not like EDA tcl stuff which is good23:33
sf-slack<pgielda> LiteX is different that it actually does everything inside so you do not have to think about it at all. But maybe not the good starting point if you want to see how the toolchain works23:34
sf-slack<pgielda> (my opinions of course)23:34
mithropgielda: The symbiflow-examples repo is suppose to show a bunch of different ways you can use the tooling23:35
sf-slack<pgielda> The cool thing is I was able to reproduce this using more or less clean debian:buster in a container, I had to install wget and that was all23:35
sf-slack<pgielda> sure.23:35
mithroI also wonder if it should be symbiflow-xray-examples ?23:36
sf-slack<pgielda> well there is an idea to add quicklogic to it23:36
sf-slack<pgielda> and then move examples to something like23:36
sf-slack<pgielda> examples/xilinx/...23:36
sf-slack<pgielda> and examples/quicklogic/...23:36
sf-slack<pgielda> or something similar23:36
sf-slack<pgielda> the flow is almost the same, the difference is that there is a different arch-defs tarball and different channels23:38
sf-slack<pgielda> because yosys, yosys-plugins and vtr is different23:38
sf-slack<pgielda> and then different fasm stuff installed with pip23:38
sf-slack<pgielda> otherwise its the same stuff23:38
sf-slack<pgielda> it would also be great to somehow not have the same code twice, once in README once in the travis ci yaml but at the same time not hide it in a "install.sh" scirpt or anything like that23:40
sf-slack<pgielda> maybe we need this tutorial testing stuff Michael was showing and test the README directly23:40
sf-slack<pgielda> (now travis has this "almost the same but slightly different" code)23:41
sf-slack<pgielda> (which annoys me because it will surely lead to bugs)23:41
sf-slack<pgielda> (but hiding things in a script or a makefile targets actually makes it less clear that its not that complicated after all)23:42
sf-slack<pgielda> (to use the toolchain I mean)23:42

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