*** tpb has joined #yosys | 00:00 | |
*** craigo has quit IRC | 01:06 | |
*** X-Scale` has joined #yosys | 01:14 | |
*** X-Scale has quit IRC | 01:14 | |
*** X-Scale` is now known as X-Scale | 01:14 | |
*** Degi has quit IRC | 01:26 | |
*** Degi has joined #yosys | 01:26 | |
*** craigo has joined #yosys | 01:33 | |
*** _whitelogger has joined #yosys | 01:35 | |
*** citypw has joined #yosys | 01:47 | |
*** citypw has quit IRC | 02:07 | |
*** citypw_ has joined #yosys | 02:07 | |
*** u0m3 has joined #yosys | 02:34 | |
*** craigo has quit IRC | 03:33 | |
*** craigo has joined #yosys | 03:42 | |
*** FFY00 has quit IRC | 04:25 | |
*** FFY00 has joined #yosys | 04:26 | |
*** emeb_mac has quit IRC | 06:29 | |
*** xtro has quit IRC | 07:00 | |
*** jakobwenzel1 has joined #yosys | 07:55 | |
*** Asu has joined #yosys | 08:30 | |
*** awygle has quit IRC | 10:01 | |
*** lukego has quit IRC | 10:01 | |
*** lukego has joined #yosys | 10:03 | |
*** ovf has quit IRC | 10:03 | |
*** ovf has joined #yosys | 10:05 | |
*** nurelin has quit IRC | 10:23 | |
*** nurelin has joined #yosys | 10:25 | |
*** craigo has quit IRC | 10:29 | |
thardin | I'm trying to optimize my sine module and yosys is turning my bram into LCs when I invert outputs for 180°-360° | 10:33 |
---|---|---|
daveshah | Is the inversion added before the output register by any chance? | 10:34 |
daveshah | Yosys won't retime that away | 10:34 |
thardin | removing the inversion, so that the output is abs(sin(x)) keeps the bram | 10:34 |
thardin | here's an excerpt: | 10:34 |
thardin | wire [SINE_BITS-1:0] lut = sine_lut[xlow[SINE_SZ-2:SINE_SZ-LUT_SZ-1]]; | 10:34 |
thardin | assign y = lut ^ (x[SINE_SZ-1] ? 65535 : 0); | 10:34 |
thardin | where y is the output wire | 10:34 |
thardin | ah is there a case where a fake temporary reg is needed? | 10:34 |
thardin | s/there/this/ | 10:35 |
daveshah | Yes if you want this to map to BRAM then lut needs to be a reg | 10:37 |
thardin | hmm | 10:37 |
daveshah | clocked by the read clock | 10:37 |
thardin | I can't use bram as a combinatoric LUT? | 10:37 |
daveshah | No | 10:37 |
thardin | sad | 10:37 |
daveshah | If it worked before it was because Yosys was folding in a register from somewhere else | 10:38 |
daveshah | which it can't do with the inversion | 10:38 |
thardin | can't imagine why I couldn't put combinatorics after the output of the bram, but maybe with the surrounding context it becomes impossible | 10:38 |
daveshah | You can do | 10:39 |
daveshah | so long as that output is clocked | 10:39 |
thardin | it is, but in another module. maybe yosys isn't able to see that | 10:40 |
daveshah | It will be able to see that if there is no logic in between | 10:41 |
thardin | aha | 10:41 |
thardin | that explains it :) | 10:41 |
thardin | is this a limitation in yosys or verilog? or both? | 10:42 |
daveshah | In general synthesis tools don't like moving logic around registers | 10:42 |
daveshah | this is usually opt-in as a retiming option, but even then that is to improve perfomance not help extract memories in more cases | 10:43 |
thardin | right, I was about to say | 10:43 |
thardin | this kind of construct would degrade performance | 10:43 |
thardin | and I have plenty of "cycles" available in my little state machine to pipeline things | 10:44 |
thardin | not that my current ADCs and DACs are anywhere near fast enough to exploit this. yet. | 10:46 |
*** m4ssi has joined #yosys | 11:04 | |
*** m4ssi has quit IRC | 11:12 | |
thardin | hooray, it works | 11:22 |
Lofty | <daveshah> In general synthesis tools don't like moving logic around registers <-- unless you're Quartus, anyway | 11:26 |
daveshah | Retiming is enabled-by-default? | 11:27 |
Lofty | Yep | 11:27 |
Lofty | Though I'm pretty sure it's performed in place and route | 11:28 |
thardin | quadrupled the accuracy of it too | 11:39 |
*** maartenBE has quit IRC | 12:50 | |
*** maartenBE has joined #yosys | 12:52 | |
*** citypw_ has quit IRC | 13:34 | |
*** citypw has joined #yosys | 13:36 | |
*** citypw has quit IRC | 14:09 | |
*** Xark has quit IRC | 14:16 | |
*** Xark has joined #yosys | 14:17 | |
*** emeb has joined #yosys | 14:32 | |
*** citypw has joined #yosys | 14:48 | |
*** citypw has quit IRC | 15:24 | |
*** m4ssi has joined #yosys | 16:20 | |
*** xtro has joined #yosys | 16:38 | |
*** m4ssi has quit IRC | 16:42 | |
*** jakobwenzel1 has quit IRC | 16:51 | |
*** kraiskil has joined #yosys | 17:46 | |
*** evil_chuck has joined #yosys | 18:13 | |
*** craigo has joined #yosys | 19:14 | |
*** _whitelogger has quit IRC | 19:18 | |
*** _whitelogger has joined #yosys | 19:20 | |
*** scientes has quit IRC | 19:42 | |
*** jakobwenzel1 has joined #yosys | 19:44 | |
*** scientes has joined #yosys | 19:45 | |
*** Cerpin has quit IRC | 19:47 | |
*** Cerpin has joined #yosys | 19:52 | |
*** kraiskil has quit IRC | 19:58 | |
*** emeb_mac has joined #yosys | 20:02 | |
*** kraiskil has joined #yosys | 20:08 | |
*** jakobwenzel1 has quit IRC | 20:22 | |
*** evil_chuck has quit IRC | 20:22 | |
*** Asu has quit IRC | 20:46 | |
*** Asu has joined #yosys | 20:47 | |
*** jakobwenzel1 has joined #yosys | 20:50 | |
*** xtro has quit IRC | 21:18 | |
*** xtro has joined #yosys | 21:20 | |
*** kraiskil has quit IRC | 21:51 | |
*** kraiskil has joined #yosys | 22:01 | |
*** jakobwenzel1 has quit IRC | 22:01 | |
*** u0m3 has quit IRC | 22:21 | |
*** u0m3 has joined #yosys | 22:21 | |
*** kraiskil has quit IRC | 22:38 | |
*** Asu has quit IRC | 22:43 | |
*** emeb has quit IRC | 23:36 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!