Sunday, 2021-02-21

*** tpb has joined #litex00:00
*** lf_ has quit IRC00:14
*** lf has joined #litex00:15
*** mikeK_de1soc has joined #litex00:47
*** cr1901_modern has quit IRC02:00
*** cr1901_modern has joined #litex02:02
*** CarlFK has joined #litex02:55
*** Degi_ has joined #litex03:34
*** Bertl_oO is now known as Bertl_zZ03:36
*** Degi has quit IRC03:37
*** Degi_ is now known as Degi03:37
*** _whitelogger has quit IRC04:09
*** _whitelogger has joined #litex04:11
*** _whitelogger has quit IRC05:39
*** CarlFK has quit IRC05:40
*** _whitelogger has joined #litex05:41
cr1901_modern_florent_: Was this a typo? https://github.com/enjoy-digital/litex/commit/b9e0c95c1836f685386a6f24004882a52c98a120#diff-073894f16fcec5dcb0b5d79a975b59f45ce25b696436bee32a6be0ab8344b960L169 Because it triggers an assertion failure05:44
cr1901_modernhttps://github.com/antonblanchard/microwatt/blob/master/xics.vhdl#L30905:44
cr1901_modernGetting this core running at all has been quite frustrating05:45
cr1901_modernOkay I can't build microwatt w/ the FOSS tools. The autoname pass brings my Linux machine to its knees w/ 7GB of RAM usage (wtaf?!)05:56
*** CarlFK has joined #litex06:09
cr1901_modernhttps://twitter.com/cr1901/status/1363373598354907137 I am stumped by this, tbh. Would appreciate any insight from anyone who has compiled a litex SoC using microwatt w/ the free tools06:23
*** kgugala_ has joined #litex07:06
*** kgugala has quit IRC07:09
*** Emantor has joined #litex07:52
*** scanakci has quit IRC08:18
_florent_cr1901_modern: Hi, IIRC there was an with Microwatt and the FOSS tools (not sure it has been fixed), you had reduce the I/D Cache:09:17
_florent_https://github.com/antonblanchard/microwatt/blob/master/core.vhdl#L22009:17
_florent_https://github.com/antonblanchard/microwatt/blob/master/core.vhdl#L40209:17
_florent_IIRC I was setting it to 209:17
*** mikeK_de1soc has quit IRC09:40
*** Melkhior has joined #litex09:58
*** peepsalot has quit IRC10:33
*** peeps[zen] has joined #litex10:34
*** TMM has quit IRC11:04
*** TMM has joined #litex11:04
cr1901_modern_florent_: I'll take a look. What about this line? https://github.com/antonblanchard/microwatt/blob/master/xics.vhdl#L30911:25
cr1901_modernI had to comment out this assert manually, because litex wants 256 interrupt lines11:26
cr1901_modernDid you have a modified microwatt repo you were testing against?11:26
*** TMM has quit IRC12:10
*** TMM has joined #litex12:10
_florent_cr1901_modern: not sure about xics, I just know we are using a specific commit of pythondata-cpu-microwatt since things were moving fast in the microwatt repo12:18
_florent_https://github.com/enjoy-digital/litex/blob/master/litex_setup.py#L5612:18
cr1901_modernThe commit in question has the same assert: https://github.com/litex-hub/pythondata-cpu-microwatt/blob/f9807b6de50aab8b264f0bc9a945e42f1a636456/pythondata_cpu_microwatt/vhdl/xics.vhdl#L30912:21
cr1901_modernAnyways, would you be willing to run the following command at the root of litex-boards?12:22
cr1901_modernpython3 litex_boards/targets/orangecrab.py --cpu-type=microwatt --cpu-variant=standard+ghdl+irq --integrated-rom-size=40960 --no-compile-gateware --no-compile-software12:22
cr1901_modernAnd tell me if it fails or not?12:23
*** Bertl_zZ is now known as Bertl13:17
*** Finde has quit IRC13:33
*** Finde_ has joined #litex13:33
*** kgugala_ has quit IRC14:21
*** kgugala has joined #litex14:21
*** mikeK_de1soc has joined #litex14:50
*** _whitelogger has quit IRC16:24
*** _whitelogger has joined #litex16:26
_florent_cr1901_modern: I'll be able to run it tomorrow yes17:19
cr1901_modernAlright, tyvm. Taking a break from microwatt for the time being lol17:20
_florent_(don't have access to my dev computer now)17:20
cr1901_modern>(4:17:38 AM) _florent_: IIRC I was setting it to 217:23
cr1901_modern2 lines, or 2 words per line17:23
cr1901_modern(Seems to make more sense to do 2 words per line)17:24
cr1901_modernAnyways, looking at the repo, the autoname issue has come up before, but I still may make an issue17:24
*** Finde_ is now known as Finde17:30
*** mikeK_de1soc has quit IRC18:41
*** kgugala has quit IRC19:02
*** Bertl is now known as Bertl_oO19:07
*** shoragan[m] has joined #litex20:10
*** tannewt has quit IRC20:50
*** y2kbugger has quit IRC20:50
*** y2kbugger has joined #litex20:51
*** tannewt has joined #litex20:51
nickoeWhat editor are you using for litex python scripts?20:52
zyp«you» as in anybody? I use vscode, as for anything else these days21:27
nickoezyp: yes21:35
nickoeanyone.21:35
nickoeOk, I am currently using pycharm, but it is not happy about jumping around the code for things like: dma =  LiteDRAMDMAReader() ...  dma.source it can find, but not dma.source.data as for example used in https://github.com/enjoy-digital/litedram/blob/master/litedram/frontend/bist.py#L50921:37
zypwith a dynamic language like python, there's limits to what you can reasonably expect your editor to know about21:38
nickoeyeah21:39
nickoeI understand that.21:39
nickoeJust a bit annoying when you are learning the codebase.21:39
zypI guess you could run the code in a debugger, set a breakpoint at what you're working, and inspect the actual objects that exist :)21:40
nickoeyeah21:41
nickoethat works at least.21:42
nickoeAnyway, I am trying to dump that memory region from ram to some output pins / registers. So readin the bist.py stuff, https://github.com/enjoy-digital/litedram/blob/master/litedram/frontend/bist.py#L134  there is a mention of awidth and ashift.   For the native interface they are ashift = 4 and awidth 28.21:43
nickoeHow should I understand that? Is that because four bytes are read for each word read?21:44
zypsounds like 16 to me21:45
nickoeI don't understand why the awidth is not just 32.21:46
zyp2**4 is 16, and if you've got a 32-bit address accessing a 16-byte word then the lower four bits in the address will be all zeroes, so you can shift it by 4 and only keep the upper 28 bits of the address21:47
zypI don't know the details of the particular code you're looking at, but I guess something like this is what is going on21:47
zypif you have a 32-bit wide data bus, it's common to leave out the bottom two address bits21:48
zypand in this case it sounds like you've got 128-bit wide data21:48
nickoemm, ok, I guess that makes sense a the RAM is accessed with 128 bit widths for the data?21:48
nickoe= 16 bytes21:49
zypthat's how it sounds to me21:49
zypI think that's a result of the dram being accessed in bursts21:49
nickoe"bursts" is that a general term used for SDRAM?21:50
zypI'm not an expert on SDRAM, but as far as I understand it you can't ask a RAM for only one word, it'll give you a burst of 8 words or something,21:51
nickoeHow many sysclk cycles does it take to read that from the RAM?21:51
nickoezyp: ok, that sounds about right21:52
zypseveral, it's part of the reason SDRAM has higher latency :)21:52
zypI mean, I figure bursts are a throughput optimization21:53
nickoein thi case it is also ddr321:53
zypif there's a several cycle delay for the memory to locate the data you asked for, it makes sense to return more than just a single word at a time21:54
nickoeyes21:54
zypbut as far as I'm concerned, the details are not all that interesting unless you're writing the memory controller, I just want to use the memory controller :)21:55
nickoeyeah, my goal is also just to _use_ it and not write it.21:55
nickoeHow can I buffer my data such that I can push it out at a sysclk rate?21:56
zypthink in terms of streams22:00
nickoeWell, I do want to attempt to stream out data from the ram. I wanted to read it with LiteDRAMDMAReader and then push it in to an AXI Stream Interface.22:02

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