tpb has joined #yosys
proteusguy has quit [Quit: Leaving]
proteusguy has joined #yosys
Noname_Matt has joined #yosys
_whitelogger has joined #yosys
_whitelogger has joined #yosys
craigo has joined #yosys
PyroPeter has quit [Ping timeout: 245 seconds]
forksand has quit [Read error: Connection reset by peer]
forksand has joined #yosys
forksand has quit [Read error: Connection reset by peer]
forksand has joined #yosys
Noname_Matt has quit [Ping timeout: 240 seconds]
gatin00b has quit [Ping timeout: 250 seconds]
forksand has quit [Read error: Connection reset by peer]
attie has joined #yosys
attie has quit [Ping timeout: 240 seconds]
forksand has joined #yosys
Jybz has joined #yosys
forksand has quit [Read error: Connection reset by peer]
forksand has joined #yosys
emeb_mac has quit [Quit: Leaving.]
Jybz has quit [Quit: Konversation terminated!]
vidbina has joined #yosys
forksand has quit [Read error: Connection reset by peer]
kraiskil has joined #yosys
vidbina has quit [Ping timeout: 240 seconds]
forksand has joined #yosys
vidbina has joined #yosys
vidbina has quit [Ping timeout: 268 seconds]
forksand has quit [Read error: Connection reset by peer]
kraiskil has quit [Read error: Connection reset by peer]
forksand has joined #yosys
jakobwenzel has joined #yosys
vidbina has joined #yosys
dys has joined #yosys
forksand has quit [Read error: Connection reset by peer]
forksand has joined #yosys
vidbina has quit [Ping timeout: 245 seconds]
vidbina has joined #yosys
forksand has quit [Read error: Connection reset by peer]
vidbina has quit [Ping timeout: 240 seconds]
forksand has joined #yosys
kraiskil has joined #yosys
fsasm has joined #yosys
kraiskil has quit [Ping timeout: 240 seconds]
<
pepijndevos>
For wide luts, can I recursively map to $lut, or should I hand code it all the way?
<
pepijndevos>
ECP5 has it hardcoded up to 7, but Gowin has 8-wide luts, so it'll be even more insane.
<
daveshah>
I would probably do it recursively
<
daveshah>
I think back when I did ecp5 there was a problem with recursive techmapping that's now fixed
<
pepijndevos>
cool, good to know
<
daveshah>
However, I wouldn't bother with wide LUTs without abc9
forksand has quit [Read error: Connection reset by peer]
<
pepijndevos>
why (not)?
<
daveshah>
The way Yosys calls it old ABC thinks a LUT4 and LUT8 have the same delay
<
daveshah>
This causes it to use way too many big LUTs hurting area
<
pepijndevos>
Hurting *area*? Or did you mean timing? Or both?
<
daveshah>
Because abc thinks using large LUTs will be much better for delay (its primary objective as Yosys calls it)
<
daveshah>
than it actually is because the muxes add delay
<
pepijndevos>
Right... hmmm... will try it out a bit.
<
daveshah>
It would actually be possible to fix this by passing a LUT library in abc the same way as abc9
<
daveshah>
Just no one has bothered
<
pepijndevos>
Is there a nice way to make a N-wide LUT in verilog for testing?
forksand has joined #yosys
<
pepijndevos>
Great, abc deleted my code.
<
ZirconiumX>
pepijndevos: I think you could instantiate a $lut cell, and I believe they're of parametric width
forksand has quit [Read error: Connection reset by peer]
<
pepijndevos>
right
<
ZirconiumX>
daveshah: would abc9 still be superior to abc if you passed in a LUT library?
<
pepijndevos>
It's just a classic "you have a typo in a portname, but rather than warn you I'll delete your code"
<
ZirconiumX>
pepijndevos: `default_nettype none
<
ZirconiumX>
Assuming you're working in Verilog here, anyway
<
pepijndevos>
Yea, VHDL yells at you for stuff like that
<
pepijndevos>
(I think at least... it just yells at you a lot more than Verilog, which I like)
<
ZirconiumX>
If you typo a parameter name, my understanding is that Verilog thinks you're declaring a new parameter that gets ignored
<
ZirconiumX>
And the old parameter stays at 'bx
<
pepijndevos>
... which is
*totally* what I want 99% of the time
*facepalm*
<
ZirconiumX>
The fix is to tell Verilog not to think you're declaring a new parameter by using `default_nettype none
<
ZirconiumX>
As I understand it, anyway, daveshah or whitequark would know more about this than me
<
whitequark>
`default_nettype none is correct
<
whitequark>
you could also use read_verilog -noautowire
<
mwk>
for parameters?
<
pepijndevos>
So you just put that at the top of your file?
<
mwk>
pepijndevos: yes
<
mwk>
every verilog file should have that line at the top
<
pepijndevos>
brb, making yosys PR
<
whitequark>
yes, Verilog also completely ignores unused parameters
<
mwk>
how helpful of it
<
whitequark>
it doesn't quite ignore them
<
pepijndevos>
echO "`default_nettype none" > hdr.v; find . -fname *.v -exec cat hdr.v
<
whitequark>
it's more that any parameters you define when instantiating a module take preference over the parameters you define when defining it*
<
pepijndevos>
(this is broken)
<
whitequark>
* unless you use localparam, in which case the
*other* one gets ignored, I think
<
mwk>
aaaaaaaaaaaaaaaaaa
<
whitequark>
it also does some bizarre lazy evaluation thing
<
whitequark>
A parameter declared in a named block, task, or function can only be directly redefined using a defparam
<
whitequark>
statement. However, if the parameter value is dependent on a second parameter, then redefining the second
<
whitequark>
parameter will update the value of the first parameter as well (see 12.2.3).
<
whitequark>
I guess that makes sense?
attie has joined #yosys
forksand has joined #yosys
<
ZirconiumX>
pepijndevos: So how long is it until the Gowin flow uses VHDL techmap files? :P
* pepijndevos
thinks
<
pepijndevos>
When yosys comes with VHDL support on by default.
dys has quit [Ping timeout: 245 seconds]
<
ZirconiumX>
So presumably when GHDL is rewritten in C?
<
mwk>
what is GHDL written in?
<
pepijndevos>
There are a few others that are fairly complete, in Rust, Java, and Python
<
pepijndevos>
They are also just parsers, they don't do any synthesis and elaboration
<
pepijndevos>
Can't claim to understand this fully, but even integrating the Rust parser in Yosys would be a monumental effort I think.
<
pepijndevos>
Anyone know the correct vim fu for Yosys indentation?
<
ZirconiumX>
I'm not even sure Yosys is all that consistent with indentation
<
ZirconiumX>
pepijndevos: judging by the .editorconfig, probably :set ts=8 sts=8 noet
* pepijndevos
install editorconfig vim plugin
<
pepijndevos>
This is a good idea
<
pepijndevos>
Oh no... the formatting was fucked up in some ways, and now it is fucked up in other ways :((((
forksand has quit [Read error: Connection reset by peer]
<
pepijndevos>
I'm just going to cry now...
X-Scale has quit [Ping timeout: 252 seconds]
X-Scale has joined #yosys
forksand has joined #yosys
X-Scale has quit [Ping timeout: 265 seconds]
forksand has quit [Read error: Connection reset by peer]
quigonjinn has joined #yosys
forksand has joined #yosys
shorne has joined #yosys
X-Scale has joined #yosys
forksand has quit [Read error: Connection reset by peer]
attie has quit [Ping timeout: 265 seconds]
forksand has joined #yosys
attie has joined #yosys
Noname_Matt has joined #yosys
forksand has quit [Read error: Connection reset by peer]
kraiskil has joined #yosys
emeb has joined #yosys
emeb has quit [Ping timeout: 264 seconds]
emeb has joined #yosys
vidbina has joined #yosys
gorbak25 has joined #yosys
kraiskil has quit [Ping timeout: 276 seconds]
gorbak25 has quit [Quit: gorbak25]
gorbak25 has joined #yosys
attie has quit [Ping timeout: 268 seconds]
attie has joined #yosys
fsasm has quit [Ping timeout: 268 seconds]
kraiskil has joined #yosys
attie has quit [Ping timeout: 276 seconds]
vidbina has quit [Ping timeout: 265 seconds]
kraiskil has quit [Ping timeout: 246 seconds]
gatin00b has joined #yosys
kraiskil has joined #yosys
Noname_Matt has quit [Ping timeout: 268 seconds]
kraiskil has quit [Ping timeout: 265 seconds]
quigonjinn has quit [Ping timeout: 268 seconds]
craigo has quit [Ping timeout: 268 seconds]
corecode has quit [Remote host closed the connection]
corecode has joined #yosys
pie_ has joined #yosys
cr1901_modern has quit [Read error: Connection reset by peer]
janrinze has joined #yosys
gatin00b has quit [Ping timeout: 240 seconds]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
tpb has quit [Remote host closed the connection]