octavius | NGI meeting started if anyone wants to joi | 08:03 |
---|---|---|
octavius | join | 08:03 |
octavius | https://bbb.tbm.tudelft.nl/b/mar-bzy-ee6-tzf | 08:04 |
octavius | lkcl, are you there? | 08:25 |
jfinkhaeuser | Hi! Just discovered this in the NGI next steps session | 11:21 |
octavius | Welcome jfinkhaeuser! | 12:00 |
lkcl | octavius, install pyvcd | 23:21 |
octavius | Huh, interesting: | 23:22 |
octavius | Requirement already satisfied: pyvcd in /home/rohdo/.local/lib/python3.7/site-packages (0.1.7) | 23:22 |
octavius | Requirement already satisfied: six in /usr/lib/python3/dist-packages (from pyvcd) (1.12.0) | 23:22 |
octavius | Seems I have two versions | 23:22 |
lkcl | latest is 0.23. | 23:24 |
lkcl | 0.2.3 sorry | 23:25 |
octavius | Wait, but what's the 1.12.0 one? | 23:25 |
lkcl | https://pyvcd.readthedocs.io/en/latest/_modules/vcd/writer.html | 23:26 |
lkcl | something that, clearly, should be removed. nobody but you knows how it got there | 23:26 |
octavius | ah ok | 23:26 |
lkcl | https://pyvcd.readthedocs.io/en/latest/vcd.writer.html#vcd.writer.VCDWriter.register_alias | 23:27 |
lkcl | btw copying arbitrary files into another repository as a means and method of avoiding installing a project dependency, generally frowned upon | 23:29 |
lkcl | however as it's experimentation, it's kinda ok | 23:29 |
lkcl | but they'll have to go, later | 23:29 |
octavius | Yes, I apologise for that, I'll correct it tomorrow | 23:29 |
lkcl | to be sorted out later | 23:29 |
lkcl | well if you need it to develop the unit tests, then you need it | 23:29 |
lkcl | really, this needs a bit of thought. pinmux is clearly becoming a crucial dependency. | 23:30 |
lkcl | therefore, actually, it should become a proper library (rather than being an arbitrary self-relative suite of random programs) | 23:31 |
octavius | The reason for all those imports was because the unit tests need more of the JTAG stuff, as well as DMI | 23:31 |
lkcl | in which case, actually, the code being depended on should be *removed from soc*, not pinmux | 23:31 |
lkcl | in which case, actually, you're kinda doing the right thing | 23:32 |
octavius | Before 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 that | 23:32 |
lkcl | the jtag tap test srv program is extremely unusual | 23:33 |
lkcl | it is a "yield" version of a client-server socket architecture | 23:33 |
lkcl | as in | 23:33 |
lkcl | normally, you have a server which BLOCKS - permanently - on a socket | 23:33 |
octavius | From the test perspective, can we not just drive the JTAG externally? | 23:33 |
lkcl | clearly, doing that would be utterly stupid in an event-driven simulation | 23:34 |
octavius | yeah | 23:34 |
lkcl | therefore i used "select()" to see if there was data available | 23:34 |
lkcl | and if not, allow the event-driven simulation to continue | 23:34 |
lkcl | it's horribly wasteful of CPU cycles but we don't care. It Works (tm) | 23:34 |
lkcl | to "drive the JTAG externally", that is entirely the sole exclusive point of the client-server architecture | 23:35 |
lkcl | the test_jtag_client program *is* driving JTAG "externally' | 23:35 |
lkcl | via the means and method of sending data over a TCP socket ("external") | 23:36 |
octavius | I mean, drive the TDI, TCK ourselves, no servers/clients, just straight from the testbench | 23:36 |
lkcl | by a nice coincidence (not) that socket happens to be *precisely* compatible with the openocd jtagremote protocol. | 23:36 |
lkcl | yes, sure, but you have to do it via a pair of processes | 23:36 |
lkcl | a pair of simulation processes that is | 23:37 |
lkcl | one to send the JTAG signals | 23:37 |
lkcl | one to receive the JTAG signals | 23:37 |
octavius | Ah, whereas using sockets you already get separate processes | 23:37 |
lkcl | literally separate processes, yes | 23:37 |
lkcl | "simulation processes" != "python processes" btw | 23:37 |
lkcl | the whole idea of the client-server architecture - and using JTAGREMOTE protocol | 23:38 |
lkcl | is that it is possible *literally* to replace the test_jtag_client.py part with openocd | 23:38 |
lkcl | openocd -f something.cmd blah blah | 23:39 |
octavius | Ah, so I haven't copied the client script | 23:39 |
lkcl | where something.cfg contains the config line, "jtagremote 4444" | 23:39 |
octavius | that's probably necessary for actually running this example XD | 23:39 |
lkcl | no, the openocd config script is only necessary if you wish to run /usr/bin/openocd | 23:40 |
octavius | I meant the test_jtag_client.py script | 23:40 |
lkcl | it's not _necessary_ to do that: just extremely funny | 23:40 |
lkcl | yes, you'll need that | 23:40 |
lkcl | no point having a server if you don't also have the client program that goes with it | 23:41 |
octavius | Yeah.... 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 files | 23:50 |
octavius | Can 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/!