pepijndevos changed the topic of #apicula to: Project Apicula: bitstream documentation and tooling for Gowin FPGAs https://github.com/YosysHQ/apicula -- logs https://freenode.irclog.whitequark.org/apicula
_whitelogger has joined #apicula
_whitelogger has joined #apicula
_whitelogger has joined #apicula
FabM has joined #apicula
<pepijndevos> gatecat, why is it unsound?
<pepijndevos> Each tile has 4 configurable logic slices, which share their reset and enable. So cls is the slice, and if the dff has a non-null ce, then if there is another dff in the same cls it has to match
<gatecat> Imagine if it first finds a ff with no ce, so it stays at nullptr, then an ff with ce which it thinks can be placed in the same tile but actually that's invalid
<gatecat> the problem is that it allows a dff with null ce and a dff with nonnull ce to be placed together
<pepijndevos> hm... I *think* that's what I fixed with the check for the mode, but... not all parts of my code distinguish between dff and dff because they are the same in the bitstream
<pepijndevos> *dff and dffe
<pepijndevos> so uh... if dff and dffe have the same mode yea it'd break... I need to check that
<pepijndevos> good catch
<pepijndevos> In yosys they are different types. So DFFE and DFF should never be in the same cls based on their type
<pepijndevos> Yea I only get rid of the E at the very end https://github.com/YosysHQ/apicula/blob/master/apycula/gowin_pack.py#L51
<gatecat> ah that's fine then
<pepijndevos> Thanks a lot for thinking along though :) It's a very tricky problem.
<pepijndevos> I think my next step will be to verify the correctness of the unpacker with the vendor bitstream of the broken example.
<pepijndevos> Looks suspicious.
FabM has quit [Quit: Leaving]
omnitechnomancer has quit [Ping timeout: 240 seconds]
disasm[m] has quit [Ping timeout: 244 seconds]
notafile has quit [Ping timeout: 241 seconds]
kprasadvnsi[m] has quit [Ping timeout: 247 seconds]
disasm[m] has joined #apicula
omnitechnomancer has joined #apicula
kprasadvnsi[m] has joined #apicula
notafile has joined #apicula
trabucay1e has joined #apicula
trabucayre has quit [Ping timeout: 256 seconds]
trabucay1e is now known as trabucayre
_whitelogger has joined #apicula
_whitelogger has joined #apicula
_whitelogger__ has joined #apicula
_whitelogger__ has joined #apicula
_whitelogger_ has joined #apicula
_whitelogger_ has joined #apicula
_whitelogger_ has joined #apicula