Thursday, 2021-09-23

*** tpb <[email protected]> has joined #litex00:00
jevinskie[m]benh: how did tweaking the clock detection margins go?00:33
jevinskie[m]florent: did you have any ideas about cutting timing on the IP checksum? I thought about pipelining it and found this old RFC that implements it in GALs. I wonder if any universities still use GALs in their intro courses :) https://datatracker.ietf.org/doc/html/rfc193600:36
tpbTitle: rfc1936 (at datatracker.ietf.org)00:36
benhjevinskie[m]: fixing another bug causing my stuff to break when I add liteeth (unrelated to litex)00:41
benhI don't think the above patch I pasted makes a difference since clk_freq is already a float00:43
benhthus I don't see why we realy on sys_clk being at least 125Mhz... it should work ok with lower sys_clk as long as the data path is larger than 8 bits no ?00:44
benhor am I missing something ?00:44
benhof course a real gigabit link will probably flood those tiny cores, especially with only 2 receive slots, no DMA and no pipelined wishbone00:45
*** Coldberg <[email protected]> has joined #litex00:49
benhunless I'm mistaken we can probably just remove the asserts in gen.py00:52
*** C-Man <[email protected]> has quit IRC (Ping timeout: 252 seconds)00:53
jevinskie[m]I agree that I don’t think sysclk needs to be 125, since counting happens in eth_rx domain. Unless we’re both missing something :)01:14
benhyeah, I originally thought the above math would be wrong due to integer arithmetic rouding but then I figured clk_freq is probably floating point, I went back to the old code, regenerated with the 100/125 freqs and the resulting verilog looks fine01:17
benhanyways, I'll do more tests01:17
*** Degi_ <[email protected]> has joined #litex03:30
*** Degi <[email protected]> has quit IRC (Ping timeout: 252 seconds)03:30
*** Degi_ is now known as Degi03:30
benh_florent_: what ever happened to the idea of having a way to "fix" the CSR layout for the sake of OS drivers ?04:40
benh_florent_: for example I can see today that the liteeth driver that went upstream hard wires the register layout04:40
benh_florent_: but the PHY part doesn't match what litex generated :-) because GMII_MII puts the Mode status register before the PHY reset and MDIO so everything is shifted04:41
benh_florent_: I have memories that we talked about having a way to specify "templates" via name/offset tables04:41
benhin fact, the stuff currently upstream doesn't work at all04:47
benhbecause the CSR banks are generated the other way around between MAC and PHY from the device-tree in Linux vs. what LiteX spat out04:48
benhso we have both registers inside the PHY bank changing depending on the PHY type (MDIO gets shifted around because the per-PHY-type stuff comes first)04:50
benhand we have the banks themselves flipping around04:50
benhjevinskie[m]: So just taking out those asserts in gen.py worked05:01
benhI have microwatt at 100Mhz with liteeth+GMII_MII (at 125) and packets are flowing fine05:02
benh(once I hacked to compensate for the CSRs moving around)05:02
jevinskie[m]Excellent! Good work :D05:05
jevinskie[m]I’m trying to figure out WTF is going on with the RGMII timing. I’m getting high nibble for byte X with the low nibble for byte X+Y. The dev kit ref project has bizarre clock / data skew - quartus puts max delay on the data ports and the data path is 0.2 ns longer than the clock path for rx_ctl. Is it accidentally pushing out the clock and data by a cycle? RGMII internal delay is off05:10
jevinskie[m]I’ve resorted to looking at the trace lengths. Luckily intel provides the PCB layout file for the max10 dev kit :)05:11
benhnah05:11
benhI spoke too soon05:11
benhit works if I force the link to 100Mb/s05:11
benhon the peer05:11
benhthe mode detection seems to work (reading the CSR) when switching between 100 and 100005:11
benhbut at 1000 I don't seem to get any packet05:11
jevinskie[m]Well at least the mux is working or stuck on MII xD05:12
benh:-)05:13
benhthe driver tx count increments so the MAC thinks its sending05:13
jevinskie[m]Try hooking up litescope to tx/rx ctl/data and looking at something like an ARP packet and compare with wireshark (my current approach)05:13
benhthe peer doesn't see the packets05:14
benhI'm not in LiteX, I'm in standalone mw, we don't have litescope05:14
benhbut I can try a pure litex design at some point05:14
benhthe mux works, the detection of 100 vs 1000 works05:15
benhI can change the peer speed with ethtool and it's properly reflected in the CSR that exposes the mode05:15
benhbut no packets flow on the GMII05:15
benhI suppose I could at least check gtx with a scope05:17
benhjevinskie[m]: am I correct in my understanding that the "mode" argument to LiteEthPHYGMIICRG() constructor is fixed at generation time ?05:23
benhor it's a variable ?05:23
benhgenerating HW via migen/litex never agreed with my brain, I just can't read the stuff :-) give me verilog or vhdl anytime :-)05:23
benhtrying to figure out how is gtx generated05:24
jevinskie[m]It’s a signal :) `mode = self.mode_detection.mode`05:26
benhjevinskie[m]: yes that I get05:38
benhjevinskie[m]: but the argument passed to LiteEthPHYGMIICRG() is actually: mode == modes["MII"]05:39
benhwhich is basically mode == 105:39
benhthat baffles me ... I didn't think that would generate via some python black magic another signal behind a comparator05:39
benhbut it seems to do05:39
benhoh well, I don't know why it doesn't work at this point, and I'm out of time05:40
*** geertu <[email protected]> has joined #litex06:22
benhhrm... LiteX is generating a bad PLL outside of operating ranges, Vivado barfs06:34
benhI'll have a look later06:34
*** Coldberg <[email protected]> has quit IRC (Ping timeout: 265 seconds)06:41
_florent_benh: The fixed CSR mapping is not yet in place, but we have been discussing it a few days ago: https://libera.irclog.whitequark.org/litex/2021-09-15#3084276206:48
tpbTitle: #litex on 2021-09-15 — irc logs at whitequark.org (at libera.irclog.whitequark.org)06:48
_florent_i'll try to spend some time on it soon since this makes upstreaming drivers difficult06:50
_florent_The current Eth PHYs probably have a CSR capabilities/mapping, so this can explain what you see when switching the PHY. This would be good to uniformize this for the same reasons06:51
_florent_But we need https://github.com/enjoy-digital/litex/issues/548 first06:52
_florent_jevinskie[m]: A way that can be convenient to debug your RGMII issue could be try a netboot and set software_debug to True: https://github.com/enjoy-digital/litex/blob/master/litex/soc/integration/soc.py#L140306:54
_florent_This will disable the RX hardware checks and let the CPU handle them. The CPU will then also print the RX/TX packets that you can then easily compare with Wireshark captures06:55
_florent_If you suspect an issue in RX, you can also create a minimal design with just the PHY + LiteScope and compare received packets with the ones from Wireshark06:56
*** pftbest_ <[email protected]> has quit IRC (Remote host closed the connection)06:58
*** pftbest <[email protected]> has joined #litex06:58
*** FabM <[email protected]> has joined #litex07:16
jevinskie[m]Yep I’ve taken the latter approach and am just looking at the RX bytes from the DDR inputs with litescope. I have some timing issue since the correct low nibbles are appearing in the next bytes low nibbles. High nibbles are also correct but paired with low data from the wrong cycle. I’m furiously drawing out timing diagrams and measuring path delays to the ddr input registers08:05
jevinskie[m]There is negligible trace skew, data and clock are all pretty close. I can’t route the rx clk pin to a PLL on this max10 so it seems all the skewing has to be done with timing constraints? I’m starting to think the reference project works by chance luck08:09
*** Coldberg <[email protected]> has joined #litex09:25
benh_florent_: thanks, I'll read those links ltr !09:33
benh_florent_: I have neither Rx not Tx09:34
benhI'll do more experiments later, right now I'm trying to remove microwatt from the equation and adjusting LiteX own Wukong support to work on board v209:34
benhthen I'll see if that works and if not we can debug further, such as using a pure GMII see if that works09:34
benhetc...09:35
benh_florent_: any idea what can cause LiteX to generate a bad PLL2 ? ie, with parameters out of range that cause vivado to barf09:37
Melkhiorbenh: one known bug in Wukong support is J10 and J11 definitions are swapped09:38
_florent_benh: Passing a wrong speedgrade to the PLL could cause it09:38
Melkhior(my local copy has a bunch of other changes to support PS/2 and USB PMods)09:38
_florent_or a wrong timing constraint at the input09:38
_florent_benh, Melkior: BTW if there are different revision of the Wukong board, this could be worth adding revisions to the platform, as done in OrangeCrab for example09:40
_florent_https://github.com/litex-hub/litex-boards/blob/master/litex_boards/platforms/gsd_orangecrab.py09:40
MelkhiorI don't have the new one to test :-( but that's probably the right way if it is very close09:53
benhMelkhior: ah good, I had started doing separate _io definitions for v1 and v2 thinking it was a difference between the two versions :-)09:58
benhMelkhior: I'll revert that and just fix it09:58
benhMelkhior: there's also a bad pin number in the differencial connector (jp something... I'll check later, looks like a typo)09:59
benh_florent_: so I added a --board-version parameter but I'll go look at orangecrab later09:59
benhalso it spits out that PLL:10:00
Melkhiorbenh: never used the differential one so never checked it from the original submission10:00
benh        .CLKFBOUT_MULT(6'd36),                                                                                                                 10:00
benh        .CLKIN1_PERIOD(20.0),                                                                                                                  10:00
benh        .CLKOUT0_DIVIDE(4'd9),                                                                                                                 10:00
benh        .CLKOUT0_PHASE(1'd0),                                                                                                                  10:00
benh        .CLKOUT1_DIVIDE(5'd18),                                                                                                                10:00
benh        .CLKOUT1_PHASE(1'd0),                                                                                                                  10:00
benh        .DIVCLK_DIVIDE(1'd1),                                                                                                                  10:00
benh        .REF_JITTER1(0.01),                                                                                                                    10:00
benh        .STARTUP_WAIT("FALSE")                                                                                                                 10:00
benh) PLLE2_ADV (                                                                                                                                  10:00
benh        .CLKFBIN(s7pll_pll_fb),                                                                                                                10:00
Melkhiorbenh: not sure what you mean?10:00
benh        .CLKIN1(s7pll_clkin),                                                                                                                  10:00
benh        .PWRDWN(pll_idelay_power_down),                                                                                                        10:00
benh        .RST(s7pll_reset7),                                                                                                                    10:01
benh        .CLKFBOUT(s7pll_pll_fb),                                                                                                               10:01
benh        .CLKOUT0(s7pll_clkout0),                                                                                                               10:01
benh        .CLKOUT1(s7pll_clkout1),                                                                                                               10:01
benh        .LOCKED(pll_idelay_locked)                                                                                                             10:01
benh);                                                                                                        10:01
benhwhich makes Vivado barf that VCO is out of range10:01
benhYeah i just went through every IO pin :-)10:01
benhMelkhior: can you check if the FPGA is really a -2 speed grade ?10:01
benhmine is a -110:01
benhwell, the PLL generated by LiteX for wukong is what I pasted above, and Vivado errors out at generation because the params cause VCO to be out of range10:01
benhI'll dig deeper later if you don't know off hand10:01
Melkhiorit's a -2 on my board, I think V1 were all -210:02
MelkhiorDidn't notice the new one is -1 :-(10:02
Melkhiorshould be easy to change that into a version-dependent parameter, I suppose10:03
benhsure, just checking :)10:03
MelkhiorV1 is a XC7A100T-2FGG676I10:03
MelkhiorOn the website https://github.com/ChinaQMTECH/XC7A100T-200T_Wukong_Board/tree/main/User_Manual_XC7A100T10:05
Melkhiorthey claim the new one is the same for the A100T10:05
MelkhiorVivado barfs when configuring the FPGA or when generating the bitstream? In the second case i'ts weird as the Litex board file should say speed -2 so should be fine 10:07
Melkhiorenjoy-digital/litex/blob/master/litex/soc/cores/cpu/vexriscv_smp/core.py10:07
Melkhiorhttps://github.com/litex-hub/litex-boards/blob/f18b10d1edb4e162a77972e2e9c5bad54ca00788/litex_boards/platforms/qmtech_wukong.py#L17310:08
Melkhior(wrong copy/paste at first :-) )10:08
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)10:10
*** TMM_ <[email protected]> has joined #litex10:10
MelkhiorAlso the Wukong targets use multiple PLLs to avoids dependency between the system clock, the idelay clock, and the Video clock for the HDMI framebuffer10:13
MelkhiorI have the same PLL definition in my Verilog output, it's fine on my board10:16
Melkhiorvivado 2020.110:16
benhMelkhior: no because I changed it to do speed -1 since that's what I have :-)10:22
benhI managed to live chat with one of the QMtech guys via Aliexpres "contact vendor" interface the other day10:22
benhhe confirmed that they are supposed to be -110:22
benhhe also confirmed that they aren't producing the A200T variant yet because the FPGA is too expensive10:23
benhwhile at it I suggested that they do a V3 with a dual FTDI so the jtag, wire and power can all be on the same cable like Arty :-)10:23
benhVivado 2019.2 here10:24
benhI think it's a -1 vs -2 but I'll play around to check, probably not tonight though10:24
benhit barfs in DRC10:24
benhhttps://pastebin.com/HB2ULdNK10:25
tpbTitle: ERROR: [DRC PDRC-43] PLL_adv_ClkFrequency_div_no_dclk: The computed value 1800.0 - Pastebin.com (at pastebin.com)10:25
benhinteresting... I though 1800.0 was precisely the upper limit, maybe it's 1600..10:25
Melkhior1800 is the limit on -210:26
benhyup, 1600.00 is the limit on -110:27
Melkhioryou can try by replacing the speedgrade on all PLL to -1, it should sort you out10:27
benhyeah I thought I had, must have missed it, anyways, I have to go, thanks for the advice10:28
Melkhiorthey should fix their documentation if they really produce with -1 :-/10:28
benhI'll look again tomorrow and send a PR when v2 works10:28
Melkhiorfeel free to swap J10 and J11 for the V1 in the patch :-)10:28
benhactually I don't even know if mine is really a -1 or -2, it's one of those with a QR code only10:28
benhit doesn't say what the speed is on the package10:28
MelkhiorI was thinking of getting a V2 for the embedded sdcard, but if it's a -1, no point, I'll keep mine and the pmod10:29
benhyeah and I'll fix the differencial connector too, it's clearly a typo since one pin ends up duplicated10:29
MelkhiorVivado HW MGR + JTAG should tell you quickly10:29
benhah how can you tell from JTAG ?10:29
benhyou mean using the vivado GUI ? yeah I would need to use a vivado compatible jtag probe10:29
Melkhiorconnect to it with the vivado hw manager, it should detect the chip and tell you what it is I think10:29
benhI'm currently using an olimex tinyh10:29
benhI have an old xilinx platform cable but with an annoying connector I don't have the right match for, and with the ccurrent covid lockdown, I can't really go shopping :-)10:30
benh     ("jp3", " AF7  AE7  AD8  AC8  AF9  AE9 AD12 AC10",                                                                                         10:31
benh            "AA11 AB11 AF11 AE11 AD14 AC14 AF13 AE13",                                                                                         10:31
benh            "AD12 AC12"),                                                                                                                      10:31
MelkhiorGot myself a "waveshare" compatible box from Amazon, 40€, works fine with both the Qmtech Wukong and the ZTex board (which has an embedded USB programmer anyway)10:31
benhthat's the other bug I think... the AD12 in the first line should be AD1010:31
Melkhioryeah, sounds plausible :-)10:32
benhok. I ordered a xilinx "compatible" one from aliexpress too, it's somewhere between china and here...10:32
Melkhiornever tried that connector...10:32
benhme neither, I jsut scrubbed the pins to find the diff between 1 and 210:32
benhanyways, gotta go, ttyl10:32
Melkhiorbye10:34
Melkhiorbenh: turns out I misremembered, it seems Viv HW doesn't see the speedgrade through JTAG - or at least I can't find it in the interface :-(10:42
*** ilia__s <[email protected]> has joined #litex10:44
*** ilia__s <[email protected]> has quit IRC (Remote host closed the connection)10:46
leonsMelkhior: If the Xilinx forums are to be believed, there is absolutely no way for the FPGA to know it’s own speedgrade. Apparently it’s only determined after manufacturing and not programmed back into the device.10:48
Melkhiorleons: darn, that's not convenient when you have a heatsink on top of it...10:48
Melkhiorthx for the info10:49
benhI'm making the speed grade an argument to the constructor11:21
benhwith a default of -2 for v1 and -1 for v211:21
benhMelkhior: allright ... it builds now ... but nothing on serial if I try to run it :-) debugging will be needed, and that will be for another day11:36
benhhrm... I suppose it would help if I built it for the right board version =P11:37
Melkhiorbenh: hehe yes, in particular if the clock moved you're not going to get much :-)11:38
benhyup :-)11:38
benhok it's up11:41
benhand I seem to be getting packets in the peer which is set to 1000bT11:43
benhthough the "BIOS" says MII on the litex side11:43
benhwhich is .. odd11:43
benhthat's definitely strange but not something for tonight ... whether I set the peer to 100bT or 1000bT, litex bios says MII (I verified when using gmii_mii in Microwatt standalone that the mode does switch properly there)11:47
benhif I look at it with mem_read of the CSR space I see it flipping ... odd11:49
benhthat said, it shows that liteeth works fine with sys_clk at 100Mhz and rgmii_mii at gigabit speeds11:57
benhso the problem with microwatt is ... elsewhere (or timing)11:57
benhso as far as BIOS printing the wrong mode, that's because it doesnt' wait long enough after resetting the PHY12:00
benhif I sprinkle some eth_mode() here or there it eventually "adjusts":12:00
Melkhiorbenh: to improve reception you can set nrxslots to more than the default 2 in the add_ethernet of the targets, it should buy a bit of time for the core(s) to process packets (as far as I understand)12:49
Melkhiorhelp if the traffic is 'bursty'12:49
Melkhiorif it's sustained, you need faster cores :-)12:50
benhMicrowatt isn't too bad for such a big beast :-)13:39
benhalso with pipeline wishbone and my custom L2 cache we get 13:40
benhMemspeed at 0x40000000 (Sequential, 2.0MiB)...13:40
benh  Write speed: 84.7MiB/s13:40
benh   Read speed: 117.0MiB/s13:40
benhon the wukong with standalone microwatt (not using LiteX infra, just the standalone eth/dram core + my stuff)13:40
benhas a comparison, the standard LiteX VexRiscV on the same board (both at 100Mhz) gives13:41
benhMemspeed at 0x40000000 (Sequential, 2.0MiB)...13:41
benh  Write speed: 27.1MiB/s13:41
benh   Read speed: 29.2MiB/s13:41
benhI think I might know what's wrong with GMII mode on my stuff, I think I hadn't ported over the clock & timing constraints for eth13:43
benhsometimes it would be nice to be able to tell Vivado to shut up13:45
benhWARNING: [DRC LUTLP-2] Combinatorial Loop Allowed: 1 LUT cells form a combinatorial loop. This can create a race condition. Timing analysis may not be accurate. The preferred resolution is to modify the design to remove combinatorial logic loops. This loop has been identified in the constraints as being known and understood by use of the ALLOW_COMBINATORIAL_LOOPS property on a net in the loop. The cells in the loop are: soc0/processor/execute1_0/random_0/ro_reg13:45
benh[63]_i_2.13:45
benhwell, yeah, we used ALLOW_COMBINATORIAL_LOOPS on this on purpose13:46
benhyes, it's not deterministic...13:46
benhit's a bloody RNG :-)13:46
benhinteresting... so MII/GMII switching etc.. works fine in LiteX+VexRiscV13:51
benh(using the bios to send/receive packets)13:52
benhwith standalone microwatt however, I now seem to receive packets fine13:52
benhbut I can't send13:52
benhie rather it thinks it's sending but nothing lands on the peer13:52
benhI'll have to scope it I suppose13:52
benhsmells like timing13:54
benhah...14:16
benhbuild/microwatt_0/wukong-v2-a100t-vivado/vivado.log:WARNING: [Vivado 12-507] No nets matched 'eth_rx_clk'. [/home/benh/hackplace/microwatt-fusesoc/build/microwatt_0/src/microwatt_0/fpga/wukong-v2.xdc:472]14:16
benhbuild/microwatt_0/wukong-v2-a100t-vivado/vivado.log:CRITICAL WARNING: [Vivado 12-4739] create_clock:No valid object(s) found for '-objects [get_nets eth_rx_clk]'. [/home/benh/hackplace/microwatt-fusesoc/build/microwatt_0/src/microwatt_0/fpga/wukong-v2.xdc:472]14:16
benhbuild/microwatt_0/wukong-v2-a100t-vivado/vivado.log:WARNING: [Vivado 12-507] No nets matched 'eth_tx_clk'. [/home/benh/hackplace/microwatt-fusesoc/build/microwatt_0/src/microwatt_0/fpga/wukong-v2.xdc:473]14:16
benhbuild/microwatt_0/wukong-v2-a100t-vivado/vivado.log:CRITICAL WARNING: [Vivado 12-4739] create_clock:No valid object(s) found for '-objects [get_nets eth_tx_clk]'. [/home/benh/hackplace/microwatt-fusesoc/build/microwatt_0/src/microwatt_0/fpga/wukong-v2.xdc:473]14:16
benhif the constraints aren't applied that might explain14:16
benhah the don't touch attributes on the eth_rx_clk/eth_tx_clk nets are getting lost in standalone mode14:25
benhhrm.. I wonder where that "keep" comes from14:32
benhsomething's adding a preiod constraint to those clocks, now to find whome...14:32
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Remote host closed the connection)14:54
_florent_benh: The keep attribute is automatically added when adding the period constraint on a signal14:54
_florent_benh: We should probably add keep attributes in the generator to these signals14:55
_florent_benh: Nice otherwise for the mem speed with pipeline wishbone and your L2 cache 14:56
benh_florent_: yeah I'm debugging ... looks like add_ethernet() adds period constraints to the eth clocks but when using gen.py for a standalone core we don't get them15:05
benh_florent_: that's only part of the problem though :-) I need to make my xdc smarter at "finding" the signals... in litex they are all toplevel so the constraints work, with microwatt they are down the hierarchy so I need some smarter constructs15:05
benh_florent_: feel free to review my PR fixing up gen.py for ethernet but if you haven't merged yet I suggest you hold 15:06
benhas I will have more fixes15:06
benhbut feel free to comment :-)15:06
benhoh well, I have the constraints going through now and the problem remains... when used standalone, I get no packets outgoing to the wire at 1000bT15:32
benhworks fine if I switch the peer to 100 and I can switch back/forth, it always work at 100 and never at 100015:32
benhthe mode detection is working fine, I checked looking at the CSR15:32
benhand it seems to work with pure litex + vexriscv15:32
benhrx works but tx doesn't15:33
benhcould be a problem with gtx... not sure15:33
benhgtx is an oddball DDROutput15:34
*** hjimenez93[m] <hjimenez93[m]!~hjimenez9@2001:470:69fc:105::fe30> has quit IRC (Remote host closed the connection)16:02
*** promach[m] <promach[m]!~promach@2001:470:69fc:105::ca1> has quit IRC (Write error: Connection reset by peer)16:02
*** kaji <kaji!~kajiryoji@2001:470:69fc:105::405b> has quit IRC (Read error: Connection reset by peer)16:02
*** vomoniyi[m] <vomoniyi[m]!~vomoniyig@2001:470:69fc:105::3023> has quit IRC (Read error: Connection reset by peer)16:02
*** bluecmd <bluecmd!~bluecmd@2001:470:69fc:105::1d44> has quit IRC (Remote host closed the connection)16:02
*** leons <leons!~leons@2001:470:69fc:105::abc> has quit IRC (Write error: Connection reset by peer)16:02
*** dmiller[m] <dmiller[m]!~dmillergn@2001:470:69fc:105::e9f6> has quit IRC (Write error: Connection reset by peer)16:02
*** Crofton[m] <Crofton[m]!~croftongn@2001:470:69fc:105::9a7> has quit IRC (Remote host closed the connection)16:02
*** OmkarBhilare[m] <OmkarBhilare[m]!~ombhilare@2001:470:69fc:105::4e51> has quit IRC (Remote host closed the connection)16:02
*** dcallagh <dcallagh!~dcallagh@2001:470:69fc:105::9c5> has quit IRC (Write error: Connection reset by peer)16:02
*** Las[m] <Las[m]!~lasmatrix@2001:470:69fc:105::74e> has quit IRC (Write error: Connection reset by peer)16:02
*** CarlosEDP <CarlosEDP!~carlosedp@2001:470:69fc:105::218e> has quit IRC (Write error: Connection reset by peer)16:02
*** willcode4[m] <willcode4[m]!~willcode4@2001:470:69fc:105::e1b3> has quit IRC (Write error: Connection reset by peer)16:02
*** a3f <a3f!~a3f@2001:470:69fc:105::41d> has quit IRC (Remote host closed the connection)16:02
*** david-sawatzke[m <david-sawatzke[m!~david-saw@2001:470:69fc:105::1634> has quit IRC (Remote host closed the connection)16:02
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has quit IRC (Remote host closed the connection)16:02
*** sajattack[m] <sajattack[m]!~sajattack@2001:470:69fc:105::1d9> has quit IRC (Remote host closed the connection)16:02
*** jryans <jryans!~jryans@2001:470:69fc:105::1d> has quit IRC (Write error: Connection reset by peer)16:02
*** shoragan[m] <shoragan[m]!~shoraganm@2001:470:69fc:105::39> has quit IRC (Write error: Connection reset by peer)16:02
*** DerekKozel[m] <DerekKozel[m]!~dkozelgnu@2001:470:69fc:105::2f14> has quit IRC (Remote host closed the connection)16:02
*** jryans <jryans!~jryans@2001:470:69fc:105::1d> has joined #litex16:03
*** shoragan[m] <shoragan[m]!~shoraganm@2001:470:69fc:105::39> has joined #litex16:04
*** dcallagh <dcallagh!~dcallagh@2001:470:69fc:105::9c5> has joined #litex16:04
*** leons <leons!~leons@2001:470:69fc:105::abc> has joined #litex16:04
*** promach[m] <promach[m]!~promach@2001:470:69fc:105::ca1> has joined #litex16:04
*** a3f <a3f!~a3f@2001:470:69fc:105::41d> has joined #litex16:04
*** Las[m] <Las[m]!~lasmatrix@2001:470:69fc:105::74e> has joined #litex16:04
*** CarlosEDP <CarlosEDP!~carlosedp@2001:470:69fc:105::218e> has joined #litex16:04
*** Crofton[m] <Crofton[m]!~croftongn@2001:470:69fc:105::9a7> has joined #litex16:04
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has joined #litex16:04
*** kaji <kaji!~kajiryoji@2001:470:69fc:105::405b> has joined #litex16:04
*** sajattack[m] <sajattack[m]!~sajattack@2001:470:69fc:105::1d9> has joined #litex16:04
*** david-sawatzke[m <david-sawatzke[m!~david-saw@2001:470:69fc:105::1634> has joined #litex16:04
*** dmiller[m] <dmiller[m]!~dmillergn@2001:470:69fc:105::e9f6> has joined #litex16:04
*** DerekKozel[m] <DerekKozel[m]!~dkozelgnu@2001:470:69fc:105::2f14> has joined #litex16:04
*** OmkarBhilare[m] <OmkarBhilare[m]!~ombhilare@2001:470:69fc:105::4e51> has joined #litex16:04
*** hjimenez93[m] <hjimenez93[m]!~hjimenez9@2001:470:69fc:105::fe30> has joined #litex16:04
*** vomoniyi[m] <vomoniyi[m]!~vomoniyig@2001:470:69fc:105::3023> has joined #litex16:04
*** willcode4[m] <willcode4[m]!~willcode4@2001:470:69fc:105::e1b3> has joined #litex16:04
*** bluecmd <bluecmd!~bluecmd@2001:470:69fc:105::1d44> has joined #litex16:04
*** yosys-questions <[email protected]> has joined #litex16:56
*** ilia__s <[email protected]> has joined #litex17:42
*** Martoni42 <Martoni42!~Martoni@2a03:d604:103:600:2ad2:44ff:fe23:2f72> has joined #litex18:25
*** yosys-questions <[email protected]> has quit IRC (Quit: Client closed)18:35
jevinskie[m]Well it’s common to clock a ddr bus with a ddr IO itself instead of a dedicated clock pin to reduce skew19:39
jevinskie[m]You just fix d_hi to 1, d_lo to 0 and clock and your 1x rate to generate a 1x clock19:51
tntAFAIK it's not just common ... it's the recommended way.19:52
tnt"dedicated clock pin" is even often just referring to special input path and means nothing for output.19:52
*** _franck_ <[email protected]> has quit IRC (Excess Flood)20:01
*** _franck_ <[email protected]> has joined #litex20:01
*** Martoni42 <Martoni42!~Martoni@2a03:d604:103:600:2ad2:44ff:fe23:2f72> has quit IRC (Ping timeout: 252 seconds)20:28
jevinskie[m]My whole problem this whole time was I wasn’t taking into account that ALTDDIO has Xilinx’s SAME_EDGE behavior not SAME_EDGE_PIPELINED. Fixed with a delay register and now ARP core is getting the correct packet :) 🙃20:33
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)21:09
*** TMM_ <[email protected]> has joined #litex21:10
*** yosys-questions <[email protected]> has joined #litex21:33
benhjevinskie[m]: right, I got that, it's just the way the DDROutput is wired up is a bit funky :-) but it should work22:05
benhbut for some reason something doesn't and so far I had no luck finding what .... packets are received fine but on tx nothing shows up on the peer22:06
benhand my scope isn't fast enough to probe the GMII :-)22:06
jevinskie[m]Now we’re in the same boat. Not that traces are even exposed. I’m sure it will end up being something simple, like how I haven’t done ddr constraints on tx yet22:20
benhMy xdc constraints were bad (the net names weren't right) but fixing that didn't help22:41
benhI'll try a pure GMII without the GMII_MII mux later22:41
benhgosh, Xilinx are still assholes...22:41
benhso that Artix has the new QR code only marking, no speed grade visible... so I requested access to the QR code reading feature in the app22:42
benhand they rejected22:42
benhsome mumbo jumbo about not being an authorized corporate goon22:42
jevinskie[m]Yep same here. 🙄22:43
benhthere is clearly not enough competition in the FPGA space ... :-)22:45
*** yosys-questions <[email protected]> has quit IRC (Quit: Client closed)23:45
jevinskie[m]tnt: cough erhmm that fixed the last issue with TX for me :D I’d have 2 ns of skew to figure out what to do with otherwise23:51

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!