peeps[zen] has quit [Remote host closed the connection]
peeps[zen] has joined #amaranth-lang
kc5tja has joined #amaranth-lang
<kc5tja>
Hello; I have a design which I'd like to get estimated timing parameters from (in particular, maximum clock frequency). I'm using Amaranth 0.4.3, and I tried installing amaranth_boards from GitHub (since the package in pypi is just a stub). Where do I go from here though? I'm looking at approximately 200 I/Os total, although I can stub a good
<kc5tja>
number of those off if need be. Any advice would be appreciated. Many thanks in advance.
<whitequark[cis]>
Amaranth 0.5 had a total rework of the memory subsystem, so it's very likely that if you upgrade to it you'll no longer hit this issue
<whitequark[cis]>
it's not worth reporting because the 0.4 branch is no longer supported
<kc5tja>
Ooh, I was unaware there is a new version out. I'll update and try again. Thanks!
<kc5tja>
Unfortunately, upgrading to 0.5 breaks my unit tests. My register file code says that every read port returns zero, no matter what address I give. I'll need to look further into this tomorrow or day after; it's way past my bed-time here.
d_olex_ has joined #amaranth-lang
_catircservices1 has joined #amaranth-lang
Degi has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
d_olex has quit [Read error: Connection reset by peer]
_catircservices has quit [Ping timeout: 268 seconds]
richardeoin has quit [Ping timeout: 268 seconds]
richardeoin has joined #amaranth-lang
whitequark[cis] has quit [Ping timeout: 268 seconds]
whitequark[cis] has joined #amaranth-lang
Degi has joined #amaranth-lang
<whitequark[cis]>
<kc5tja> "Unfortunately, upgrading to 0...." <- you probably need to add the Memory as a submodule
<zyp[m]>
so a 16-bit write arrives on the upstream bus as a 32-bit write with two enable bits set, you translate that to two independent 8-bit writes on the CSR bus, and a CSR register multiplexer further downstream takes care of reassembling those to a 16-bit write
<mabl[m]>
Yes, I am doing this. I guess I was more talking about the memory layout. I was using [MemoryMap.add_resource](https://github.com/amaranth-lang/amaranth-soc/blob/main/amaranth_soc/memory.py#L314C9-L314C21) with alignment. That not only aligns the start but also the stop of the inserted range. It seems that the Mux then only sets the register element write strobe on [the aligned
<mabl[m]>
So the 2times 8bit-write into the aligned 16bit wide register newer gets properly realigned until the stop address is written to. At least, that is how I understand all this. :-)
<mabl[m]>
* Yes, I am doing this. I guess I was more talking about the memory layout. I was using [MemoryMap.add\_resource](https://github.com/amaranth-lang/amaranth-soc/blob/main/amaranth_soc/memory.py#L314C9-L314C21) with alignment. That not only aligns the start but also the stop of the inserted range. It seems that the Mux then only sets the register element write strobe on [the aligned
<mabl[m]>
So the 2times 8bit-write into the aligned 16bit wide register newer gets properly reaassembled until the 32bit stop address is written to. At least, that is how I understand all this. :-)
<zyp[m]>
oh, yeah, that looks correct
<zyp[m]>
but in that case, the generated code would also treat it as a 32-bit register, issuing a write with all byte lanes enabled
jfng[m] has joined #amaranth-lang
<jfng[m]>
<whitequark[cis]> "the right way to resolve this, I..." <- as this use-case seems to come up regularly (bridging a WB bus with an 8-bit granularity to a 32-bit CSR bus), i think it may be worthwhile to modify the CSR bridge as you just described
<jfng[m]>
it already adds a clock cycle of latency, so aborting a transaction with ERR can be done here without adding more latency
<kc5tja>
whitequark[cis] - that was it, thank you. I was rushing to get things finished before the end of my vacation, and my eyes refused to see the obvious. Thank you again.
<whitequark[cis]>
no meeting today--I am feeling kind of unwell, apologies
<tpw_rules>
sorry to hear that
galibert[m] has joined #amaranth-lang
<galibert[m]>
Take care of yourself
kc5tja has quit [Quit: Client closed]
d_olex_ has joined #amaranth-lang
bl0x[m] has quit [Quit: Idle timeout reached: 172800s]