whitequark[cis] changed the topic of #amaranth-lang to: Amaranth hardware definition language · weekly meetings: Amaranth each Mon 1700 UTC, Amaranth SoC each Fri 1700 UTC · play https://amaranth-lang.org/play/ · code https://github.com/amaranth-lang · logs https://libera.catirclogs.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
<AhmedCharles[m]> How easy would it be to add a warning when a signal gets truncated? Like Signal(4).eq(Signal(8)).
nyanotech has quit [Quit: No Ping reply in 180 seconds.]
nyanotech has joined #amaranth-lang
<whitequark[cis]> there's an open issue for it I think. we could add a per-file-enabled warning for it
cr1901_ has joined #amaranth-lang
<AhmedCharles[m]> Thanks, I'll look for it.
cr1901 has quit [Ping timeout: 276 seconds]
Degi has quit [Ping timeout: 260 seconds]
Degi has joined #amaranth-lang
jjsuperpower_ has joined #amaranth-lang
jjsuperpower__ has quit [Ping timeout: 276 seconds]
sorear has quit [Server closed connection]
sorear has joined #amaranth-lang
balrog has quit [Server closed connection]
balrog has joined #amaranth-lang
pie_ has joined #amaranth-lang
jjsuperpower__ has joined #amaranth-lang
jjsuperpower_ has quit [Ping timeout: 252 seconds]
benny2366[m] has quit [Quit: Idle timeout reached: 172800s]
jorolf[m] has joined #amaranth-lang
<jorolf[m]> What would be a good way to check if a stream transmitted all its data as expected? I was thinking about using something like crc or md5 where I can just check a number at the end
<jorolf[m]> But CRC (probably?) doesn't catch out of order payloads and there's no md5 or similar implementation in the stdlib
<zyp[m]> CRC absolutely catches out of order payloads
<jorolf[m]> Oh hmm okay, I got a bit confused by the online explanations
frgo_ has quit [Read error: Connection reset by peer]
frgo has joined #amaranth-lang
RowanG[m] has joined #amaranth-lang
<RowanG[m]> What do you mean with "catches"? As in you get the same CRC for the out of order payload as the in order payload?
<RowanG[m]> Or the other way around
<jorolf[m]> Ah, I meant that payloads that are delivered in the wrong order should result in a different check value
<RowanG[m]> Because let's be clear. If you do CRC(a, b, c) and CRC(b, a, c)
<RowanG[m]> then you get a different CRC value
<RowanG[m]> oke, yes then you can use CRC for that.
key2 has quit [Server closed connection]
key2 has joined #amaranth-lang
zaxmiff[m] has quit [Quit: Idle timeout reached: 172800s]
ydnatag[m] has joined #amaranth-lang
<ydnatag[m]> is there any plan to support "parameter"? I mean, using amaranth to generate IP cores is really usefull but not everyone wants to use it, so It would be great to support verilog generation with parameters.
<zyp[m]> how would that work?
<ydnatag[m]> I work with several customers that don't want python. So I run the verilog generation in my computer and send them the file. The problem is that, for each configuration/parametrization, they ask me for a new one
<ydnatag[m]> About amaranth code, I have no idea or proposal about how to treat that
<ydnatag[m]> I would like to have the possibility to do something like: Signal(Parameter())
<ydnatag[m]> I'm thinking out loud
<zyp[m]> what would len(Signal(p)) return?
<ydnatag[m]> hmmm... destroying an idea just with just one question ahahah
<ydnatag[m]> you are right
<ydnatag[m]> I didn't think about that. It would work only for a sub set of operations
<zyp[m]> for simple cases like that, you could probably also just tie off signals to constants and rely on constant folding
<zyp[m]> e.g. just make the signal as wide as the widest supported case, and tie off the unused bits
<zyp[m]> you could even wrap the amaranth generated module in a parameterized verilog shim that does it for you
<zyp[m]> parameterization that constant folding and dead code elimination can't deal with is probably parameterization that you'd really want to handle in python before elaboration anyway
<ydnatag[m]> Sounds insteresting. That would work for mostly of the use cases I need.
<ydnatag[m]> That helps me a lot, Thanks
cr1901_ has quit [Read error: Connection reset by peer]
cr1901 has joined #amaranth-lang
mwk has quit [Ping timeout: 276 seconds]
mwk has joined #amaranth-lang
mwk has quit [Remote host closed the connection]
mwk has joined #amaranth-lang
cr1901 has quit [Read error: Connection reset by peer]
cr1901 has joined #amaranth-lang
cr1901 has quit [Read error: Connection reset by peer]
cr1901 has joined #amaranth-lang