Tuesday, 2021-10-12

lkclthat's what i used to do microwatt-libresoc comparisons01:26
lkclthe $display output dumps the entire regfile in between single-steps (by reading over DMI)01:26
lkcland you can do a "diff" of the two output files.01:27
lkcltoshywoshy, thank you, bot's woken up again11:38
cesarGot the DMI log from both libresoc and microwatt.15:10
cesarThe microwatt one is consistent with single-stepping: the pc mostly increments by 4, except when it jumps.15:12
cesarThe libresoc one seems strange: most pc readings are duplicated once, sometimes twice.15:14
cesarInvestigating.15:15
lkclah nice, that you got microwatt up and running as well17:11
lkclyou can do a FST/VCD dump with verilator but you have to double-convert it17:12
lkclvcd2fst then fst2vcd17:12
lkclthis "fixes" severe flaws in the file layout that gtkwave is unable to cope with17:12
lkclsigh17:12
cesarOK, I see now how a DMI single-step command results in the core being released (setting execution in motion), and stopped in the very next clock cycle (which takes effect as soon as execution finishes). Sorry for the noise.18:33
cesarThere still seem to be a problem where not every core release sets execution in motion. Maybe something to do with the FSM changes for SVP64. Investigating.18:37
cesarArgh, seems like it. I didn't anticipate core_stop being pulsed low.18:53
cesarSince we want to single-step a VL loop, I had put another core stop check after Execute. Together with the check before Fetch, that's two core stop checks in a row.18:59
lkcl:)19:03
lkclone of the reasons why the --no-svp64 mode exists19:03
cesarAs core_stop is pulsed high, the second check before Fetch catches it and doesn't resume execution.19:03
cesarBad news: I think it affects  --no-svp64.19:04
cesarHave to see the version that's on the chip.19:04
cesarI think the bug was introduced on Mar 7, commit e4b8ab4151fd21af0c9a7958df3c05026332b76019:24
cesarlkcl: Do you know if the chip has it?19:24
cesarWell, looking at the dates in soclayout, I guess it does...19:40
cesarWell, the way it works, it will actually take two DMI single-steps to advance a single instruction. Taking that into account, I think all is well.19:54
lkclcesar, ok, whew, that's a relief20:04
cesarOn trouble, tough. If the core is running, and you stop it, you don't know if it stopped after Execute, or before Fetch.20:10
programmerjakeoh, lkcl: on naga they mentioned a real DX12 API ident: VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation20:13
programmerjakethey were mentioning that it was too confusing, joking that it should be: ViewPortAndRenderTargetArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGeometryShaderEmulation20:14
programmerjakeone ident that's longer than your 80-char limit!!20:15
lkcloh fer god's sake :)20:32
Veera[m]Hi22:09
Veera[m]lkcl: How far you went with symbiflow install and use?22:10
cesarprogrammerjake:  If it was a Power instruction, it would be (by initials): vpartaifasfrswgse22:40
programmerjakeXD22:49
programmerjakemeeting in 4min: lkcl cesar lxo etc.22:56
Veera[m]programmerjake: where is the meeting happening22:59
programmerjakeon jitsi, i'll send you the link privately23:01

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