Tuesday, 2023-02-07

*** tpb <[email protected]> has joined #litex00:00
*** benh_ <[email protected]> has quit IRC (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)00:14
*** benh <[email protected]> has joined #litex00:14
*** feldim2425 <feldim2425!~feldim242@2001:871:25a:803d:bb6c:281d:d93:7122> has quit IRC (Quit: ZNC 1.8.2+deb2build5 - https://znc.in)00:52
*** feldim2425 <feldim2425!~feldim242@2001:871:25a:803d:d1e5:3602:84f:cbe8> has joined #litex00:53
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has quit IRC (Ping timeout: 246 seconds)01:03
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has joined #litex02:11
*** bl0x <[email protected]> has joined #litex02:38
*** bl0x_ <bl0x_!~bl0x@p200300d7a70e3f0078f361290ff0a84e.dip0.t-ipconnect.de> has quit IRC (Ping timeout: 248 seconds)02:39
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Remote host closed the connection)02:51
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex02:53
*** zjason` is now known as zjason03:10
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)04:46
*** TMM_ <[email protected]> has joined #litex04:47
*** Degi <[email protected]> has quit IRC (Ping timeout: 252 seconds)04:55
*** Degi <[email protected]> has joined #litex04:56
*** FabM <FabM!~FabM@2a03:d604:103:600:2e60:8c7c:e8fb:7990> has joined #litex06:58
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Ping timeout: 246 seconds)15:43
*** FabM <FabM!~FabM@2a03:d604:103:600:2e60:8c7c:e8fb:7990> has joined #litex15:55
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Remote host closed the connection)18:25
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex18:25
gurkii am a bit confused how i would add a custom blackbox instruction plugin to vexriscv20:03
gurkihttps://github.com/SpinalHDL/VexRiscv#add-a-custom-instruction-to-the-cpu-via-the-plugin-system is quite informative regarding "how do i add a custom instruction at all", https://spinalhdl.github.io/SpinalDoc-RTD/dev/SpinalHDL/Structuring/blackbox.html tells me that spinalhdl (which - if i read correctly vexriscv uses) should be capable of this20:04
tpbTitle: Instantiate VHDL and Verilog IP — SpinalHDL documentation (at spinalhdl.github.io)20:04
gurkibut how would i actually do this?20:04
gurkibonus points if i can simulate the entire core in such a way that i can feed c code implementing this boxes behaviour to the simulator20:04
gurkithis is a quite ... complex ... mixed signal core so i cannot provide an actual implementation for spinalhdl to convert to hdl20:06
gurkiim not set on vexriscv per se, but i liked the plugin system20:07
gurki(i hope this is topical, i wasnt quite sure)20:08
gurkii do have a possible workaround for the simulation part using spike, but having everything nicely integrated is obv nicer20:09
tpw_rulesdo you want to do all this through litex?20:09
tpw_rulesa bit confused about the part you are stuck at. doing it through litex? or hooking up a custom instruction that is not primarily based on spinalhdl?20:09
gurkimy main focus is "how do i properly integrate a mixed signal core into vexriscv", i assumed that the reasonable way to do so is by using a custom instruction which i hand over as a blackbox20:11
gurkilitex might be part of the solution20:11
tpw_ruleswhy would it be an instruction and not an mmio peripheral?20:11
gurkiis that wise? what this core does is (example, not what its actually doing) perform aes on a large chunk of data (ideally handed over via a memory adress) and return some result; but it would be nice to be able to just do "aes()" using an asm intrinsic from plain c20:14
tpw_rulesand that can't be a store instruction into a peripheral?20:14
gurkii am looking for good ideas, thats why i asked. maybe your approach -is- better20:15
tpw_rulesit seems a bit silly to just stall the core for a bunch of cycles to crunch on some data. i would heavily encourage an mmio approach i think20:15
tpw_rulesthat's not very RISC :P20:15
tpw_rulesa mungeBlock you call in a loop maybe20:16
tpw_rulesor swapStatus. i don't know much at all about the vexriscv plugin system though. just the litex guts20:17
tpw_rulesthey do have an iterative multiplication example which would be interesting to look at20:18
gurkii was just about to ask for an example to look at :320:18
tpw_rules(for a plugin)20:19
tpw_rulesi don't think vexriscv conceptualizes mmio much. that is where you would step out to an SoC builder like litex20:19
gurkihow much additional pain do i need to expect for setting up a simulation and getting synthesizable hdl?20:19
gurki(obv "not much" for sb who is already familiar ...)20:19
tpw_rulesi don't know. that stuff using vexriscv through litex is very easy even for a noob. but it's pretty abstracte20:20
tpw_rulesd20:20
gurkido i - at some point - get an interface to shove random c to the/a simulator?20:21
gurkiit is probably using verilator, so i could do crappy function pointer yada, but id rather not20:21
tpw_rulesit does use verilator somehow. i don't know the details about that. i'm not a heavy litex user20:22
tpw_rulesbut litex's wrapper around vexriscv is pretty simple. it just dumps specific verilog to disk at compile time of the vexriscv litex plugin and then reads those later20:23
tpw_rulesso if you are more comfortable in verilog and want to put the things together yourself you can just use vexriscv's scala generators yourself20:23
tpw_rulessomeone else might be able to weigh in better on actually interfacing with simulation20:25
gurkiwell i will have to touch the verilog for the synthesis part, so its handy that i can do whatever to it and still verify the results20:25
gurkiim still not sure whether i will ever have a verilog simulation model for that core since its. uh. "complicated" to do20:26
gurkicharacterizing larger mixed signal cores isnt exactly fun20:26
tpw_ruleshow do you plan to synthesize it20:26
gurkihence the need for "can i just plug in the c simulation model"20:26
gurkidc_shell to asic20:26
gurkiit will happily take blackboxes20:27
gurkii will need to provide _some_ timing information, but that is yet another beast to deal with20:27
tpw_rulesah so you are not targeting an FPGA. that's what you mean by mixed signal, real analog. i sort of thought you meant like DSP20:27
gurkiah. sorry for being vague20:27
gurkiyes, i have pure analog parts in there20:27
tpw_rulesthen yeah it sounds like you are stepping well outside of both my and litex's comfort zone. i think dumping a verilog core from vexriscv and using a flow you are familiar with might be best. that is sort of orthogonal to the question of whether to use the plugin system but unless it's one of those funky new analog neural matrix multipliers it really doesn't make sense as an instruction imo20:29
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Ping timeout: 248 seconds)20:50
*** Advant <Advant!Advant@user/advant> has joined #litex21:13
AdvantI'm trying to setup f4pga on macOS x64, and it's wanting certain pre-reqs that aren't available on https://conda.anaconda.org/litex-hub/osx-64, like prjxray.. is there a work around for setting this up?21:15
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has joined #litex21:23
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has quit IRC (Ping timeout: 265 seconds)21:25
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)22:56
*** TMM_ <[email protected]> has joined #litex22:57
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has quit IRC (Read error: Connection reset by peer)23:16
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has joined #litex23:17
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:a0c8:5916:7ad4:d1b5> has quit IRC (Read error: Connection reset by peer)23:20
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:a569:7cde:b17d:b0f8> has joined #litex23:21

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