<_whitenotifier-f>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 15e9a27 - Deploying to main from @ amaranth-lang/amaranth@496432edaa6a64ae771ca133bc4226565e52dfdd 🚀
<_whitenotifier-f>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] e0bb229 - Deploying to main from @ amaranth-lang/amaranth@631ef564aa8f33bba4aef34c53a751a33f48feb0 🚀
<Wanda[cis]>
wheeeee!
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 246 seconds]
RowanG[m] has joined #amaranth-lang
<RowanG[m]>
If anyone is interested in the CRC implementation I based on the excellent one in Amaranth: https://github.com/clash-lang/clash-compiler/pull/2694 There are some tricks I added which you guys could steal back.
<whitequark[cis]>
cc adamgreig
<RowanG[m]>
I can say that definitely it wouldn't have turned out so nice without the reference :)
<whitequark[cis]>
nice! I love to see the positive influence Amaranth is having on other languages
<whitequark[cis]>
there's been some things I was planning to steal from Clash as well (like EnableSignal)
<RowanG[m]>
<3
<whitequark[cis]>
RowanG: what kind of tricks? I can generally read Clash code but it's fairly dense and I don't have that much time to go over it carefully these days...
<whitequark[cis]>
I see nLanes which is indeed quite necessary
<RowanG[m]>
Yeah nLanes is a big one. Another is that the validator only requires a single CRC engine even if you more then 1 lane
<RowanG[m]>
by precomputing different residuals for each case
<RowanG[m]>
so you don't select a different engine. But rather compare the engine state to a different residue
<whitequark[cis]>
ah that's interesting
<tpw_rules>
oh hi RowanG[m]
<RowanG[m]>
See the rawResidue function on how it computes it.
<RowanG[m]>
Hi small world I guess :)
<RowanG[m]>
* if you have more then
adamgreig[m] has joined #amaranth-lang
<adamgreig[m]>
Thanks! It would be great to extend the amaranth crc to multi lane for sure and the different residuals sounds neat. I'm glad it was useful!