<iposthuman[m]>
Could someone explain something to me? I'm using an adaptation of @cr1901's PLL code. I thought the default clock domain was called "sync", so i'm confused why this line ```m.domains.sync = ClockDomain("sync")``` is present from this ``` m.domains.sync = ClockDomain("sync")... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/FiaGQDTgVyDyYtxnnEmydPrp>)
<iposthuman[m]>
if i leave the first line out i get an error ```File "/home/iposthuman/.local/lib/python3.10/site-packages/amaranth/hdl/ir.py", line 397, in add_defs
<iposthuman[m]>
assert defs[sig] is self```
<whitequark[cis]>
try replacing ClockSignal("sync") above with a new signal that you then assign to ClockSignal
<iposthuman[m]>
i think i'm not understanding what Clockdomain("sync") is ultimately doing. I thought it was adding a *new* domain? yes?
<whitequark[cis]>
it does
<whitequark[cis]>
oh, wait, I misunderstood what's going on
<whitequark[cis]>
disregard the above
<iposthuman[m]>
ok
<whitequark[cis]>
I think the reason you're hitting the error is that, if you leave out your own clock domain definition, Amaranth creates one for you using the board's default clock and reset
<whitequark[cis]>
and because you have multiple drivers for the sync's clock signal, you get a driver-driver conflict for which we do not print a good error message
frgo has quit [Ping timeout: 246 seconds]
<iposthuman[m]>
Ah! that makes sense now. I forgot about the board's default. Oops. Thanks @Catherine.
<iposthuman[m]>
i'm sure it means something in German as it's a German company. 😉
frgo has quit [Ping timeout: 268 seconds]
<iposthuman[m]>
i searched my notes and i thought it was you. i'm scanning the chat to see who suggested it.
<whitequark[cis]>
crzwdjk, I assume
<iposthuman[m]>
the url indicates it but i'm double checking
frgo has joined #amaranth-lang
<iposthuman[m]>
strange i can find a reference to him on the 4th but it isn't about plls
frgo has quit [Ping timeout: 256 seconds]
<iposthuman[m]>
it must have been crzwdjk because he responded with:```You need to create an Instance, yes. You can precompute the parameters needed if you just want a fixed frequency, otherwise you would need code to compute them. Here’s the code from my project: https://github.com/crzwdjk/uniterm/blob/main/gateware/icepll.py```
<iposthuman[m]>
yet i can't find any of that dialog going back to the 1st *confused*
<whitequark[cis]>
sometimes there are issues in the bridging meaning that not everything is logged
<iposthuman[m]>
The Keks has an HX8K which according to the spec uses SB_PLL40_CORE and not ...PAD
<whitequark[cis]>
there are both SB_PLL40_CORE and SB_PLL40_PAD primitives in each device
<whitequark[cis]>
they use the same silicon, the only difference is the exact nature of routing
<iposthuman[m]>
oh. hmmm
frgo has quit [Ping timeout: 264 seconds]
frgo has joined #amaranth-lang
<iposthuman[m]>
I tried PAD and it doesn't work. I've used plls on ecp5 in systemverilog and it worked. it's very possible i've missed some detail somewhere.
<iposthuman[m]>
i try tomorrow Zzzz...
<whitequark[cis]>
good night
frgo has quit [Ping timeout: 256 seconds]
<iposthuman[m]>
chow
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 256 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 256 seconds]
frgo has joined #amaranth-lang
* tpw_rules
just completed the world's worst axi target
<galibert[m]>
I’m sure Xilinx managed worse
<tpw_rules>
also sad news: python+numpy is not a very good systems language and doesn't offer precise control over what types of transactions i get
<whitequark[cis]>
transactions?
<tpw_rules>
for some reason writing through a uint32 array was causing a byte read in some circumstances
<whitequark[cis]>
um
<whitequark[cis]>
are you... using numpy to access mmio?
<tpw_rules>
maybe
<Darius>
..
<Darius>
are you cackling madly while throwing a knife switch?
<galibert[m]>
Heard a gasp coming from a general northly direction
<cr1901>
This is cursed and I love it
frgo has quit [Ping timeout: 264 seconds]
<whitequark[cis]>
wtf
<whitequark[cis]>
but yeah, you could actually get the same problem if you use C but omit volatile
<whitequark[cis]>
the compiler is allowed to split reads if it so desires
<whitequark[cis]>
(this happens if you try to define an MMIO register as a bitfield)
<tpw_rules>
i'm mildly sorry
<whitequark[cis]>
lol
<whitequark[cis]>
it's cool
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 264 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 240 seconds]
frgo has joined #amaranth-lang
<tpw_rules>
what docstring format does amaranth use?
frgo has quit [Read error: Connection reset by peer]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 252 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 255 seconds]
frgo has joined #amaranth-lang
frgo_ has joined #amaranth-lang
frgo has quit [Ping timeout: 264 seconds]
frgo_ has quit [Ping timeout: 255 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 255 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 276 seconds]
frgo has joined #amaranth-lang
frgo has quit [Read error: Connection reset by peer]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 255 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 260 seconds]
frgo has joined #amaranth-lang
frgo_ has joined #amaranth-lang
frgo has quit [Ping timeout: 268 seconds]
frgo_ has quit [Ping timeout: 255 seconds]
<_whitenotifier-3>
[amaranth-soc] koblonczek opened issue #60: Signature.create in amaranth-soc interfaces is incompatible with Signature.create from latest Amaranth - https://github.com/amaranth-lang/amaranth-soc/issues/60