clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
tpb has quit [Remote host closed the connection]
tpb has joined #yosys
jrawson has quit [*.net *.split]
lf has quit [Ping timeout: 258 seconds]
lf has joined #yosys
futarisIRCcloud has joined #yosys
citypw has joined #yosys
philtor has quit [Read error: Connection reset by peer]
bluesceada has quit [Ping timeout: 272 seconds]
kloeri has quit [Ping timeout: 606 seconds]
kloeri has joined #yosys
bluesceada has joined #yosys
s_frit has quit [Remote host closed the connection]
s_frit has joined #yosys
Degi_ has joined #yosys
Degi has quit [Ping timeout: 264 seconds]
Degi_ is now known as Degi
jfcaron has quit [Quit: jfcaron]
corecode has quit [Ping timeout: 260 seconds]
mndza has joined #yosys
danvet has joined #yosys
mancaus has quit [Ping timeout: 246 seconds]
corecode has joined #yosys
mndza has quit [Ping timeout: 240 seconds]
mndza has joined #yosys
emeb_mac has quit [Quit: Leaving.]
FabM has joined #yosys
vidbina has joined #yosys
srk has quit [Remote host closed the connection]
srk has joined #yosys
jakobwenzel has joined #yosys
jakobwenzel has quit [Quit: jakobwenzel]
jakobwenzel1 has joined #yosys
jakobwenzel1 is now known as jakobwenzel
jakobwenzel has quit [Client Quit]
mancaus has joined #yosys
jakobwenzel has joined #yosys
vidbina has quit [Ping timeout: 240 seconds]
kraiskil has joined #yosys
X-Scale` has joined #yosys
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
_oldtopman has joined #yosys
lansiir has quit [Ping timeout: 272 seconds]
vidbina has joined #yosys
jfcaron has joined #yosys
FabM has quit [Quit: Leaving]
vidbina has quit [Ping timeout: 246 seconds]
jfcaron has quit [Quit: jfcaron]
citypw has quit [Ping timeout: 268 seconds]
mndza has quit [Ping timeout: 240 seconds]
emeb_mac has joined #yosys
vidbina has joined #yosys
kraiskil has quit [Ping timeout: 246 seconds]
kraiskil has joined #yosys
kraiskil has quit [Ping timeout: 240 seconds]
kraiskil has joined #yosys
jakobwenzel has quit [Quit: jakobwenzel]
jakobwenzel1 has joined #yosys
jakobwenzel1 is now known as jakobwenzel
jakobwenzel1 has joined #yosys
jakobwenzel has quit [Ping timeout: 258 seconds]
jakobwenzel1 is now known as jakobwenzel
kraiskil has quit [Ping timeout: 240 seconds]
kraiskil has joined #yosys
vidbina has quit [Ping timeout: 256 seconds]
dkozel has quit [Quit: WeeChat 1.9.1]
dkozel has joined #yosys
zachjs has joined #yosys
dxld has quit [Quit: Bye]
kraiskil has quit [Ping timeout: 264 seconds]
jakobwenzel1 has joined #yosys
jakobwenzel1 has quit [Client Quit]
jakobwenzel has quit [Quit: jakobwenzel]
jakobwenzel has joined #yosys
danvet has quit [Ping timeout: 264 seconds]
jakobwenzel has quit [Ping timeout: 264 seconds]
jakobwenzel has joined #yosys
dxld has joined #yosys
jakobwenzel has quit [Ping timeout: 272 seconds]
<roamingryan> Are single line `assign` statements the only way to avoid the "assigned in a block at..." warning with Yosys?
<mwk> if you assign something in a block, the proper thing to do in verilog is to declare it as "reg", not "wire"
<mwk> yosys grudgingly accepts misuse of that, but other tools will flat-out refuse to work
<roamingryan> I see... even though I want it synthesized as combinatorial logic?
<mwk> yes
<mwk> reg/wire distinction is not about combinatorial or synchronous logic, it's about whether it's assigned from a process or not
<mwk> (verilog is not a particularly well-designed language)
<roamingryan> Interesting, this is a great to know.
<roamingryan> So, put differently, one shouldn't scan the input/output ports of a given module and assume that `reg` output pins are registered?
<mwk> correct
<roamingryan> That's fun. Thank you for sharing some wisdom. :)
<mwk> reg 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 deeper
<roamingryan> Great 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.
<mwk> correct
<mwk> also 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 code
<roamingryan> verilator?
<mwk> yeah, it'd be good to run it through some simulation
<mwk> verilator or iverilog
<mwk> whichever you prefer
<roamingryan> Ok, 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.
<mwk> that's not a bad plan
<mwk> but it'd be good to at least run it through a linter
jfcaron has joined #yosys
<mwk> verilator --lint-only
<roamingryan> Cool, I'll give that try and see what sort of horrors it reveals. No doubt there will be some!
Thorn has quit [Ping timeout: 240 seconds]