*** tpb has joined #yosys | 00:00 | |
*** proteusguy has quit IRC | 00:07 | |
*** proteusguy has joined #yosys | 00:08 | |
*** Noname_Matt has joined #yosys | 00:09 | |
*** _whitelogger has quit IRC | 00:33 | |
*** _whitelogger has joined #yosys | 00:35 | |
*** _whitelogger has quit IRC | 01:12 | |
*** _whitelogger has joined #yosys | 01:14 | |
*** craigo has joined #yosys | 02:51 | |
*** PyroPeter has quit IRC | 03:13 | |
*** forksand has quit IRC | 03:57 | |
*** forksand has joined #yosys | 04:13 | |
*** forksand has quit IRC | 04:16 | |
*** forksand has joined #yosys | 04:32 | |
*** Noname_Matt has quit IRC | 04:35 | |
*** gatin00b has quit IRC | 04:37 | |
*** forksand has quit IRC | 04:41 | |
*** attie has joined #yosys | 04:48 | |
*** attie has quit IRC | 04:53 | |
*** forksand has joined #yosys | 04:58 | |
*** Jybz has joined #yosys | 05:41 | |
*** forksand has quit IRC | 05:51 | |
*** forksand has joined #yosys | 06:12 | |
*** emeb_mac has quit IRC | 06:23 | |
*** Jybz has quit IRC | 06:31 | |
*** vidbina has joined #yosys | 06:34 | |
*** forksand has quit IRC | 06:42 | |
*** kraiskil has joined #yosys | 06:45 | |
*** vidbina has quit IRC | 06:47 | |
*** forksand has joined #yosys | 07:00 | |
*** vidbina has joined #yosys | 07:12 | |
*** vidbina has quit IRC | 07:36 | |
*** forksand has quit IRC | 07:36 | |
*** kraiskil has quit IRC | 07:50 | |
*** forksand has joined #yosys | 07:54 | |
*** jakobwenzel has joined #yosys | 08:03 | |
*** vidbina has joined #yosys | 08:21 | |
*** dys has joined #yosys | 08:26 | |
*** forksand has quit IRC | 08:31 | |
*** forksand has joined #yosys | 08:48 | |
*** vidbina has quit IRC | 09:02 | |
*** vidbina has joined #yosys | 09:18 | |
*** forksand has quit IRC | 09:25 | |
*** vidbina has quit IRC | 09:28 | |
*** forksand has joined #yosys | 09:42 | |
*** kraiskil has joined #yosys | 09:48 | |
*** fsasm has joined #yosys | 09:49 | |
*** kraiskil has quit IRC | 10:14 | |
pepijndevos | For wide luts, can I recursively map to $lut, or should I hand code it all the way? | 10:16 |
---|---|---|
pepijndevos | ECP5 has it hardcoded up to 7, but Gowin has 8-wide luts, so it'll be even more insane. | 10:16 |
daveshah | I would probably do it recursively | 10:17 |
daveshah | I think back when I did ecp5 there was a problem with recursive techmapping that's now fixed | 10:17 |
pepijndevos | cool, good to know | 10:17 |
daveshah | However, I wouldn't bother with wide LUTs without abc9 | 10:17 |
*** forksand has quit IRC | 10:18 | |
pepijndevos | why (not)? | 10:18 |
daveshah | The way Yosys calls it old ABC thinks a LUT4 and LUT8 have the same delay | 10:18 |
daveshah | This causes it to use way too many big LUTs hurting area | 10:19 |
pepijndevos | Hurting *area*? Or did you mean timing? Or both? | 10:20 |
daveshah | Area | 10:21 |
daveshah | Because abc thinks using large LUTs will be much better for delay (its primary objective as Yosys calls it) | 10:21 |
daveshah | than it actually is because the muxes add delay | 10:21 |
pepijndevos | Right... hmmm... will try it out a bit. | 10:22 |
daveshah | It would actually be possible to fix this by passing a LUT library in abc the same way as abc9 | 10:23 |
daveshah | Just no one has bothered | 10:24 |
pepijndevos | Is there a nice way to make a N-wide LUT in verilog for testing? | 10:33 |
*** forksand has joined #yosys | 10:37 | |
pepijndevos | Great, abc deleted my code. | 10:54 |
ZirconiumX | pepijndevos: I think you could instantiate a $lut cell, and I believe they're of parametric width | 11:11 |
*** forksand has quit IRC | 11:11 | |
pepijndevos | right | 11:12 |
ZirconiumX | daveshah: would abc9 still be superior to abc if you passed in a LUT library? | 11:13 |
pepijndevos | It's just a classic "you have a typo in a portname, but rather than warn you I'll delete your code" | 11:13 |
ZirconiumX | pepijndevos: `default_nettype none | 11:13 |
pepijndevos | ?? | 11:13 |
ZirconiumX | Assuming you're working in Verilog here, anyway | 11:14 |
pepijndevos | Yea, VHDL yells at you for stuff like that | 11:14 |
pepijndevos | (I think at least... it just yells at you a lot more than Verilog, which I like) | 11:15 |
ZirconiumX | If you typo a parameter name, my understanding is that Verilog thinks you're declaring a new parameter that gets ignored | 11:15 |
ZirconiumX | And the old parameter stays at 'bx | 11:15 |
pepijndevos | ... which is *totally* what I want 99% of the time *facepalm* | 11:15 |
ZirconiumX | The fix is to tell Verilog not to think you're declaring a new parameter by using `default_nettype none | 11:16 |
ZirconiumX | As I understand it, anyway, daveshah or whitequark would know more about this than me | 11:16 |
whitequark | `default_nettype none is correct | 11:19 |
whitequark | you could also use read_verilog -noautowire | 11:19 |
mwk | wait, is it? | 11:19 |
mwk | for parameters? | 11:19 |
pepijndevos | So you just put that at the top of your file? | 11:19 |
ZirconiumX | Yep | 11:20 |
mwk | pepijndevos: yes | 11:20 |
mwk | every verilog file should have that line at the top | 11:20 |
pepijndevos | brb, making yosys PR | 11:20 |
whitequark | yes, Verilog also completely ignores unused parameters | 11:21 |
whitequark | well | 11:21 |
mwk | how helpful of it | 11:21 |
whitequark | it doesn't quite ignore them | 11:22 |
pepijndevos | echO "`default_nettype none" > hdr.v; find . -fname *.v -exec cat hdr.v | 11:22 |
whitequark | it's more that any parameters you define when instantiating a module take preference over the parameters you define when defining it* | 11:22 |
pepijndevos | (this is broken) | 11:22 |
whitequark | * unless you use localparam, in which case the *other* one gets ignored, I think | 11:22 |
whitequark | yep. | 11:22 |
mwk | aaaaaaaaaaaaaaaaaa | 11:23 |
whitequark | it also does some bizarre lazy evaluation thing | 11:24 |
whitequark | A parameter declared in a named block, task, or function can only be directly redefined using a defparam | 11:24 |
whitequark | statement. However, if the parameter value is dependent on a second parameter, then redefining the second | 11:24 |
whitequark | parameter will update the value of the first parameter as well (see 12.2.3). | 11:24 |
whitequark | I guess that makes sense? | 11:25 |
*** attie has joined #yosys | 11:27 | |
*** forksand has joined #yosys | 11:28 | |
ZirconiumX | pepijndevos: So how long is it until the Gowin flow uses VHDL techmap files? :P | 11:28 |
* pepijndevos thinks | 11:29 | |
pepijndevos | When yosys comes with VHDL support on by default. | 11:30 |
*** dys has quit IRC | 11:31 | |
ZirconiumX | So presumably when GHDL is rewritten in C? | 11:34 |
mwk | what is GHDL written in? | 11:35 |
ZirconiumX | Ada | 11:36 |
mwk | ... | 11:36 |
mwk | of course | 11:36 |
pepijndevos | There are a few others that are fairly complete, in Rust, Java, and Python | 11:38 |
pepijndevos | They are also just parsers, they don't do any synthesis and elaboration | 11:39 |
pepijndevos | Can't claim to understand this fully, but even integrating the Rust parser in Yosys would be a monumental effort I think. | 11:39 |
pepijndevos | Anyone know the correct vim fu for Yosys indentation? | 11:40 |
ZirconiumX | I'm not even sure Yosys is all that consistent with indentation | 11:40 |
ZirconiumX | pepijndevos: judging by the .editorconfig, probably :set ts=8 sts=8 noet | 11:42 |
* pepijndevos install editorconfig vim plugin | 11:46 | |
pepijndevos | This is a good idea | 11:46 |
pepijndevos | Oh no... the formatting was fucked up in some ways, and now it is fucked up in other ways :(((( | 11:53 |
pepijndevos | fml | 11:59 |
*** forksand has quit IRC | 12:01 | |
pepijndevos | I'm just going to cry now... | 12:02 |
*** X-Scale has quit IRC | 12:03 | |
*** X-Scale has joined #yosys | 12:16 | |
*** forksand has joined #yosys | 12:19 | |
*** X-Scale has quit IRC | 12:46 | |
*** forksand has quit IRC | 12:49 | |
*** quigonjinn has joined #yosys | 12:50 | |
*** forksand has joined #yosys | 13:05 | |
*** shorne has joined #yosys | 13:14 | |
*** X-Scale has joined #yosys | 13:34 | |
*** forksand has quit IRC | 13:35 | |
*** attie has quit IRC | 13:41 | |
*** forksand has joined #yosys | 13:52 | |
*** attie has joined #yosys | 13:57 | |
*** Noname_Matt has joined #yosys | 14:02 | |
*** forksand has quit IRC | 14:25 | |
*** kraiskil has joined #yosys | 14:44 | |
*** emeb has joined #yosys | 14:48 | |
*** emeb has quit IRC | 14:55 | |
*** emeb has joined #yosys | 15:22 | |
*** vidbina has joined #yosys | 15:48 | |
*** gorbak25 has joined #yosys | 15:48 | |
*** kraiskil has quit IRC | 15:49 | |
*** gorbak25 has quit IRC | 15:58 | |
*** gorbak25 has joined #yosys | 15:58 | |
*** attie has quit IRC | 16:28 | |
*** attie has joined #yosys | 16:30 | |
*** fsasm has quit IRC | 16:37 | |
*** kraiskil has joined #yosys | 16:46 | |
*** attie has quit IRC | 16:49 | |
*** vidbina has quit IRC | 16:55 | |
*** kraiskil has quit IRC | 17:03 | |
*** gatin00b has joined #yosys | 17:14 | |
*** kraiskil has joined #yosys | 17:19 | |
*** Noname_Matt has quit IRC | 17:41 | |
*** kraiskil has quit IRC | 17:42 | |
*** quigonjinn has quit IRC | 17:57 | |
*** craigo has quit IRC | 18:07 | |
*** corecode has quit IRC | 18:52 | |
*** corecode has joined #yosys | 19:03 | |
*** pie_ has joined #yosys | 20:31 | |
*** cr1901_modern has quit IRC | 20:51 | |
*** janrinze has joined #yosys | 21:30 | |
*** gatin00b has quit IRC | 22:05 | |
*** futarisIRCcloud has quit IRC | 23:10 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!