Tuesday, 2021-02-09

*** tpb has joined #tomu00:00
*** NoGodDamnIdea has quit IRC00:49
*** futarisIRCcloud has joined #tomu01:48
*** asante10111_ has quit IRC02:34
*** asante10111_ has joined #tomu02:34
*** LWK has quit IRC03:26
*** tannewt has quit IRC03:26
*** esden has quit IRC03:26
*** daveshah has quit IRC03:27
*** futarisIRCcloud has quit IRC03:27
*** ovf has quit IRC03:27
*** tannewt has joined #tomu03:28
*** elms has quit IRC03:28
*** daveshah has joined #tomu03:29
*** futarisIRCcloud has joined #tomu03:29
*** esden has joined #tomu03:29
*** LWK has joined #tomu03:29
*** elms has joined #tomu03:30
*** ovf has joined #tomu03:34
*** futarisIRCcloud has quit IRC03:57
*** daveshah has quit IRC07:45
*** daveshah has joined #tomu07:45
*** futarisIRCcloud has joined #tomu10:47
*** krogozinski_ has quit IRC11:03
*** carlomaragno has quit IRC11:10
*** carlomaragno has joined #tomu11:10
*** kcnickerson_____ has quit IRC11:11
*** kcnickerson_____ has joined #tomu11:11
*** tannewt has quit IRC11:11
*** tannewt has joined #tomu11:11
*** NoGodDamnIdea has joined #tomu11:14
*** krogozinski has joined #tomu11:16
*** jas4711 has joined #tomu11:57
*** tannewt has quit IRC12:08
*** futarisIRCcloud has quit IRC12:08
*** kcnickerson_____ has quit IRC12:08
*** daveshah has quit IRC12:09
*** carlomaragno has quit IRC12:09
*** tannewt has joined #tomu12:10
*** kcnickerson_____ has joined #tomu12:10
*** futarisIRCcloud has joined #tomu12:10
*** daveshah has joined #tomu12:10
*** carlomaragno has joined #tomu12:10
*** futarisIRCcloud has quit IRC12:56
*** daveshah has quit IRC12:57
*** LWK has quit IRC12:58
*** daveshah has joined #tomu12:59
*** krogozinski has quit IRC13:18
*** krogozinski has joined #tomu13:18
*** tpb has joined #tomu13:42
*** LWK has joined #tomu13:51
*** srk has quit IRC14:10
*** srk has joined #tomu14:11
acathlatcal, 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 to15: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
acathlatcal, so, how do you know it's using the hardware mult of the iCE40?15:32
acathlathank you for the explanations15: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
acathlaInfo:         ICESTORM_DSP:     0/    8     0% I think that line tells us if hardware mult16 are used or not16:15
im-tomu_[tcal-x] Yep16:19
*** AnimaInvicta has joined #tomu16:54
*** st-gourichon-fid has quit IRC17:32
*** st-gourichon-fid has joined #tomu17:34
*** buZz has quit IRC17:40
tntacathla: make sure you have `-dsp` on the `synth_ice40` command of yosys17:57
tntThe Vex doesn't instanciate primitives, it relies on yosys to infer them from a `*` operator in verilog.17:58
*** buZz has joined #tomu18:28
*** buZz has joined #tomu18:28
*** Duponin has quit IRC19:53
*** im-tomu_ has quit IRC20:17
*** im-tomu has joined #tomu20:18
*** AnimaInvicta has left #tomu23:38
*** Rondom has quit IRC23:58

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