_whitelogger has joined #yosys
citypw has joined #yosys
citypw has quit [Remote host closed the connection]
citypw_ has joined #yosys
u0m3 has joined #yosys
craigo has quit [Ping timeout: 258 seconds]
craigo has joined #yosys
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #yosys
emeb_mac has quit [Quit: Leaving.]
xtro has quit [Ping timeout: 246 seconds]
jakobwenzel1 has joined #yosys
Asu has joined #yosys
awygle has quit [Quit: No Ping reply in 180 seconds.]
lukego has quit [Ping timeout: 244 seconds]
lukego has joined #yosys
ovf has quit [Ping timeout: 244 seconds]
ovf has joined #yosys
nurelin has quit [Ping timeout: 260 seconds]
nurelin has joined #yosys
craigo has quit [Ping timeout: 256 seconds]
<
thardin>
I'm trying to optimize my sine module and yosys is turning my bram into LCs when I invert outputs for 180°-360°
<
daveshah>
Is the inversion added before the output register by any chance?
<
daveshah>
Yosys won't retime that away
<
thardin>
removing the inversion, so that the output is abs(sin(x)) keeps the bram
<
thardin>
here's an excerpt:
<
thardin>
wire [SINE_BITS-1:0] lut = sine_lut[xlow[SINE_SZ-2:SINE_SZ-LUT_SZ-1]];
<
thardin>
assign y = lut ^ (x[SINE_SZ-1] ? 65535 : 0);
<
thardin>
where y is the output wire
<
thardin>
ah is there a case where a fake temporary reg is needed?
<
thardin>
s/there/this/
<
daveshah>
Yes if you want this to map to BRAM then lut needs to be a reg
<
daveshah>
clocked by the read clock
<
thardin>
I can't use bram as a combinatoric LUT?
<
daveshah>
If it worked before it was because Yosys was folding in a register from somewhere else
<
daveshah>
which it can't do with the inversion
<
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
<
daveshah>
You can do
<
daveshah>
so long as that output is clocked
<
thardin>
it is, but in another module. maybe yosys isn't able to see that
<
daveshah>
It will be able to see that if there is no logic in between
<
thardin>
that explains it :)
<
thardin>
is this a limitation in yosys or verilog? or both?
<
daveshah>
In general synthesis tools don't like moving logic around registers
<
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
<
thardin>
right, I was about to say
<
thardin>
this kind of construct would degrade performance
<
thardin>
and I have plenty of "cycles" available in my little state machine to pipeline things
<
thardin>
not that my current ADCs and DACs are anywhere near fast enough to exploit this. yet.
m4ssi has joined #yosys
m4ssi has quit [Remote host closed the connection]
<
thardin>
hooray, it works
<
Lofty>
<daveshah> In general synthesis tools don't like moving logic around registers <-- unless you're Quartus, anyway
<
daveshah>
Retiming is enabled-by-default?
<
Lofty>
Though I'm pretty sure it's performed in place and route
<
thardin>
quadrupled the accuracy of it too
maartenBE has quit [Ping timeout: 272 seconds]
maartenBE has joined #yosys
citypw_ has quit [Remote host closed the connection]
citypw has joined #yosys
citypw has quit [Ping timeout: 240 seconds]
Xark has quit [Ping timeout: 256 seconds]
Xark has joined #yosys
emeb has joined #yosys
citypw has joined #yosys
citypw has quit [Ping timeout: 240 seconds]
m4ssi has joined #yosys
xtro has joined #yosys
m4ssi has quit [Remote host closed the connection]
jakobwenzel1 has quit [Quit: jakobwenzel1]
kraiskil has joined #yosys
evil_chuck has joined #yosys
craigo has joined #yosys
_whitelogger has joined #yosys
scientes has quit [Read error: Connection reset by peer]
jakobwenzel1 has joined #yosys
scientes has joined #yosys
Cerpin has quit [Read error: Connection reset by peer]
Cerpin has joined #yosys
kraiskil has quit [Ping timeout: 240 seconds]
emeb_mac has joined #yosys
kraiskil has joined #yosys
jakobwenzel1 has quit [Quit: jakobwenzel1]
evil_chuck has quit [Remote host closed the connection]
Asu has quit [Quit: Konversation terminated!]
Asu has joined #yosys
jakobwenzel1 has joined #yosys
xtro has quit [Remote host closed the connection]
xtro has joined #yosys
kraiskil has quit [Ping timeout: 240 seconds]
kraiskil has joined #yosys
jakobwenzel1 has quit [Remote host closed the connection]
u0m3 has quit [Ping timeout: 240 seconds]
u0m3 has joined #yosys
kraiskil has quit [Ping timeout: 256 seconds]
Asu has quit [Quit: Konversation terminated!]
emeb has quit [Quit: Leaving.]