Monday, 2021-12-06

*** AAAAA_DRAGON is now known as A_Dragon09:01
* lkcl dealing with the spaghetti of dcache.py and icache.py16:39
lkclwooow16:39
lkcl:)16:39
tplatenhaving a look at icache and mmu.py, l_in.iside needs to be set to update icache18:05
tplatenthat is part of LoadStore1ToMMUType18:06
lkcloctavius, just saw the puzzle about uart.19:25
lkcli have no idea, i'll take a look19:25
octaviussure19:25
lkclsorted19:29
lkcli printed out jtag.boundary_pads.keys()19:29
lkcland saw something named19:29
lkcluart_0__tx19:30
lkcland uart_0__rx19:30
octaviusok19:32
lkclnext is flipping the boundary scan bits19:33
octaviusOk, I'll give that test a look-over again19:34
lkclremember that the JTAG-tester is *de-coupled* - entirely - from the unit being tested19:35
lkclas in: in a "real" system you would LITERALLY have four wires between the JTAG test program and the ASIC being tested19:36
lkcltherefore it is necessary to "reproduce" the information about which pins are which19:36
lkcland to create the "sequence" of IO pads - the order - entirely *from scratch*19:36
lkcli.e. from a "specification"19:36
lkclguess what that specification is?19:36
lkclthe resource!19:37
octaviusThat sounds like hell XD19:37
lkclcreate_resource() creates the list of information sufficient to re-create the entire list of the IO shift register indices19:37
lkclactually i already did it, successfully.19:37
lkclit's just not obvious / documented19:38
lkclbecause i haven't had time19:38
octaviusso how can I run it?19:38
octaviusDo you have a script you ran?19:38
octaviusat least a terminal history?19:38
lkclover a year ago19:39
octaviusSo what should I do then lkcl?19:42
lkcljtag boundary scan. flip the bits that re-route pads/core to the shift register19:43
lkcl    yield srv_dut.ios[0].pad.i.eq(1)19:45
lkclnote: i have changed that to the *NAME* of the io pad.  see jtag.py19:45
lkclJTAG.add_pins19:45
lkcl            self.ios[pin_name] = io19:45
lkclthat used to be a NUMBER19:45
lkclit is now a **NAME**19:45
octaviusSo, still inside testing_stage1.py (just controlling the JTAG chain using Simulation())?19:46
lkclcompletely separate unit test, yes.19:49
octaviusok sure19:49
lkcluse print top.jtag.ios.keys()19:49
octaviusthanks19:49
lkcldon't try a separate process like in test_jtag_tap_srv.py19:50
lkcluse blinker top.jtag19:50
octaviusOh yeah, I'm not even going there XD19:50
lkclbut19:50
octaviusthat's a whole can of worms19:50
lkcldo use the jtag_set_reset() and other functions19:51
lkclbecause you will waste a lof of time recreating those19:51
octaviusBut I still need a clock for the shift register, right?19:51
lkclyes.  just use sync domain19:51
octaviusSo just take the system clock for that?19:51
octaviussure19:51
lkclyes.19:51
lkcljtag_set_reset() etc. automatically flip the jtag.tck line for you19:52
octaviusok19:53
lkclwhich is why i said, don't try to recreate those functions, you will quickly get into hell19:53
octaviusI figured as much :)19:53
octaviusOr perhaps more like :')19:53
*** tplaten <tplaten!~isengaara@55d48f6c.access.ecotel.net> has left #libre-soc20:00
lkclwha-howww, big update to dcache.py to use Memory (SRAMs)23:24

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