Wednesday, 2021-02-03

*** tpb has joined #yosys00:00
*** jrawson has quit IRC00:11
*** lf has quit IRC00:37
*** lf has joined #yosys00:37
*** futarisIRCcloud has joined #yosys01:40
*** citypw has joined #yosys01:44
*** philtor has quit IRC02:21
*** bluesceada has quit IRC02:33
*** kloeri has quit IRC02:39
*** kloeri has joined #yosys02:52
*** bluesceada has joined #yosys02:52
*** s_frit has quit IRC03:26
*** s_frit has joined #yosys03:26
*** Degi_ has joined #yosys03:30
*** Degi has quit IRC03:32
*** Degi_ is now known as Degi03:32
*** jfcaron has quit IRC05:22
*** corecode has quit IRC06:32
*** mndza has joined #yosys07:14
*** danvet has joined #yosys07:14
*** mancaus has quit IRC07:19
*** corecode has joined #yosys07:28
*** mndza has quit IRC07:47
*** mndza has joined #yosys07:51
*** emeb_mac has quit IRC07:59
*** FabM has joined #yosys09:14
*** vidbina has joined #yosys09:27
*** srk has quit IRC09:51
*** srk has joined #yosys09:51
*** jakobwenzel has joined #yosys11:26
*** jakobwenzel has quit IRC12:00
*** jakobwenzel1 has joined #yosys12:00
*** jakobwenzel1 is now known as jakobwenzel12:02
*** jakobwenzel has quit IRC12:03
*** mancaus has joined #yosys13:21
*** jakobwenzel has joined #yosys13:22
*** vidbina has quit IRC13:36
*** kraiskil has joined #yosys14:30
*** X-Scale` has joined #yosys15:05
*** X-Scale has quit IRC15:06
*** X-Scale` is now known as X-Scale15:06
*** _oldtopman has joined #yosys15:16
*** lansiir has quit IRC15:17
*** vidbina has joined #yosys15:33
*** jfcaron has joined #yosys15:40
*** FabM has quit IRC15:55
*** vidbina has quit IRC16:11
*** jfcaron has quit IRC16:15
*** citypw has quit IRC16:34
*** mndza has quit IRC17:17
*** emeb_mac has joined #yosys17:49
*** vidbina has joined #yosys18:01
*** kraiskil has quit IRC18:37
*** kraiskil has joined #yosys18:50
*** kraiskil has quit IRC19:07
*** kraiskil has joined #yosys19:16
*** jakobwenzel has quit IRC19:25
*** jakobwenzel1 has joined #yosys19:25
*** jakobwenzel1 is now known as jakobwenzel19:27
*** jakobwenzel1 has joined #yosys20:08
*** jakobwenzel has quit IRC20:10
*** jakobwenzel1 is now known as jakobwenzel20:10
*** kraiskil has quit IRC20:16
*** kraiskil has joined #yosys20:30
*** vidbina has quit IRC20:36
*** dkozel has quit IRC21:02
*** dkozel has joined #yosys21:05
*** zachjs has joined #yosys21:07
*** dxld has quit IRC21:27
*** kraiskil has quit IRC21:28
*** jakobwenzel1 has joined #yosys21:40
*** jakobwenzel1 has quit IRC21:41
*** jakobwenzel has quit IRC21:41
*** jakobwenzel has joined #yosys21:43
*** danvet has quit IRC22:00
*** jakobwenzel has quit IRC22:30
*** jakobwenzel has joined #yosys22:32
*** dxld has joined #yosys22:35
*** jakobwenzel has quit IRC22:46
roamingryanAre single line `assign` statements the only way to avoid the "assigned in a block at..." warning with Yosys?22:47
mwkif you assign something in a block, the proper thing to do in verilog is to declare it as "reg", not "wire"22:47
mwkyosys grudgingly accepts misuse of that, but other tools will flat-out refuse to work22:48
roamingryanI see... even though I want it synthesized as combinatorial logic?22:48
mwkyes22:48
mwkreg/wire distinction is not about combinatorial or synchronous logic, it's about whether it's assigned from a process or not22:48
mwk(verilog is not a particularly well-designed language)22:49
roamingryanInteresting, this is a great to know.22:49
roamingryanSo, put differently, one shouldn't scan the input/output ports of a given module and assume that `reg` output pins are registered?22:50
mwkcorrect22:50
roamingryanThat's fun.  Thank you for sharing some wisdom. :)22:51
mwkreg output pins can be combinatorial, assigned in a combinatorial process; non-reg output pins can be synchronous if they happen to use assign statements (or submodule instantiations) to bring out the result of a synchronous process defined somewhere deeper22:51
roamingryanGreat to know.  The module I am implementing requires slightly more logic at an output pin than can be accomodated with a simple ternary assignment operator.  I also don't want some sort of nasty nested ternary operator.  Hence my question above.  Sounds like switching the pin to `reg` and using an `always (*)` block with blocking assignments (`=`) is the way to go.22:53
mwkcorrect22:53
mwkalso please consider using other tools than yosys to check your code, yosys is, uh, good at processing correct code, not so good at diagnosing incorrect code22:55
roamingryanverilator?22:55
mwkyeah, it'd be good to run it through some simulation22:55
mwkverilator or iverilog22:55
mwkwhichever you prefer22:55
roamingryanOk, so far I've been developing purely with yosys and symbiyosys using a "formal first" methodology.  I'll get some verilator sims set up in parallel.22:56
mwkthat's not a bad plan22:57
mwkbut it'd be good to at least run it through a linter22:57
*** jfcaron has joined #yosys22:57
mwkverilator --lint-only22:57
roamingryanCool, I'll give that try and see what sort of horrors it reveals.  No doubt there will be some!22:58
*** Thorn has quit IRC23:33

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!