Monday, 2021-04-26

*** tpb has joined #symbiflow00:00
*** epony has joined #symbiflow00:11
*** Degi_ has joined #symbiflow00:30
*** Degi has quit IRC00:31
*** Degi_ is now known as Degi00:31
*** epony has quit IRC00:42
*** krogozinski has quit IRC00:43
*** krogozinski has joined #symbiflow00:44
*** cr1901_modern1 has joined #symbiflow00:50
*** cr1901_modern has quit IRC00:53
*** cr1901_modern1 has quit IRC00:54
*** cr1901_modern has joined #symbiflow00:55
*** epony has joined #symbiflow01:13
*** epony has quit IRC01:26
*** epony has joined #symbiflow02:48
*** gsmecher has joined #symbiflow03:09
*** epony has quit IRC03:24
*** gsmecher has quit IRC04:03
*** cr1901_modern has quit IRC05:51
*** kgugala_ has joined #symbiflow06:00
*** kgugala has quit IRC06:04
*** ZipCPU has quit IRC06:19
*** kgugala has joined #symbiflow06:19
*** ZipCPU has joined #symbiflow06:19
*** kgugala has quit IRC06:19
*** kgugala_ has quit IRC06:20
*** kgugala has joined #symbiflow06:20
*** perillamint has quit IRC08:23
*** y2kbugger has quit IRC08:24
*** ovf has quit IRC08:24
*** tannewt has quit IRC08:24
*** elms has quit IRC08:26
*** perillamint has joined #symbiflow08:30
*** y2kbugger has joined #symbiflow08:30
*** tannewt has joined #symbiflow08:30
*** ovf has joined #symbiflow08:30
*** elms has joined #symbiflow08:30
*** TMM has quit IRC09:47
*** TMM has joined #symbiflow09:47
*** cr1901_modern has joined #symbiflow10:31
-_whitenotifier-3- [fpga-interchange-schema] gatecat opened issue #44: Macro (and similar) placement constraints - https://git.io/JOFkR10:44
*** kgugala_ has joined #symbiflow11:37
*** kgugala has quit IRC11:37
mithroThis is so cool -> https://github.com/nobodywasishere/sphinx-pcbdraw11:41
tntmithro: the issue is you need svg drawing version of all the components you use to look decent ... it can't use the 3d models from kicad.12:02
mithrogatecat: Are Issues #43, #42 and #40 on FPGA Interchange Schema related?12:44
mithrogatecat: I guess that should have been pull requests -- and Issues #44 / #41?12:45
gatecatmithro: yes and #42 contains #40 in it12:45
gatecatissue #44 is a wider issue12:45
mithrogatecat: My current thinking (and it's open to changing) is that "Macros" are actually just a shorthand for a given set of BELs configured a certain way. The synthesis tool should expand the macros into the BELs so that the PnR tool doesn't need to care. There might be a reason for the synthesis tool to indicate to the PnR tool that these BELs are all part of a "macro" and the PnR tool should keep them together....12:53
gatecatthere are some problems here with the logical netlist, among other things12:53
gatecatin any event, doing macro expansion in PnR is not onerous, and keeps the whole flow neater as it is fully netlist compatible with the vendor tools throughout then12:54
mithroWell in some ways, this is our chance to change vendor tools behaviour -- so it would be good to think about how we want things to be done verses how the vendor tools do them12:56
gatecatI personally think this way is neater12:56
mithrogatecat: Is the macro expansion likely to be identical for all PnR tools?12:58
gatecatit depends, as some tools might want to represent hierarchy in different ways (or indeed never expand the macro but place it as one unit)12:59
gatecatthe names of the subcells that it expands into is well defined and basically the same throughout12:59
gatecatI personally think that netlist compatibility with existing flows is important, for the simple reason of avoiding the need for extra synthesis steps for interchange flows which will make them appear inherently messier13:01
mithrogatecat: Thinking about #44 -- I'm on the side of "describe the device" with potential "hints for place and route tooling"13:02
gatecatmithro: right, the big question is how much in the way of "hints for place and route tooling" you have13:02
gatecatthat's the whole premise behind #4413:02
mithrogatecat: Can we separate them though? IE The place and route tool should still *work* when the hints data is discarded, it just has to potentially work harder?13:03
gatecatthat's basically the state of things at the moment13:03
gatecatit already will figure things out from the site routing - the problem isn't just having to work harder, but also that it currently doesn't figure things out but effectively bruteforces them so there are QoR issues too13:04
gatecatalthough this is partly due to some wider and nextpnr-specific issues with how the post-placement refinement works13:04
mithrogatecat: For the RAM128XD example -- what could you add an example of what the "right" version would look like verse the "quirky" placement?13:06
gatecatmithro: updated13:10
mithro@gatecat Where are the RAM blocks in your first diagram?13:11
gatecatin totally different sites13:11
gatecat(the key thing to highlight was how LUT route-throughs enable a questionable placement of the MUXFs)13:12
mithrogatecat: Isn't this the issue that the MUX was placed without considering delay?13:13
gatecatyes, the lack of timing data and strong pull from the IO probably isn't helping13:13
gatecatbut still, it will take a lot of luck for it to end up in the right site13:14
gatecatand without placement constraints, it will be a hard job for SA to swap them all at once (but this more of a nextpnr specific issue)13:14
mithrogatecat: I would be very surprised if the delay between the LUT output and the MUX input direct path is anything but the fastest?13:15
gatecatright, but there are always other things pulling the muxes and LUTs in the other direction13:15
gatecatthe placer has other objectives than the delay (which isn't in the data at all atm...) of that one path13:15
mithroWhat are the other objectives?13:16
gatecatall the other nets13:17
*** kgugala has joined #symbiflow13:17
*** kgugala_ has quit IRC13:20
mithro@gatecat I still think I'm missing something here, the 4 nets that are involved on that MUX are the two inputs, the select and the output right? The two inputs are direct output from the LUTs right?13:21
gatecatyes, correct13:21
mithrohttps://docs.google.com/drawings/d/1lsQoNXkf-aCgTQ1Wo5tHRLiBWuo2yscUpKxD9wb07qY/edit13:27
tpbTitle: RAM128X1D Placement - Google Zeichnungen (at docs.google.com)13:27
gatecatmithro: imagine a simple chain: input->LUT->mux->output - the natural placement will be the LUT and mux at 1/3 and 2/3 respectively13:28
gatecatbecause there's nothing specifically telling the placer - and you can argue that it should see the dedicated path, and I agree that's fair but isn't happening atm - that the LUT and mux should actually belong together13:29
*** epony has joined #symbiflow13:36
mithrogatecat: `D2_1` must be much greater than `D1_1`, right?13:36
gatecatmithro: yes, and of course an ideal placer should take that into account, but everything is based on heuristics and sometimes those don't work quite as well as you want13:37
mithrogatecat: I guess this is the advantage of the current VPR approach of clustering things together before placement13:39
gatecatsure13:39
gatecatthe big question is to what extent the interchange format should contain explicit hints for that clustering; and other similar problems like global clock structures (e.g. https://github.com/SymbiFlow/nextpnr/issues/263)13:40
*** rj has joined #symbiflow14:36
*** epony has quit IRC14:43
*** rj has quit IRC14:59
*** rj has joined #symbiflow15:04
*** nickoe has quit IRC15:35
*** rj has quit IRC15:57
*** rj has joined #symbiflow15:59
*** gsmecher has joined #symbiflow16:13
*** epony has joined #symbiflow16:19
*** toshywoshy has quit IRC16:54
*** toshywoshy has joined #symbiflow16:59
*** epony has quit IRC17:06
*** umarcor|2 has quit IRC17:10
*** umarcor|2 has joined #symbiflow17:10
*** umarcor has joined #symbiflow17:13
*** umarcor|2 has quit IRC17:13
*** umarcor|2 has joined #symbiflow17:17
*** umarcor has quit IRC17:17
*** nickoe has joined #symbiflow17:20
*** tnt has quit IRC18:05
*** tnt has joined #symbiflow18:06
CarlosEDPGot my first PR merged! Thanks mithro! https://github.com/SymbiFlow/yosys-symbiflow-plugins/pull/10620:30
CarlosEDPHow is tha packaging and versioning for these plugins? Like.. when will Yosys ship with it?20:31
*** epony has joined #symbiflow20:32
*** rj has quit IRC21:56
*** epony has quit IRC22:06
LoftyCarlosEDP: "it won't"22:43
CarlosEDPHumm... is there any instructions on how to package it with a toolchain?23:16
*** epony has joined #symbiflow23:16
CarlosEDP * Humm... are there any instructions on how to package it with a toolchain?23:20

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