egg has quit [Read error: Connection reset by peer]
egg has joined #glasgow
<d1b2>
<sarea> regarding different clock domains, I think the setup and syncing to externally provided CLK seems pretty clear (works). what I'm wondering though: since the FIFO works with 48 MHz (clk_if) and it does not seem to be possible to change that, it is apparent that for any externally provided CLK that is conditioned by a PLL (-> new internal CLK domain), a clock domain crossing is necessary between the 48 MHz clk_if domain and the PLL-generated CLK
<d1b2>
domain; what is the best strategy to achieve that? is there some nmigen magtic to do that easily or do I need to do this manually for the FIFO and I2C signals? I think that is quite cumbersome and would limit using externally generated CLKs ... application background: feed in 10 MHz reference signal from OCXO to achieve long-term stability for measurement related stuff
<whitequark>
there's an async FIFO feature but it doesn't quite work yet
<whitequark>
it's been on the TODO list to fix that for a while; in fact it was one of the original motivations for nmigen!
<d1b2>
<sarea> :*-(
<d1b2>
<sarea> bummer
<d1b2>
<sarea> can I help with that?
<whitequark>
not really
egg|laptop|egg_ has joined #glasgow
chiastre has joined #glasgow
bvernoux has quit [Read error: Connection reset by peer]
<d1b2>
<kbeckmann> What are the current limitations with AsyncFIFO in nMigen today? I wrote an applet that samples external signals with an external clock, and sends those samples back to the host. This is done by creating the ClockDomain object in the build() function, and passing it to both the applet and as a parameter to get_in_fifo(). I connect the clockdomain to the external clock signal in the applet's elaborate function. It might be a bit of a hack, but
egg|laptop|egg_ has quit [Remote host closed the connection]
egg|laptop|egg_ has joined #glasgow
<d1b2>
<sarea> hm perhaps it is possible (as a start only) to 'overwrite' the normal sync domain with the 48 MHz generated from the PLL? I just can't seem to find where the CLK is initially claimed ... because that is the spot where I would like to replace it with the PLL-generated version; that way I would avoid any cross domain issues with the FIFO/I2C
<whitequark>
kbeckmann: the resets
<whitequark>
sarea: you'd have to patch some of the core components in an invasive way, but yes, it's technically possible
<d1b2>
<sarea> Glasgow or nmigen core components? 😆
<whitequark>
glasgow
<whitequark>
oh, and you'll likely have timing issues with the FX2 interface
<d1b2>
<sarea> but why? if I use a highly stable 10 MHz external ref, generate 48 MHz from that with the PLL, it should be OK; no?
<whitequark>
there's a few issues
<whitequark>
first, you can only get 48.125 MHz with the iCE40 PLLs, not 48 MHz
<whitequark>
second, the setup/hold times for SB_IO and the FX2 are different depending on whether FX2 sources or accepts the clock
<whitequark>
there should be a timing analysis for that part of the interface somewhere on GitHub; the margins on it are very tight and you'll definitely have to modify the part of the design that talks to the FX2
<d1b2>
<sarea> ah I see, so the default clock of the ice40 is provided by the FX2?
<whitequark>
yes
<whitequark>
this is done to free both of the PLLs for user designs
<d1b2>
<sarea> ah okay; so then it does not work; agreed
<whitequark>
though placement restrictions make that a lot trickier than originally planned
<whitequark>
the iCE40 does not have a stable clock source, so it would have to accept the clock from the FX2 or something else on the board anyway
<d1b2>
<sarea> okay, so for testing I guess I will just remove the oscillator for the FX2 and feed in the 24 MHz directly; no programming -- 100% hardware solution 😆
<whitequark>
yep that sounds nice and straightforward
<d1b2>
<sarea> 👍
rafaelmartins_ is now known as rafaelmartins
betelgeuse has joined #glasgow
electronic_eel_ is now known as electronic_eel
redstarcomrade has joined #glasgow
egg|laptop|egg_ has quit [Remote host closed the connection]
jstein has joined #glasgow
bvernoux has quit [Ping timeout: 252 seconds]
trh_ is now known as trh
jevinskie[m] has quit [Quit: Reconnecting]
jevinskie[m] has joined #glasgow
jevinskie[m] has quit [Client Quit]
jevinskie[m] has joined #glasgow
FFY00 has quit [Read error: Connection reset by peer]
jstein has quit [Ping timeout: 252 seconds]
egg|laptop|egg_ has joined #glasgow
redstarcomrade has quit [Quit: Connection closed for inactivity]