*** tpb has joined #yosys | 00:00 | |
*** cdchapm2 has left #yosys | 00:03 | |
*** emeb has quit IRC | 00:35 | |
*** Cerpin has joined #yosys | 00:35 | |
*** emeb_mac has joined #yosys | 00:39 | |
*** PyroPeter has quit IRC | 01:31 | |
*** PyroPeter has joined #yosys | 01:42 | |
*** PyroPeter has quit IRC | 01:47 | |
*** voxadam_ has quit IRC | 01:52 | |
*** PyroPeter has joined #yosys | 01:57 | |
*** PyroPeter has quit IRC | 02:02 | |
*** PyroPeter has joined #yosys | 02:12 | |
*** citypw has joined #yosys | 03:31 | |
*** PyroPeter has quit IRC | 03:36 | |
*** PyroPeter has joined #yosys | 03:49 | |
*** s_frit has quit IRC | 04:45 | |
*** s_frit has joined #yosys | 04:45 | |
*** mwk has quit IRC | 05:32 | |
*** citypw has quit IRC | 06:17 | |
*** emeb_mac has quit IRC | 07:18 | |
*** dys has joined #yosys | 07:30 | |
*** pie_ has joined #yosys | 10:40 | |
*** s_frit has quit IRC | 11:06 | |
*** s_frit has joined #yosys | 11:06 | |
*** GoldRin has joined #yosys | 11:33 | |
*** mwk has joined #yosys | 11:42 | |
*** Cerpin has quit IRC | 12:35 | |
*** pie_ has quit IRC | 13:05 | |
*** Cerpin has joined #yosys | 13:36 | |
*** jhol has quit IRC | 14:25 | |
*** sorear has quit IRC | 14:25 | |
*** benreynwar has quit IRC | 14:25 | |
*** elms has quit IRC | 14:26 | |
*** MoeIcenowy has quit IRC | 14:26 | |
*** benreynwar has joined #yosys | 14:28 | |
*** tannewt has quit IRC | 14:29 | |
*** elms has joined #yosys | 14:29 | |
*** jhol has joined #yosys | 14:30 | |
*** tannewt has joined #yosys | 14:30 | |
*** MoeIcenowy has joined #yosys | 14:31 | |
*** Cerpin has quit IRC | 14:33 | |
*** jhol has quit IRC | 14:34 | |
*** jhol has joined #yosys | 14:34 | |
*** jhol has quit IRC | 14:42 | |
*** jhol has joined #yosys | 14:42 | |
*** Ultrasauce has quit IRC | 14:46 | |
*** proteusdude has quit IRC | 14:46 | |
*** Ultrasauce has joined #yosys | 14:46 | |
*** proteusdude has joined #yosys | 14:58 | |
*** X-Scale has joined #yosys | 15:05 | |
*** phire has quit IRC | 15:09 | |
*** emeb has joined #yosys | 15:34 | |
*** Cerpin has joined #yosys | 15:49 | |
GenTooMan | I 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 |
---|---|---|
GenTooMan | next to implement write only memory... | 16:07 |
*** dys has quit IRC | 16:14 | |
emeb | I've got a bogus datasheet for "Nominal Semidestructor Write-Only Memory" | 16:26 |
*** Cerpin has quit IRC | 17:13 | |
*** pie_ has joined #yosys | 17:16 | |
*** pie_ has quit IRC | 17:36 | |
*** phire has joined #yosys | 18:06 | |
*** SpaceCoaster has quit IRC | 18:08 | |
*** Cerpin has joined #yosys | 18:28 | |
*** dys has joined #yosys | 18:38 | |
*** Jybz has joined #yosys | 19:23 | |
*** sorear has joined #yosys | 19:29 | |
*** Jybz has quit IRC | 20:45 | |
*** emeb_mac has joined #yosys | 20: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 IRC | 20:57 | |
daveshah | pepijndevos[m]: The parser creates `$memrd`, `$memwr` and `$meminit` | 21:00 |
daveshah | `memory_dff` folds `$dff`s into these | 21:00 |
daveshah | `memory_collect` converts these into combined `$mem` multiport memories | 21: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 cells | 21: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 tomorrow | 21:12 |
daveshah | No, Yosys can't create memories out of DFFs and muxes | 21:12 |
daveshah | `memory_dff` is only for folding dffs to create clocked read/write ports | 21:12 |
daveshah | You will need to modify ghdl to create read and write port cells | 21:13 |
pepijndevos[m] | Alright | 21:13 |
shapr | howdy pepijndevos[m] ! | 21:37 |
shapr | I've enjoyed your blog posts! | 21:38 |
*** pie_ has joined #yosys | 21:50 | |
*** GoldRin has quit IRC | 22:16 | |
somlo | can yosys take advantage of multithreading (e.g., on a multi core machine)? | 23:26 |
ZirconiumX | somlo: no | 23:33 |
somlo | is it the nature of the workload that lacks parallelism, or just a thing nobody had a chance to get around implementing -- yet? | 23:34 |
ZirconiumX | somlo: Partly A, partly that the algorithms Yosys uses are not well-suited to parallelism | 23:35 |
shapr | I'd expect nextpnr and arachne would be GREAT with a bunch of cores | 23:36 |
ZirconiumX | arachne is all but dead | 23:36 |
* shapr updates his cache | 23:36 | |
somlo | I dug around the git log of nextpnr and saw a bunch of commits mentioning multithreading, so I'm hopeful :) | 23:36 |
somlo | for now I'm watching yosys use one of my 8 rv64gc qemu VCPUs (building ecp5 bitstream for litex+rocket-rv64gc "natively") | 23:38 |
somlo | and started wondering if there's any way to make it faster :) | 23:38 |
ZirconiumX | Yosys does lots of little things to optimise it | 23:39 |
ZirconiumX | So there's very little to gain by parallelising one specific pass | 23:39 |
shapr | is nextpnr simulated annealing? | 23:40 |
ZirconiumX | I think that's one of the algorithms it can use | 23:40 |
shapr | ok now you got me interested | 23:40 |
ZirconiumX | nextpnr was born because arachne was too hard-coded for iCE40 | 23:41 |
ZirconiumX | It couldn't handle ECP5 without major rework | 23:41 |
ZirconiumX | Thus nextpnr was built as a framework | 23:41 |
shapr | spiffy | 23:41 |
somlo | I 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 |
ZirconiumX | somlo: Correct | 23:50 |
somlo | and 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 trouble | 23:56 |
*** emeb has quit IRC | 23:57 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!