Thursday, 2021-11-18

octaviusNGI meeting started if anyone wants to joi08:03
octaviusjoin08:03
octaviushttps://bbb.tbm.tudelft.nl/b/mar-bzy-ee6-tzf08:04
octaviuslkcl, are you there?08:25
jfinkhaeuserHi! Just discovered this in the NGI next steps session11:21
octaviusWelcome jfinkhaeuser!12:00
lkcloctavius, install pyvcd23:21
octaviusHuh, interesting:23:22
octaviusRequirement already satisfied: pyvcd in /home/rohdo/.local/lib/python3.7/site-packages (0.1.7)23:22
octaviusRequirement already satisfied: six in /usr/lib/python3/dist-packages (from pyvcd) (1.12.0)23:22
octaviusSeems I have two versions23:22
lkcllatest is 0.23.23:24
lkcl0.2.3 sorry23:25
octaviusWait, but what's the 1.12.0 one?23:25
lkclhttps://pyvcd.readthedocs.io/en/latest/_modules/vcd/writer.html23:26
lkclsomething that, clearly, should be removed.  nobody but you knows how it got there23:26
octaviusah ok23:26
lkclhttps://pyvcd.readthedocs.io/en/latest/vcd.writer.html#vcd.writer.VCDWriter.register_alias23:27
lkclbtw copying arbitrary files into another repository as a means and method of avoiding installing a project dependency, generally frowned upon23:29
lkclhowever as it's experimentation, it's kinda ok23:29
lkclbut they'll have to go, later23:29
octaviusYes, I apologise for that, I'll correct it tomorrow23:29
lkclto be sorted out later23:29
lkclwell if you need it to develop the unit tests, then you need it23:29
lkclreally, this needs a bit of thought.  pinmux is clearly becoming a crucial dependency.23:30
lkcltherefore, actually, it should become a proper library (rather than being an arbitrary self-relative suite of random programs)23:31
octaviusThe reason for all those imports was because the unit tests need more of the JTAG stuff, as well as DMI23:31
lkclin which case, actually, the code being depended on should be *removed from soc*, not pinmux23:31
lkclin which case, actually, you're kinda doing the right thing23:32
octaviusBefore I make any significant changes, I really need a better understanding of this demo arch. Like which signals to drive, hopefully the example test cases will help with that23:32
lkclthe jtag tap test srv program is extremely unusual23:33
lkclit is a "yield" version of a client-server socket architecture23:33
lkclas in23:33
lkclnormally, you have a server which BLOCKS - permanently - on a socket23:33
octaviusFrom the test perspective, can we not just drive the JTAG externally?23:33
lkclclearly, doing that would be utterly stupid in an event-driven simulation23:34
octaviusyeah23:34
lkcltherefore i used "select()" to see if there was data available23:34
lkcland if not, allow the event-driven simulation to continue23:34
lkclit's horribly wasteful of CPU cycles but we don't care. It Works (tm)23:34
lkclto "drive the JTAG externally", that is entirely the sole exclusive point of the client-server architecture23:35
lkclthe test_jtag_client program *is* driving JTAG "externally'23:35
lkclvia the means and method of sending data over a TCP socket ("external")23:36
octaviusI mean, drive the TDI, TCK ourselves, no servers/clients, just straight from the testbench23:36
lkclby a nice coincidence (not) that socket happens to be *precisely* compatible with the openocd jtagremote protocol.23:36
lkclyes, sure, but you have to do it via a pair of processes23:36
lkcla pair of simulation processes that is23:37
lkclone to send the JTAG signals23:37
lkclone to receive the JTAG signals23:37
octaviusAh, whereas using sockets you already get separate processes23:37
lkclliterally separate processes, yes23:37
lkcl"simulation processes" != "python processes" btw23:37
lkclthe whole idea of the client-server architecture - and using JTAGREMOTE protocol23:38
lkclis that it is possible *literally* to replace the test_jtag_client.py part with openocd23:38
lkclopenocd -f something.cmd blah blah23:39
octaviusAh, so I haven't copied the client script23:39
lkclwhere something.cfg contains the config line, "jtagremote 4444"23:39
octaviusthat's probably necessary for actually running this example XD23:39
lkclno, the openocd config script is only necessary if you wish to run /usr/bin/openocd23:40
octaviusI meant the test_jtag_client.py script23:40
lkclit's not _necessary_ to do that: just extremely funny23:40
lkclyes, you'll need that23:40
lkclno point having a server if you don't also have the client program that goes with it23:41
octaviusYeah.... I have more dependencies for SRAM and wishbone. Tomorrow morning I'll start testing with the combined soc/pinmux dir, otherwise they'll be too many cloned files23:50
octaviusCan you give me permission for the soc.git?23:51

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