Catherine[m] changed the topic of #amaranth-lang to: Amaranth hardware definition language · weekly meetings on Mondays at 1700 UTC · code https://github.com/amaranth-lang · logs https://libera.irclog.whitequark.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
_whitelogger has joined #amaranth-lang
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 244 seconds]
Degi_ is now known as Degi
nak has quit [Ping timeout: 245 seconds]
urja has joined #amaranth-lang
<d1b2> <.jer_emy> I just read that whole RFC. Wow I am keen to use that when it lands
<galibert[m]> We all are :-)
allysonprolisko[ has quit [Remote host closed the connection]
whitequark[cis] has quit [Quit: Bridge terminating on SIGTERM]
_catircservices has quit [Quit: Bridge terminating on SIGTERM]
adamgreig[m] has quit [Quit: Bridge terminating on SIGTERM]
alanvek[m] has quit [Quit: Bridge terminating on SIGTERM]
jevinskie[m] has quit [Quit: Bridge terminating on SIGTERM]
saberhawk[m] has quit [Quit: Bridge terminating on SIGTERM]
ydnatag[m] has quit [Quit: Bridge terminating on SIGTERM]
Wanda[cis] has quit [Quit: Bridge terminating on SIGTERM]
Chips4MakersakaS has quit [Quit: Bridge terminating on SIGTERM]
pbsdsUTC1[m] has quit [Quit: Bridge terminating on SIGTERM]
galibert[m] has quit [Quit: Bridge terminating on SIGTERM]
alufers[m] has quit [Quit: Bridge terminating on SIGTERM]
charlottia has quit [Quit: Bridge terminating on SIGTERM]
cesar[m] has quit [Quit: Bridge terminating on SIGTERM]
SaketSinha[m] has quit [Quit: Bridge terminating on SIGTERM]
dominik[m]1 has quit [Quit: Bridge terminating on SIGTERM]
jfng[m] has quit [Quit: Bridge terminating on SIGTERM]
zyp[m] has quit [Quit: Bridge terminating on SIGTERM]
sszilvasi[m] has quit [Quit: Bridge terminating on SIGTERM]
_catircservices has joined #amaranth-lang
whitequark[cis] has joined #amaranth-lang
Wanda[cis] has joined #amaranth-lang
Chips4MakersakaS has joined #amaranth-lang
adamgreig[m] has joined #amaranth-lang
jfng[m] has joined #amaranth-lang
galibert[m] has joined #amaranth-lang
charlottia has joined #amaranth-lang
cesar[m] has joined #amaranth-lang
SaketSinha[m] has joined #amaranth-lang
dominik[m]1 has joined #amaranth-lang
zyp[m] has joined #amaranth-lang
alanvek[m] has joined #amaranth-lang
alufers[m] has joined #amaranth-lang
saberhawk[m] has joined #amaranth-lang
ydnatag[m] has joined #amaranth-lang
pbsdsUTC1[m] has joined #amaranth-lang
jevinskie[m] has joined #amaranth-lang
sszilvasi[m] has joined #amaranth-lang
nak has joined #amaranth-lang
<whitequark[cis]> agg: do you think there should be an LFSR implementation in the standard library?
<whitequark[cis]> (and if so, can I somehow motivate you to add one? ^^)
<adamgreig[m]> Oh yea
<adamgreig[m]> I'd be happy to. I'll ponder what it might do
<whitequark[cis]> I would be really happy to merge one!
<adamgreig[m]> Generating the standard sequences like prbs-7/9/... is obvious and very easy
<adamgreig[m]> Supporting a custom polynomial is probably worth doing too
<whitequark[cis]> yes
<adamgreig[m]> Don't know if there's any motivation to do parallel generation of words and such, vs a straightforward bit at a time generator
<adamgreig[m]> My guess is 95% of users just want one of the standard prbs sequences
<whitequark[cis]> Glasgow uses parallel words
<adamgreig[m]> The other thing that's nice to have is a receiver that counts errors
<whitequark[cis]> to test a 8-bit wide comm channel
<adamgreig[m]> Ah cool well there you go
<adamgreig[m]> Makes sense, and I guess you don't want to model it as 8 separate 1bit links
<whitequark[cis]> yes
<adamgreig[m]> So you generate 8 sequential bits of prbs and des/ser them essentially?
<whitequark[cis]> yep!
<adamgreig[m]> Can do the same thing as the CRC to generate them in parallel in each clock cycle
<adamgreig[m]> I guess the receiver would work the same way too but warrants a touch more thought maybe
<whitequark[cis]> yep
<adamgreig[m]> Cool, I'll ponder and write up an rfc
<whitequark[cis]> there is more use for word-wide LFSR
<whitequark[cis]> for example, generating noise (e.g. for electronic music)
<adamgreig[m]> For noise generation you maybe want a different or controllable distribution
<whitequark[cis]> it's really common to use LFSRs in practice
<whitequark[cis]> Yamaha FM chips (Sound Blaster in PC world) do this
<adamgreig[m]> Do they then shape the noise at all?
<whitequark[cis]> lemme look at the verilog
<whitequark[cis]> (people have reverse engineered the thing fully)
<adamgreig[m]> You can combine parallel lfsr words to generate white noise for instance
<adamgreig[m]> If there's a suspicious adder tree summing up bits, it might be that :p
<adamgreig[m]> Somewhere in migen days I have a very wide parallel lfsr with a slightly interesting generator matrix where each word feeds an adder tree, paired bits sum to 2-bit signed words, they're summed to 3-bit, etc etc until you get an 8 bit sample that's quite well normally distributed
<whitequark[cis]> this is how the noise is used
<adamgreig[m]> Not doing the same trick, at least
<adamgreig[m]> The white noise generation is probably out of scope of the lfsr rfc but might make a nice example or use case
<whitequark[cis]> ah, actually this uses bit at a time
<whitequark[cis]> not word at a time
<adamgreig[m]> oh, neat