*** tpb <[email protected]> has joined #litex | 00:00 | |
*** thirtythreeforty <thirtythreeforty!~thirtythr@2603-8080-2704-6601-0000-0000-0000-0260.res6.spectrum.com> has joined #litex | 01:32 | |
thirtythreeforty | Migen question: I need some unique identifier for the clock domain that a module will end up being clocked by. How should I do this? Things I've tried: | 01:34 |
---|---|---|
*** jryans <jryans!~jryans@2001:470:69fc:105::1d> has joined #litex | 01:34 | |
*** sajattack[m] <sajattack[m]!~sajattack@2001:470:69fc:105::1d9> has joined #litex | 01:35 | |
*** shoragan[m] <shoragan[m]!~shoraganm@2001:470:69fc:105::39> has joined #litex | 01:35 | |
*** dcallagh <dcallagh!~dcallagh@2001:470:69fc:105::9c5> has joined #litex | 01:35 | |
*** david-sawatzke[m <david-sawatzke[m!~david-saw@2001:470:69fc:105::1634> has joined #litex | 01:35 | |
*** CarlosEDP <CarlosEDP!~carlosedp@2001:470:69fc:105::218e> has joined #litex | 01:35 | |
*** DerekKozel[m] <DerekKozel[m]!~dkozelgnu@2001:470:69fc:105::2f14> has joined #litex | 01:35 | |
*** vomoniyi[m] <vomoniyi[m]!~vomoniyig@2001:470:69fc:105::3023> has joined #litex | 01:35 | |
*** leons <leons!~leons@2001:470:69fc:105::abc> has joined #litex | 01:35 | |
*** promach[m] <promach[m]!~promach@2001:470:69fc:105::ca1> has joined #litex | 01:35 | |
*** Las[m] <Las[m]!~lasmatrix@2001:470:69fc:105::74e> has joined #litex | 01:35 | |
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has joined #litex | 01:35 | |
*** bluecmd <bluecmd!~bluecmd@2001:470:69fc:105::1d44> has joined #litex | 01:35 | |
thirtythreeforty | - Ask the module to keep hold of it as self.clk or whatever. This does not work because strings like 'sys' are not unique until .finalize() is finished. | 01:35 |
*** willcode4[m] <willcode4[m]!~willcode4@2001:470:69fc:105::e1b3> has joined #litex | 01:35 | |
*** Crofton[m] <Crofton[m]!~croftongn@2001:470:69fc:105::9a7> has joined #litex | 01:35 | |
thirtythreeforty | (and in fact 'sys' might get renamed for a variety of reasons, so...) | 01:35 |
*** amstan <amstan!~amstan@2001:470:69fc:105::1e9> has joined #litex | 01:36 | |
*** a3f <a3f!~a3f@2001:470:69fc:105::41d> has joined #litex | 01:36 | |
*** CarlFK <CarlFK!~carlfk@2001:470:69fc:105::5d8> has joined #litex | 01:36 | |
*** nrossi[m] <nrossi[m]!~nrossimat@2001:470:69fc:105::1:4527> has joined #litex | 01:36 | |
thirtythreeforty | - Have a ClockSignal() in the module in question. ClockSignal's self.clk *will* be updated by the visitor when ClockDomainsRenamer walks the tree. This is better, because now I can get the real clock domain from the module after .finalize() | 01:37 |
thirtythreeforty | but, this still doesn't work because eventually the module doing the walking (via xdir()) must also be a submodule, and *its siblings* will not be finalized by the time the walker's do_finalize() is running, so the same caveat about 'sys' not being the real clock domain still applies | 01:38 |
thirtythreeforty | So, what to do? The ultimate goal is to learn which clock each module is using so I can connect it to the appropriately-clocked bus | 01:39 |
thirtythreeforty | (Also, is this easier in nMigen?) | 01:43 |
*** Degi_ <[email protected]> has joined #litex | 01:54 | |
*** Degi <[email protected]> has quit IRC (Ping timeout: 256 seconds) | 01:55 | |
*** Degi_ is now known as Degi | 01:55 | |
*** thirtythreeforty <thirtythreeforty!~thirtythr@2603-8080-2704-6601-0000-0000-0000-0260.res6.spectrum.com> has quit IRC (Ping timeout: 252 seconds) | 02:13 | |
*** thirtythreeforty <thirtythreeforty!~thirtythr@2603-8080-2704-6601-0000-0000-0000-0260.res6.spectrum.com> has joined #litex | 02:20 | |
*** rlittl01 <[email protected]> has joined #litex | 02:30 | |
*** thirtythreeforty <thirtythreeforty!~thirtythr@2603-8080-2704-6601-0000-0000-0000-0260.res6.spectrum.com> has quit IRC (Ping timeout: 260 seconds) | 02:55 | |
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 03:46 | |
*** TMM_ <[email protected]> has joined #litex | 03:46 | |
*** rlittl01 <[email protected]> has quit IRC (Remote host closed the connection) | 04:47 | |
_florent_ | thirtythreeforty: I'm not sure to understand correctly your question, but for this, I would probably do the opposite: Have a clock domain in the submodule, expose it and clock the logic with this clock domain. Then at the top, connect the clocks of each submodule. In fact in a way very similar to traditional (S) Verilog/VHDL designs. | 06:30 |
_florent_ | thirtythreeforty: if this is not answering your question, can you create an issue in LiteX to discuss this and share minimal code of what you are trying to do? | 06:31 |
*** Coldberg <[email protected]> has quit IRC (Ping timeout: 260 seconds) | 07:48 | |
*** _whitelogger <[email protected]> has quit IRC (Remote host closed the connection) | 07:51 | |
*** _whitelogger <[email protected]> has joined #litex | 07:52 | |
*** _franck_ <[email protected]> has quit IRC (Read error: Connection reset by peer) | 07:59 | |
*** _franck_ <[email protected]> has joined #litex | 07:59 | |
*** FabM <[email protected]> has joined #litex | 08:05 | |
*** _franck_ <[email protected]> has quit IRC (Ping timeout: 256 seconds) | 08:11 | |
*** _franck_ <[email protected]> has joined #litex | 08:16 | |
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 08:38 | |
*** TMM_ <[email protected]> has joined #litex | 08:38 | |
*** TMM_ <[email protected]> has quit IRC (Client Quit) | 08:40 | |
*** TMM_ <[email protected]> has joined #litex | 08:40 | |
*** TMM_ <[email protected]> has quit IRC (Client Quit) | 08:40 | |
*** TMM_ <[email protected]> has joined #litex | 08:40 | |
*** _franck_ <[email protected]> has quit IRC (Ping timeout: 250 seconds) | 09:19 | |
*** _franck_ <[email protected]> has joined #litex | 09:43 | |
*** Coldberg <[email protected]> has joined #litex | 13:53 | |
*** paultech <paultech!~paultech@2600:6c5d:4f00:5a24:f5b9:43b3:be85:ec4d> has joined #litex | 14:44 | |
paultech | Looks like nMigen is now called Amaranth? Seems to have broken a few things:( | 14:44 |
tnt | _florent_: https://pastebin.com/MVUa3jCx | 14:47 |
tpb | Title: Creating Serdes0Measuring Serdes0 frequencies...TX freq: 153.903MHzRX f - Pastebin.com (at pastebin.com) | 14:47 |
tnt | paultech: :/ I hate name changes | 14:48 |
tnt | _florent_: so that looks like good news ? | 14:49 |
paultech | Yeah this one seems fairly intrusive. Changed repo URL, changed default branch, changed folder structure | 14:50 |
tnt | _florent_: Or possibly not ... works even without --loopback which it should definitely not ... | 14:50 |
paultech | Should litex_setup support different branches? Seems to be master only atm | 14:50 |
paultech | Took all of 10 seconds. clone="recursive",branch="main") but unsure if breaking some convention if everything else uses master | 14:54 |
*** str1 <[email protected]> has quit IRC (Quit: WeeChat 2.3) | 15:13 | |
*** mtretter <[email protected]> has quit IRC (Remote host closed the connection) | 15:13 | |
paultech | Python package is also amaranth-yosys now, broke ci. How rude | 15:19 |
*** andresmanelli <[email protected]> has joined #litex | 15:24 | |
*** andresmanelli <[email protected]> has quit IRC (Client Quit) | 15:24 | |
*** zjason` is now known as zjason | 15:30 | |
tnt | So looks like the "tx freq is at 122.88" (the measured one in the pastebin above is bad because of measurement imprecision since litex_server is remote though vpn and forwarded ports etc ...). | 15:35 |
tnt | and the rx freq is actually 0 ... | 15:35 |
tnt | So that's obviously not good. | 15:35 |
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Quit: Leaving) | 15:48 | |
tnt | Any clue how to debug ? | 15:57 |
*** whitequark <whitequark!~whitequar@2001:470:69fc:105::37> has joined #litex | 16:24 | |
whitequark | hey folks, I know the nMigen to Amaranth name change was going to break a few things | 16:26 |
whitequark | I'd be happy to assist in fixing the breakage | 16:28 |
cr1901 | cc: paultech, I posted the log into #amaranth-lang with your msgs highlighted. I have no idea why CI broke | 16:34 |
cr1901 | but I have some symlinks and program settings that depend on the old nmigen name, and I'd rather wait to break those settings until litex has handled the name change | 16:35 |
paultech | cr1901, whitequark, Don't think anything is broken on litex side yet. The setup script broke due to lack of a master branch but since remaining packages are still available I believe litex CI will build (apart from the previously mentioned failure with the setup script) | 16:39 |
paultech | Will leave that to _florent_to test out | 16:39 |
_florent_ | Hi whitequark, thanks for letting us know, nice new name! The breakage should be limited and easy to fix for LiteX. I'll have a closer look in the next days. | 17:01 |
_florent_ | tnt: the first thing to look at is the TX/RX initialization, the TX/RX freqs | 17:04 |
_florent_ | tnt: so maybe you could add LiteScope and verify the TX/RX initialization FSM | 17:04 |
tnt | The TX freq looks fine. RX freq is zero. rx_ready stays at 0. I'm digging into the RX init fsm right now. | 17:06 |
tnt | I've never used litescope actually, no idea how that works. | 17:06 |
_florent_ | it's very easy to add it to your design: https://github.com/enjoy-digital/litex/wiki/Use-LiteScope-To-Debug-A-SoC#add-a-litescope-analyzer-to-your-soc | 17:20 |
_florent_ | and since you probably already have a UARTBone bridge in your design, it will be even easier | 17:20 |
_florent_ | Just add the analyzer | 17:20 |
tnt | Why is litescope repo a github template ? | 17:21 |
_florent_ | and you can use litescope_cli over the same litex_server that you are currently using for test_prbs.py | 17:21 |
tnt | Thanks for the howto, got it added with a few signals related to rx init status. | 17:21 |
tnt | (easy indeed, nice :) | 17:22 |
whitequark | https://github.com/enjoy-digital/litex/pull/1130 | 17:22 |
_florent_ | litescope repo a github template ? Sorry, not sure to understand | 17:22 |
tnt | Go to https://github.com/enjoy-digital/litescope | 17:22 |
tnt | https://i.imgur.com/TDobCaK.png | 17:22 |
tnt | It says "public template" and "Use this template" instead of the normal clone button. | 17:23 |
_florent_ | whitequark: Thanks! | 17:24 |
_florent_ | tnt: Thanks, this is fixed (LiteScope public template) | 17:31 |
*** Martoni42 <Martoni42!~Martoni@2a03:d604:103:600:2ad2:44ff:fe23:2f72> has joined #litex | 17:33 | |
tnt | Looks like RXRESETDONE never comes up. | 18:16 |
tnt | There is a RX clock ( RXOUTCLK ), it's just that because the init never finishes, it stays in reset. | 18:45 |
MoeIcenowy | how could I connect a FPGA's internal flash (co-packaged SPI Flash, accessible as a blackbox HDL module) to LiteSPI? | 19:10 |
MoeIcenowy | how should I construct the pads needed by LiteSPIPHY, make them connect to a Instance of the blackbox HDL | 19:11 |
*** essele_ <[email protected]> has quit IRC (Read error: Connection reset by peer) | 19:11 | |
*** essele <[email protected]> has joined #litex | 19:11 | |
MoeIcenowy | I now created a Record and use them as the signals connected to the Instance and pass it as pads to LiteSPIPHY | 19:11 |
tnt | _florent_: mmm ... looks like the 1ms timeout in the init time machine was too short, it just kept resetting before it was done going through its internal init. | 19:19 |
tnt | Looking at the wait timer value, it seems to have taken ever so slightly above 2 ms. | 19:20 |
tnt | And now if I have the loopback disabled, I have tons of errors (kind of expected) and if it's enabled, no errors. | 19:22 |
MoeIcenowy | https://paste.aosc.io/paste/Rk3AbVJ0I0By9W1YKhbsPw my current try to connect LiteSPI flash to the blackbox | 19:38 |
tpb | Title: Pastebin | AOSC Pastebin (at paste.aosc.io) | 19:38 |
tnt | MoeIcenowy: and that doesn't work ? | 19:47 |
*** somlo <[email protected]> has quit IRC (Remote host closed the connection) | 19:47 | |
*** essele <[email protected]> has quit IRC (Quit: My MacBook has gone to sleep. ZZZzzz…) | 19:50 | |
MoeIcenowy | tnt: that does not work... | 19:56 |
MoeIcenowy | things do not get connected | 19:56 |
*** Martoni42 <Martoni42!~Martoni@2a03:d604:103:600:2ad2:44ff:fe23:2f72> has quit IRC (Ping timeout: 250 seconds) | 20:01 | |
*** MoeIcenowy <[email protected]> has quit IRC (Quit: ZNC 1.7.2+deb3 - https://znc.in) | 20:03 | |
*** MoeIcenowy <[email protected]> has joined #litex | 20:03 | |
tnt | MoeIcenowy: did you look at the verilog output see what it did ? | 20:11 |
*** somlo <[email protected]> has joined #litex | 20:13 | |
*** MoeIcenowy <[email protected]> has quit IRC (Quit: ZNC 1.7.2+deb3 - https://znc.in) | 20:14 | |
*** MoeIcenowy <MoeIcenowy!~MoeIcenow@2604:a880:2:d1::1d1:f001> has joined #litex | 20:15 | |
*** eigenform <[email protected]> has joined #litex | 21:09 | |
_florent_ | tnt: Great, init time is indeed different between type of transceiver, result of test_prbs seems good | 21:10 |
tnt | _florent_: I currently don't have an external loopback to test with, maybe next week. | 21:15 |
tnt | I checked the talisse adi chip doesn't have any loopback mode I can enable, but it does have a PRBS mode I can try. | 21:15 |
*** paultech <paultech!~paultech@2600:6c5d:4f00:5a24:f5b9:43b3:be85:ec4d> has quit IRC (Quit: Client closed) | 22:04 | |
shorne_ | _florent_: I got the package, thank you | 23:04 |
*** bytebucket <[email protected]> has joined #litex | 23:09 | |
*** bytebucket <[email protected]> has quit IRC (Client Quit) | 23:09 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!