whitequark changed the topic of #glasgow to: digital interface explorer · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.irclog.whitequark.org/glasgow · discord https://1bitsquared.com/pages/chat · production https://www.crowdsupply.com/1bitsquared/glasgow (FUNDED)
egg|laptop|egg_ has joined #glasgow
chiastre has joined #glasgow
betelgeuse has quit [Quit: The Lounge - https://thelounge.chat]
egg|laptop|egg_ has quit [Remote host closed the connection]
smeding_ has joined #glasgow
arisu_ has joined #glasgow
GregNGM_ has joined #glasgow
Stary_ has joined #glasgow
pg12 has joined #glasgow
RaYmAn_ has joined #glasgow
trh_ has joined #glasgow
ants` has joined #glasgow
Stary has quit [*.net *.split]
Lilian has quit [*.net *.split]
smeding has quit [*.net *.split]
tomtastic has quit [*.net *.split]
arisu has quit [*.net *.split]
nats` has quit [*.net *.split]
GregNGM has quit [*.net *.split]
trh has quit [*.net *.split]
RaYmAn has quit [*.net *.split]
uartist has quit [*.net *.split]
pg12_ has quit [*.net *.split]
RaYmAn_ is now known as RaYmAn
tomtastic has joined #glasgow
Lilian has joined #glasgow
arisu_ is now known as arisu
kmehall has quit [Ping timeout: 250 seconds]
kmehall_ has joined #glasgow
tomtastic has quit [Ping timeout: 252 seconds]
tomtastic has joined #glasgow
egg has quit [Read error: Connection reset by peer]
egg has joined #glasgow
rafaelmartins has quit [Ping timeout: 252 seconds]
rafaelmartins has joined #glasgow
trh_ has quit [Quit: weg]
trh has joined #glasgow
roybatty_ has joined #glasgow
roybatty2019 has quit [Ping timeout: 252 seconds]
pie_ has quit [Ping timeout: 252 seconds]
pie_ has joined #glasgow
Xesxen_ has joined #glasgow
Xesxen has quit [Ping timeout: 252 seconds]
rafaelmartins_ has joined #glasgow
rafaelmartins has quit [Ping timeout: 252 seconds]
GNUmoon has quit [Ping timeout: 276 seconds]
nyanotech has quit [Quit: No Ping reply in 180 seconds.]
nyanotech has joined #glasgow
GNUmoon has joined #glasgow
alanvgreen_ has joined #glasgow
alanvgreen has quit [Ping timeout: 252 seconds]
alanvgreen_ is now known as alanvgreen
yuriks_ has joined #glasgow
yuriks_ is now known as yuriks
yuriks has quit [Ping timeout: 252 seconds]
trh has quit [Ping timeout: 252 seconds]
trh_ has joined #glasgow
Fridtjof has quit [Ping timeout: 252 seconds]
Fridtjof has joined #glasgow
bvernoux has joined #glasgow
chiastre has quit [Ping timeout: 252 seconds]
pie_ has quit [Ping timeout: 252 seconds]
pie_ has joined #glasgow
Lilian_ has joined #glasgow
Lilian has quit [Quit: ZNC 1.8.2 - https://znc.in]
tomtastic has quit [Ping timeout: 240 seconds]
tomtastic has joined #glasgow
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
<d1b2> it seems to work. If there is a better approach, I'm all ears. @sarea If you want to look at the code for inspiration I have it here https://github.com/kbeckmann/Glasgow/blob/kb/n64/software/glasgow/applet/n64/n64video/__init__.py
bvernoux has joined #glasgow
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]
ants` is now known as nats`