*** tpb has joined #tomu | 00:00 | |
*** NoGodDamnIdea has quit IRC | 00:49 | |
*** futarisIRCcloud has joined #tomu | 01:48 | |
*** asante10111_ has quit IRC | 02:34 | |
*** asante10111_ has joined #tomu | 02:34 | |
*** LWK has quit IRC | 03:26 | |
*** tannewt has quit IRC | 03:26 | |
*** esden has quit IRC | 03:26 | |
*** daveshah has quit IRC | 03:27 | |
*** futarisIRCcloud has quit IRC | 03:27 | |
*** ovf has quit IRC | 03:27 | |
*** tannewt has joined #tomu | 03:28 | |
*** elms has quit IRC | 03:28 | |
*** daveshah has joined #tomu | 03:29 | |
*** futarisIRCcloud has joined #tomu | 03:29 | |
*** esden has joined #tomu | 03:29 | |
*** LWK has joined #tomu | 03:29 | |
*** elms has joined #tomu | 03:30 | |
*** ovf has joined #tomu | 03:34 | |
*** futarisIRCcloud has quit IRC | 03:57 | |
*** daveshah has quit IRC | 07:45 | |
*** daveshah has joined #tomu | 07:45 | |
*** futarisIRCcloud has joined #tomu | 10:47 | |
*** krogozinski_ has quit IRC | 11:03 | |
*** carlomaragno has quit IRC | 11:10 | |
*** carlomaragno has joined #tomu | 11:10 | |
*** kcnickerson_____ has quit IRC | 11:11 | |
*** kcnickerson_____ has joined #tomu | 11:11 | |
*** tannewt has quit IRC | 11:11 | |
*** tannewt has joined #tomu | 11:11 | |
*** NoGodDamnIdea has joined #tomu | 11:14 | |
*** krogozinski has joined #tomu | 11:16 | |
*** jas4711 has joined #tomu | 11:57 | |
*** tannewt has quit IRC | 12:08 | |
*** futarisIRCcloud has quit IRC | 12:08 | |
*** kcnickerson_____ has quit IRC | 12:08 | |
*** daveshah has quit IRC | 12:09 | |
*** carlomaragno has quit IRC | 12:09 | |
*** tannewt has joined #tomu | 12:10 | |
*** kcnickerson_____ has joined #tomu | 12:10 | |
*** futarisIRCcloud has joined #tomu | 12:10 | |
*** daveshah has joined #tomu | 12:10 | |
*** carlomaragno has joined #tomu | 12:10 | |
*** futarisIRCcloud has quit IRC | 12:56 | |
*** daveshah has quit IRC | 12:57 | |
*** LWK has quit IRC | 12:58 | |
*** daveshah has joined #tomu | 12:59 | |
*** krogozinski has quit IRC | 13:18 | |
*** krogozinski has joined #tomu | 13:18 | |
*** tpb has joined #tomu | 13:42 | |
*** LWK has joined #tomu | 13:51 | |
*** srk has quit IRC | 14:10 | |
*** srk has joined #tomu | 14:11 | |
acathla | tcal, how did you build the vexrisc + single-cycle mult? Where did you get the source (which branch) ? | 15:14 |
---|---|---|
im-tomu_ | [tcal-x] I started with the Litex submodule with prebuilt versions: https://github.com/litex-hub/pythondata-cpu-vexriscv (default branch), then loaded the submodules (again default branch/commit). Then go to pythondata-cpu-vexriscv/pythondata_cpu_vexriscv/verilog/. Edit the makefile, either altering the target for VexRiscv_Min.v in place, or make a new target like VexRiscv_MinMult.v. Either way there will be more hacking to | 15:21 |
im-tomu_ | [tcal-x] The existing make recipe for "Min" is: | 15:21 |
im-tomu_ | [tcal-x] VexRiscv_Min.v: $(SRC) | 15:21 |
im-tomu_ | sbt compile "runMain vexriscv.GenCoreDefault --iCacheSize 0 --dCacheSize 0 --mulDiv true --singleCycleShift true --singleCycleMulDiv true --bypass false --prediction none --outputFile VexRiscv_Min" | 15:21 |
im-tomu_ | [tcal-x] Ooops, that's AFTER modifying it to get the single-cycle mult. -- both --mulDiv and --singleCycleMulDiv changed to true. | 15:22 |
im-tomu_ | [tcal-x] Assuming you re-use the Min variant, then later you you need to change the -march option that you compile with from rv32i to rv32im in order for the compiler to generate actual mul instructions. | 15:24 |
im-tomu_ | [tcal-x] In my run, with the single cycle mult, I only hit 44MHz, but the tool is conservative; it worked fine on my Fomu. The design used 97% of the logic cells, so it's a pretty tight fit. | 15:25 |
im-tomu_ | [tcal-x] Oh wait, the make recipe I have above ALSO enables single cycle shift. That won't fit unless you do even more hacking. So I suggest you change it to "--singleCycleShift false". | 15:26 |
im-tomu_ | [tcal-x] I forgot to mention, then just type "make VexRiscv_Min.v" --- you might need to remove the file first to force a rebuild since I don't think the Makefile recognizes the dependence on itself. | 15:28 |
im-tomu_ | [tcal-x] (or just run the command in the recipe directly....) | 15:28 |
acathla | tcal, so, how do you know it's using the hardware mult of the iCE40? | 15:32 |
acathla | thank you for the explanations | 15:33 |
im-tomu_ | [tcal-x] There is a resource usage chart that gets printed out from the tools. The mult uses 4 16x16 mults. Let me see if there's something to grep for in the Verilog. | 15:52 |
im-tomu_ | [tcal-x] look for "MUL_HH".... | 15:53 |
im-tomu_ | [tcal-x] (there are MUL_LL, MUL_HL, MUL_LH, and MUL_HH) | 15:54 |
acathla | Info: ICESTORM_DSP: 0/ 8 0% I think that line tells us if hardware mult16 are used or not | 16:15 |
im-tomu_ | [tcal-x] Yep | 16:19 |
*** AnimaInvicta has joined #tomu | 16:54 | |
*** st-gourichon-fid has quit IRC | 17:32 | |
*** st-gourichon-fid has joined #tomu | 17:34 | |
*** buZz has quit IRC | 17:40 | |
tnt | acathla: make sure you have `-dsp` on the `synth_ice40` command of yosys | 17:57 |
tnt | The Vex doesn't instanciate primitives, it relies on yosys to infer them from a `*` operator in verilog. | 17:58 |
*** buZz has joined #tomu | 18:28 | |
*** buZz has joined #tomu | 18:28 | |
*** Duponin has quit IRC | 19:53 | |
*** im-tomu_ has quit IRC | 20:17 | |
*** im-tomu has joined #tomu | 20:18 | |
*** AnimaInvicta has left #tomu | 23:38 | |
*** Rondom has quit IRC | 23:58 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!