Wednesday, 2019-08-21

*** tpb has joined #yosys00:00
*** cdchapm2 has left #yosys00:03
*** emeb has quit IRC00:35
*** Cerpin has joined #yosys00:35
*** emeb_mac has joined #yosys00:39
*** PyroPeter has quit IRC01:31
*** PyroPeter has joined #yosys01:42
*** PyroPeter has quit IRC01:47
*** voxadam_ has quit IRC01:52
*** PyroPeter has joined #yosys01:57
*** PyroPeter has quit IRC02:02
*** PyroPeter has joined #yosys02:12
*** citypw has joined #yosys03:31
*** PyroPeter has quit IRC03:36
*** PyroPeter has joined #yosys03:49
*** s_frit has quit IRC04:45
*** s_frit has joined #yosys04:45
*** mwk has quit IRC05:32
*** citypw has quit IRC06:17
*** emeb_mac has quit IRC07:18
*** dys has joined #yosys07:30
*** pie_ has joined #yosys10:40
*** s_frit has quit IRC11:06
*** s_frit has joined #yosys11:06
*** GoldRin has joined #yosys11:33
*** mwk has joined #yosys11:42
*** Cerpin has quit IRC12:35
*** pie_ has quit IRC13:05
*** Cerpin has joined #yosys13:36
*** jhol has quit IRC14:25
*** sorear has quit IRC14:25
*** benreynwar has quit IRC14:25
*** elms has quit IRC14:26
*** MoeIcenowy has quit IRC14:26
*** benreynwar has joined #yosys14:28
*** tannewt has quit IRC14:29
*** elms has joined #yosys14:29
*** jhol has joined #yosys14:30
*** tannewt has joined #yosys14:30
*** MoeIcenowy has joined #yosys14:31
*** Cerpin has quit IRC14:33
*** jhol has quit IRC14:34
*** jhol has joined #yosys14:34
*** jhol has quit IRC14:42
*** jhol has joined #yosys14:42
*** Ultrasauce has quit IRC14:46
*** proteusdude has quit IRC14:46
*** Ultrasauce has joined #yosys14:46
*** proteusdude has joined #yosys14:58
*** X-Scale has joined #yosys15:05
*** phire has quit IRC15:09
*** emeb has joined #yosys15:34
*** Cerpin has joined #yosys15:49
GenTooManI found a yosys bug report in June, no wonder my verilog stuff doesn't work. Sorry had to be said. It optimizes out my psuedo write code, then the bug occurs as it expects ONLY a read after write not just a read, or read before write.16:06
GenTooMannext to implement write only memory...16:07
*** dys has quit IRC16:14
emebI've got a bogus datasheet for "Nominal Semidestructor Write-Only Memory"16:26
*** Cerpin has quit IRC17:13
*** pie_ has joined #yosys17:16
*** pie_ has quit IRC17:36
*** phire has joined #yosys18:06
*** SpaceCoaster has quit IRC18:08
*** Cerpin has joined #yosys18:28
*** dys has joined #yosys18:38
*** Jybz has joined #yosys19:23
*** sorear has joined #yosys19:29
*** Jybz has quit IRC20:45
*** emeb_mac has joined #yosys20:51
pepijndevos[m]Which part of yosys detects bram? Is that done by the parser or by some extraction pass? I think the latter, right?20:54
*** Cerpin has quit IRC20:57
daveshahpepijndevos[m]: The parser creates `$memrd`, `$memwr` and `$meminit`21:00
daveshah`memory_dff` folds `$dff`s into these21:00
daveshah`memory_collect` converts these into combined `$mem` multiport memories21:01
daveshah`memory_bram` maps `$mem` to bram according to arch-specific rules (usually followed by `techmap` to map to arch primitives exactly)21:01
pepijndevos[m]Ah OK, but if ghdl just creates a bunch of dff, there is no pass that translates those to memory cells21:08
pepijndevos[m]Haven't tried yet, but I suspect ghdl does not yet have any special logic to infer memory.21:08
pepijndevos[m]Of course an alternative would be to blackbox the vendor primitive.21:09
pepijndevos[m]Or by fold into you mean memory_dff will actually create new cells, rather than fold dff into adjacent memory cells?21:12
pepijndevos[m]I'll look at the docs and ghdl tomorrow21:12
daveshahNo, Yosys can't create memories out of DFFs and muxes21:12
daveshah`memory_dff` is only for folding dffs to create clocked read/write ports21:12
daveshahYou will need to modify ghdl to create read and write port cells21:13
pepijndevos[m]Alright21:13
shaprhowdy pepijndevos[m] !21:37
shaprI've enjoyed your blog posts!21:38
*** pie_ has joined #yosys21:50
*** GoldRin has quit IRC22:16
somlocan yosys take advantage of multithreading (e.g., on a multi core machine)?23:26
ZirconiumXsomlo: no23:33
somlois it the nature of the workload that lacks parallelism, or just a thing nobody had a chance to get around implementing -- yet?23:34
ZirconiumXsomlo: Partly A, partly that the algorithms Yosys uses are not well-suited to parallelism23:35
shaprI'd expect nextpnr and arachne would be GREAT with a bunch of cores23:36
ZirconiumXarachne is all but dead23:36
* shapr updates his cache23:36
somloI dug around the git log of nextpnr and saw a bunch of commits mentioning multithreading, so I'm hopeful :)23:36
somlofor now I'm watching yosys use one of my 8 rv64gc qemu VCPUs (building ecp5 bitstream for litex+rocket-rv64gc "natively")23:38
somloand started wondering if there's any way to make it faster :)23:38
ZirconiumXYosys does lots of little things to optimise it23:39
ZirconiumXSo there's very little to gain by parallelising one specific pass23:39
shapris nextpnr simulated annealing?23:40
ZirconiumXI think that's one of the algorithms it can use23:40
shaprok now you got me interested23:40
ZirconiumXnextpnr was born because arachne was too hard-coded for iCE4023:41
ZirconiumXIt couldn't handle ECP5 without major rework23:41
ZirconiumXThus nextpnr was built as a framework23:41
shaprspiffy23:41
somloI noticed (from a user perspective) how yosys does multiple "passes" or "stages" - I'm assuming those can't be pipelined either, one's got to finish before its complete output can be used by the next stage...23:44
ZirconiumXsomlo: Correct23:50
somloand if I had to guess, most of the stages are heavy on graph manipulation, so maybe even if one could throw parallelism at it, the overhead might not be worth the trouble23:56
*** emeb has quit IRC23:57

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!