<whitequark[cis]>
this converts the four options of sync/async buffered/unbuffered into one component
<whitequark[cis]>
i'm not yet sure if it should behave this specific way or not. in particular, i think sync/async FIFOs should be different components, because specifying equal domains to StreamFIFO changes its implementation in a way applying DomainRenamer does not
<whitequark[cis]>
and that in turn changes other properties such as latency, so that even if the StreamFIFO.elaborate method could find out whether the two domains are actually the same or not (functionality we wanted for a while), it should probably not switch the implementation based on that either
<whitequark[cis]>
on the other hand, i'd like to have ratio conversion built-in, both "individual element to array of element" and "array of elements to bigger array of elements"
zyp[m] has joined #amaranth-lang
<zyp[m]>
I'm inclined to agree, the sync/async difference should probably be more explicit than just whether the clock domains happens to be the same
<zyp[m]>
and yeah, ratio conversion ties right into RFC 56