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.irclog.whitequark.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
<ddribin[m]> Does plat.default_rst override that power-on-reset ready signal? Or augment it?
<ddribin[m]> Setting `platform.default_rst = "button` does work, though it does not get run through a `FFSynchronizer`... probably doesn't matter
<ddribin[m]> can't quite figure out how to setup a new clock domain 🙂 I don't think I have access to the clock signal? anyhow, I have something working. thanks!
<cr1901> The reset signal itself should get run through an ResetSynchronizer (mildly different from FFSynchronizer)
<ddribin[m]> Ah, yup, it does
<cr1901> The default reset logic isn't that much to copy; when I did the "platform.default_rst = "button"" trick, it's because this is an example design and I didn't want to spend time interfacing the default logic into my source for a single change from default
<ddribin[m]> what is the drawback to using default_rst ? Seems like the intent of Platform.dfault_rst is to setup a reset button?
<cr1901> Some boards (Arty A7) have a button that is explicitly dedicated to being a design reset (I think this means it uses global routing; I would have to check Arty A7 docs)
<ddribin[m]> okay. I'll fiddle around with a new clock domain a bit later, to see if I can get that working
<cr1901> icebreaker has no such button, so... I lie and say one of the user buttons is a reset button :P https://github.com/amaranth-lang/amaranth-boards/blob/main/amaranth_boards/icebreaker.py#L25
<ddribin[m]> I mean, that seems reasonable, right 🙂 we're declaring that this button *is* the reset button
<cr1901> Sure, but I explained to you what I was doing; since I'm deviating from the built-in reset logic, even just a little, it's probably less surprising to ppl who don't know Amaranth to see explicit reset logic to indicate "hey, I'm doing something not default"
duskwuff[m] has joined #amaranth-lang
<duskwuff[m]> in some cases it just means the button is literally labeled "RESET"
<cr1901> In short, I got lazy, and didn't feel like copying; ice40 is a bit special since the default reset logic works around a hardware bug. Maybe a future RFC could expose the platform-specific resets to user code for small changes where the user doesn't need that much custom logic, Idk...
<whitequark[cis]1> I think you can just copy paste it
<cr1901> Perfect is the enemy of finished; I'll come back to it after I finish Sentinel's docs and take a break (8 last items to document)
<cr1901> m.d.comb += ClockSignal("sync").eq(platforn.request(platform.default_clk).i)
<cr1901> minus typos
<ddribin[m]> but I believe this also overrides the 3us power-on-reset delay described here (unless I copy all of that, too):... (full message at <https://catircservices.org/_irc/v1/media/download/AeRj0SVDXPcHV3Dx6jwYdCLnhrP04FpB7bvfPgPVnicdKeKXBXKFXlgBPHn7e-SroDFeumdR0joZXum_gdLNHf-_8AAAAAAAAGNhdGlyY3NlcnZpY2VzLm9yZy9QYWNEWElQRE55UWVMdlhvdFR4aUNRQmE>)
<cr1901> Correct, that logic won't be brought in, which is the point I got lazy and used my hack :P
<cr1901> _IIUC_ (please wait for others to verify/correct me), SiliconBluePlatform.create_missing_domain will not get called at all if you define "m.domains += ClockDomain("sync")", as you do in your snippet: https://github.com/amaranth-lang/amaranth/blob/main/amaranth/hdl/_ir.py#L149-L152
<cr1901> collector.defined_domains will contain "sync", and therefore the missing_domain function- i.e. SiliconBluePlatform.create_missing_domain- won't be called for "sync"
<whitequark[cis]1> yes
<whitequark[cis]1> this is regretfully undocumented
Degi has quit [Ping timeout: 264 seconds]
Degi has joined #amaranth-lang
d_olex has quit [Remote host closed the connection]
d_olex has joined #amaranth-lang
TD--Linux is now known as TD-Linux
jjsuperpower__ has joined #amaranth-lang
jjsuperpower_ has quit [Ping timeout: 246 seconds]
SpaceCoaster has quit [Read error: Connection reset by peer]
SpaceCoaster has joined #amaranth-lang
jjsuperpower_ has joined #amaranth-lang
jjsuperpower__ has quit [Ping timeout: 245 seconds]
jjsuperpower_ has quit [Ping timeout: 265 seconds]
jjsuperpower has joined #amaranth-lang
jjsuperpower_ has joined #amaranth-lang
jjsuperpower has quit [Remote host closed the connection]
SpaceCoaster has quit [Ping timeout: 244 seconds]
SpaceCoaster has joined #amaranth-lang
jjsuperpower_ has quit [Ping timeout: 265 seconds]
jjsuperpower_ has joined #amaranth-lang