lekernel changed the topic of #milkymist to: Mixxeo, Migen, Milkymist-ng & other Milkymist projects :: Logs: http://en.qi-hardware.com/mmlogs :: Mixxeo preorder lists.milkymist.org/pipermail/devel-milkymist.org/2013-May/003344.html
Scopeuk has quit [Ping timeout: 268 seconds]
Scopeuk has joined #milkymist
Scopeuk has quit [Ping timeout: 256 seconds]
Scopeuk has joined #milkymist
Scopeuk has quit [Ping timeout: 248 seconds]
Scopeuk has joined #milkymist
Scopeuk has quit [Ping timeout: 240 seconds]
Scopeuk has joined #milkymist
balrog has joined #milkymist
gbraad has joined #milkymist
bhamilton has joined #milkymist
mumptai has joined #milkymist
bhamilton has left #milkymist [#milkymist]
bhamilton has joined #milkymist
bhamilton has left #milkymist [#milkymist]
mumptai has quit [Ping timeout: 276 seconds]
lekernel has joined #milkymist
<davidc__>
lekernel: have you run into migen generated code that hangs iverilog [seems to be something about large sensitivity lists + non-blocking assignments in combinatorial code]
<lekernel>
other simulators have different behaviours ...
<lekernel>
and yeah, verilog/vhdl are that bad
Martoni has quit [Quit: ChatZilla 0.9.90.1 [Iceweasel 17.0.7/20130626001350]]
<cde>
lekernel: what do you think about the free modelsim provided with altera? will it work with migen code?
<lekernel>
iirc modelsim has the same problem
<lekernel>
I also think it should not be too hard to fix in iverilog
<cde>
thanks. what about vhdl?
<lekernel>
bah, it can happen in either language, depending how the simulator implements this stupid event stuff
<cde>
yes
<lekernel>
I haven't tried to reproduce it in vhdl
<lekernel>
but I can imagine it's the same pain in the ass
Martoni has joined #milkymist
<lekernel>
davidc__, if you use the display_run option for verilog conversion I guess you will see that iverilog keeps running a loop of combinatorial always blocks, even though the signal values do not change anymore
<lekernel>
davidc__, if you use the display_run option for verilog conversion I guess you will see that iverilog keeps running a loop of combinatorial always blocks, even though the signal values do not change anymore
playthatbeat has joined #milkymist
stekern has quit [Ping timeout: 246 seconds]
stekern has joined #milkymist
stekern has quit [Ping timeout: 240 seconds]
antgreen has quit [Ping timeout: 245 seconds]
balrog has left #milkymist ["bye"]
bhamilton has joined #milkymist
bhamilton has quit [Client Quit]
bhamilton has joined #milkymist
sh4rm4 is now known as ulm
ulm is now known as sh4rm4
<davidc__>
lekernel: Ok; I'll check that out to try and narrow it down. I made a few minimal testcases; and it should be settling just fine
<davidc__>
[seems to be an issue where it should settle but doesn't]
<lekernel>
the code from my email triggers the problem
<davidc__>
so maybe I'll investigate fixing iverilog
<lekernel>
even though it settles
stekern has joined #milkymist
<davidc__>
lekernel: the other option could be to change to blocking assignments in combinatorial blocks; and split always blocks (magically; need to think more about the splitting)
<davidc__>
lekernel: That option might actually be preferable - some simulators can theoretically go a lot faster with that coding style
Martoni has quit [Quit: ChatZilla 0.9.90.1 [Iceweasel 17.0.7/20130626001350]]
<GitHub61>
[migen] sbourdeauducq pushed 2 new commits to master: http://git.io/dr3paQ
<GitHub2>
[milkymist-ng] sbourdeauducq pushed 1 new commit to master: http://git.io/Xrgssw
<GitHub2>
milkymist-ng/master 8e04de5 Sebastien Bourdeauducq: memtest/LFSR: use module decorators
<lekernel>
davidc__, iirc there were issues with blocking assignments, even in comb blocks
<davidc__>
lekernel: blocking assignments wont result in the same code execution (can't retrigger same always block sensitivity list IIRC), so we'd need to split into multiple always blocks
<lekernel>
yes, I remember a similar mess when i tried that
<lekernel>
another option is to ditch verilog entirely for simulation, but then you can't simulate legacy verilog modules anymore
<lekernel>
direct EDIF output would also be a desirable feature ...
<lekernel>
the only real problems with existing verilog code are LM32 and simulation models such as xilinx unisim, micron models, etc.
antgreen has joined #milkymist
<davidc__>
lekernel: yeah :S. Anyhow; always-block-splitting looks to be possible for non-cyclic code [since combinatorial blocks should be a DAG]
<lekernel>
LM32 could be done relatively easily by rewritting in FHDL
<davidc__>
lekernel: eh; I run into a similar problem with my project. I have a bunch of verilog from earlier versions that I'd really rather not rewrite
<lekernel>
perhaps with some semi-automated tool
<lekernel>
unisim, micron models etc. are more of a problem since you don't want to track the bugs you may have introduced during the rewriting
<davidc__>
Anyhow; I'll look at always-block-splitting, moving to blocking ops and see if its possible. Having the datastructures you'd need for that wouldn't be terrible anyhow; you could use them for things like direct LLVM IR emission; for really fast simulators
<lekernel>
turning comb logic into clean DAGs is also a nice feature, since it's one step towards EDIF output :=
<lekernel>
:)
<lekernel>
it would potentially speed up simulations too. I found that iverilog runs the comb blocks way too many times with the current generated code.
<davidc__>
lekernel: yeah. People recommend only-blocking-assignments-in-combinatorial-blocks for that reason; but that requires reordering; or always-block splitting
<lekernel>
verilog is such a waste of time :) I wonder why people focus so much on simulation-only stuff like systemc instead of addressing those basic problems...
bhamilton has quit [Quit: Leaving.]
kilae has joined #milkymist
bhamilton has joined #milkymist
bhamilton has left #milkymist [#milkymist]
antgreen has quit [Ping timeout: 246 seconds]
bhamilton has joined #milkymist
bhamilton has quit [Client Quit]
mumptai has joined #milkymist
antgreen has joined #milkymist
<GitHub0>
[migen] sbourdeauducq pushed 2 new commits to master: http://git.io/rGMuWA
<GitHub0>
migen/master b7ed19c Sebastien Bourdeauducq: fhdl: do not export Fragment