Thursday, 2021-09-30

lkclAnton: here's the Phase 2 part, in the SoC HDL (the Chips4Makers JTAG TAP)07:31
lkclhttps://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/debug/jtag.py;h=4b4f17a97d672c3f22b668008a1c058ac2500da6;hb=81194128bb204d8c4c415572533ffc89a3f54648#l7507:31
lkclthat's it. that's all there is.07:31
lkclthe pinset was read from a JSON file, it's enumerated, it creates the boundary scan JTAG register.07:31
lkcldone.07:31
openpowerbot[slack] <Michael Neuling> @Matt Johnston FWIW I got your tree up and running on my orange crab. getting memory errors also but microwatt/helloworld lives09:17
openpowerbot[slack] <Michael Neuling> some of the organge crab v0.2 makefile stuff could go upstream. some useful stuff in there with the -85k --speed 8 etc09:18
openpowerbot[slack] <Matt Johnston> ah cool. yeah I've been meaning to tidy some of it up to send09:18
openpowerbot[slack] <Matt Johnston> it's very much a WIP branch trying things for myself at the moment09:19
openpowerbot[slack] <Michael Neuling> this helps a bunch on load time and boot time09:25
openpowerbot[slack] <Michael Neuling> ``` microwatt.bit: microwatt_out.config09:25
openpowerbot[slack] <Michael Neuling> -       $(ECPPACK) --svf microwatt.svf $< $@09:25
openpowerbot[slack] <Michael Neuling> +       $(ECPPACK) --freq 38.8  --compress --svf microwatt.svf $< $@09:25
openpowerbot[slack] <Michael Neuling>  ```09:25
openpowerbot[slack] <Matt Johnston> aah, nice09:26
openpowerbot[slack] <Michael Neuling> do we think ignoring timing violations is cauing issues?09:26
openpowerbot[slack] <Michael Neuling> We hve the PLL in there, so we could try going a lot slower09:26
openpowerbot[slack] <Matt Johnston> the memtest fails similarly even if it makes 48mhz timing09:27
openpowerbot[slack] <Michael Neuling> ok09:27
openpowerbot[slack] <Matt Johnston> I did some tests at different speeds with the orangecrab test harness, iirc memtest succeeded at 41mhz upwards, failed at 40mhz09:27
openpowerbot[slack] <Matt Johnston> that is using a litedram+lite*  from January though. I tried a bit more recent (march?) and it still succeeded, but when I tried latest litex I had yosys chewing 16GB ram and it OOMed. so maybe an inconclusive test trying to narrow down the differences of microwatt vs that09:29
openpowerbot[slack] <Michael Neuling> ha doh09:29
openpowerbot[slack] <Matt Johnston> I did some tests at different speeds with the orangecrab test harness, memtest succeeded at 41mhz upwards, failed at 40mhz09:31
openpowerbot[slack] <Jeremy Kerr> @Michael Neuling who else has an OC there?09:34
openpowerbot[slack] <Michael Neuling> @Jeremy Kerr @Paul Mackerras does10:07
openpowerbot[slack] <Michael Neuling> anton has one but it's v110:08
openpowerbot[slack] <Jeremy Kerr> Anton Blanchard's versions automatically increment10:08
lkclMatt, Michael: you can't go below about 48 mhz with DDR3 DRAM ICs14:00
lkclthe manufacturing tolerance is around 48 to 55 mhz.14:00
lkclthe DDR3 RAM ICs being used actually have a reported minimum clock rate by the manufacturer of i think 200 mhz.14:01
lkclMatt: if you have managed to get working at 41 mhz you are extremely lucky.14:01
lkclcherish that OC for the unique manufacturing tolerances of its DDR3 DRAM IC :)14:02
openpowerbot[slack] <Matt Johnston> yeah. I think I tried microwatt in low 50s too, still no luck. guess could try figure how to get it higher and see how that goes14:02
openpowerbot[slack] <Matt Johnston> the error rate didn't seem to vary much going up or down in the 40s for microwatt, which seems a bit surprising14:02
lkclyou need to get to 55 mhz or above in order to get it to "work for everyone"14:03
lkclor...14:03
openpowerbot[slack] <Matt Johnston> really need to look at the signals more14:03
lkcl.... just buy a hell of a lot of OCs and test them all individually.14:03
lkclnextpnr-ecp5's output shows you its timing and the critical paths14:04
openpowerbot[slack] <Matt Johnston> mm. resell them as `--speed 11`14:04
openpowerbot[slack] <Matt Johnston> yep14:04
lkcllol yeah14:04
lkclof course, if GHDL obliterates signal names, the output from nextpnr-ecp5 (towards the end of the output) is worse than useless14:04
lkclbecause you can't relate the obliterated-signal-names-with-record-information removed14:05
lkclback to the original VHDL14:05
lkclsigh14:05
openpowerbot[slack] <Matt Johnston> it's not too bad14:05
lkclthank goodness for that14:05
lkclohhh hang on14:05
lkclyeahhh14:05
lkclthe DRAM is handled by litex14:06
lkcllitex is in verilog14:06
lkclverilog has its signals preserved (ish) by nextpnr-ecp514:06
lkclthe other thing to watch out for, as the resources of the ECP5 are pushed to the limit, the routing obviously changes14:07
lkcl(to sub-optimal connectivity)14:07
openpowerbot[slack] <Matt Johnston> the vhdl is OK, I think the yosys autoname step might help something? `Info:  0.2 12.5  Source soc0.processor.mmu_0.d_in.err_TRELLIS_FF_Q_LSR_LUT4_Z_D_TRELLIS_FF_DI_Q_LUT4_B_C_LUT4_D_Z_LUT4_Z_D_LUT4_Z_B_LUT4_Z_1_C_LUT4_D_SLICE.F1`14:08
lkcleurrrrr yukk :)14:08
lkclwell at least you got _some_ useful hierarchy :)14:09
lkclthe rest of that (LUT4_this, MUX_that) will be the FPGA Cell Library replacement step of yosys14:10
lkclcan't do much about that14:10

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