google / CFU-Playground

Want a faster ML processor? Do it yourself! -- A framework for playing with custom opcodes to accelerate TensorFlow Lite for Microcontrollers (TFLM). . . . . . Online tutorial: https://google.github.io/CFU-Playground/ For reference docs, see the link below.

Home Page:http://cfu-playground.rtfd.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to load the RISCV program (Setup Guide) onto the board when using Symbiflow

APIUM opened this issue · comments

commented

Board: ARTY A7
OS: Ubuntu 20.04 VM
TERM: Tested both urxvt and gnome-terminal
Running latest master of CFU-Playground, following Setup Guide


Command make load USE_SYMBIFLOW=1 does not finish, stuck at /home/{user}/projects/CFU-Playground/soc/bin/litex_term --speed 1843200 --kernel /home/{user}/projects/CFU-Playground/proj/proj_template/build/software.bin /dev/ttyUSB1.

Pressing ENTER or typing ENTER as the Setup Guide states does not work, have left it stuck at that line for several hours with no change. The previous step make prog completes successfully with the LED sequence displayed on the ARTY.

Rerunning script/setup has no change, all expected packages are installed.

Works with Vivado with command make load - Golden tests pass successfully. I don't think this is an issue with the USB passthrough as a result, but not sure what else it could be. Has this been observed before?

commented

@APIUM , thank you for the report!

I think this is due to the place and route tools not meeting timing, but not reporting on it. So the generated bitstream just won't work at 100MHz. I'm working to address that (verilog-to-routing/vtr-verilog-to-routing#1928).

In the mean time, we can try reducing the target clock rate for the Symbiflow build. Let me verify that I have the correct incantation to do that, then I'll post the instructions here, then you can check if it works for you.

commented

@APIUM , this worked for me on my Arty board. That's not a 100% guarantee it will work on your board. This drops the system clock frequency to 75MHz:

% make prog USE_SYMBIFLOW=1 EXTRA_LITEX_ARGS="--sys-clk-freq 75000000"
% make load USE_SYMBIFLOW=1 EXTRA_LITEX_ARGS="--sys-clk-freq 75000000"

Note that you can't drop the frequency arbitrarily low; when you get close to 60MHz or lower, the DDR3 memory will not function correctly.

commented

Thanks @tcal-x that worked perfectly for me. I've updated the documentation to suggest that users following the Setup Guide with the recommended hardware try this: #459.

commented

Closing this with the merge of #459, thanks again for the help @tcal-x !