RoadTest: Summer of FPGAs -- OrangeCrab Dev Bd
Author: skruglewicz
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Lattice MachXO3 FPGA Starter kit , XiLink Ultra96
What were the biggest problems encountered?: One of my biggest problems was to get the Toolchains installed and working. It took me 3 tries to get working toolchains up and running to do a simple Blinky example. This has nothing to do with a well built board, but my reviews of MCUs always contained a "Getting Started" page as a springboard to using the software IDE for the evaluation board. It would be nice if this sort of thing was available for beginners of FPGAs. I know that it is open source and that the designer Greg Davill, is a one man shop. The OrangeCrab is priced right for us Hobbyist Makers. Keep up the good work Greg.:>
Detailed Review:
This review will evaluate the embedded software development capabilities of the Orange Crab, an FPGA based Development Board. I will be focusing on the open hardware toolchains available and will conduct experiments using them. I will be exploring the "Hardware Design Language" (HDL) and attempt to bridge the gap I have between it and High Level languages like C and Python, If that is possible.
I will not be touching on the History of or what a FPGA is. There are plenty of resources here on element14 and on the Web on this topic. I have also included some of my favorite references at the end of this review.
Up until now, I have been experimenting and performing reviews on MCU based Dev Boards, using IDE's and SDK's specific to the kit being used. I will attempt to do the same when reviewing this board. I am interested in the "Parallel" aspects of FPGA's as opposed to "Sequential" properties of MCU based programming I have done Assembler programming, but that was a long..long..long time ago on an 8 bit Z80 Microprocessor. I am a Software engineer by trade and I'm intrigued by the concepts of experimenting with Software on a Chip (SoC) and experimenting with the implantation of proven hardware subsystems that have been etched in silicone. I'm eager to explore the "FP" in the acronym FPGA. The concept, of logic that had been etched permanently in silicone, but now to be able to "Field Program" it over and over again is mind blowing.
In addition to the "Toolchains" available for the OrangeCrab, I will also be checking out how to get started programming the board. I will be evaluating how a novice Hobbyist like myself can experiment with developing solutions without much pain. I will attempt to lay out a "Roadmap for Beginners" of FPGA programming, while I learn it myself.
I will be evaluating the use and helpfulness of customer support on the Lattice ECP5 FPGA chip, Orange Crab board itself and the Software Development Toolchains available. I will also be discovering and evaluating the available User Forums that hopefully will aid me in my experiments.
I tried 3 different Open source Toolchains and finally had success with the third one. Here are my 3 Attempts in getting an Open Source Toolchain working for the OrangeCrab development.
It contains the following tools:
There are 2 blink examples under the /riscv directory
It blinks the LED
The Following text is taken directly from the README.md file.
this is how to run the example.
------------------------------------------------------------
## Building & Loading
1. Generate a riscv binary and create a dfu update image.
```console
$ make all
```
2. Enter the DFU bootloader by holding the button while connecting OrangeCrab to your USB port
3. You can validate that the OrangeCrab is in DFU mode using `dmesg`
```
4. Load the RISCV firmware we've just built using dfu program.
$ make dfu
-------------------------------------------------------------
Reads input from button, toggle through colors on the LED
------------------------------------------------------------------------------
1. $make clean
2. Enter the DFU bootloader by holding the button while connecting OrangeCrab to your USB port
3. $make all
4. $make dfu
-----------------------------------------------------------------------------
There are 4 blink examples under the /verilog directory
$ make dfu
ecppack --compress --freq 38.8 --input blink_out.config --bit blink.bit
Error: unrecognised option '--compress'
Here are some helpful acronyms defined, that I've seen in researching FPGA's
You will need a free license file otherwise you receive this error when trying to run the IDE.
To get a license file follow the install guide for windows by downloading the install guide at Lattice Diamond 3.12 installation guide for Windows .
sudo apt-get install git mercurial build-essential bison clang cmake \
flex gawk graphviz xdot libboost-all-dev \
libeigen3-dev libffi-dev libftdi-dev libgmp3-dev \
libmpfr-dev libncurses5-dev libmpc-dev \
libreadline-dev zlib1g-dev pkg-config python \
python3 python3-dev tcl-dev autoconf gperf \
qtbase5-dev libqt5opengl5-dev
cd summon-fpga-tools
./summon-fpga-tools.sh
At different places Go on the PLAN C and try it on Windows as described in Appendix D
TODO if I ever get it built
export PATH=~/sft/bin:$PATH
On linux based systems you may also need to add a udev rule to enable user access to the usb device, once added you’ll need to un-plug and reconnect the OrangeCrab for it to take effect
$ cat /etc/udev/rules.d/99-orangecrab.rules
ATTRS{idVendor}=="1209", ATTRS{idProduct}=="5af0", MODE="0666", GROUP="plugdev", TAG+="uaccess"
Additionally, the macOS and Windows versions include make.
REFERENCES |
---|
Hackster.io TV Unboxing Video and Helpful Pages on the Orange Crab.I found this information before I received my board from Element14. For me , being a newbie to FPGA, it gave me some insight to the board that I would come to review.
|
The OrangeCrabs's Designers Getting Started Page
Updated08/09/2021 - I tried the link: https://gregdavill.github.io/OrangeCrab/r0.2/docs/getting-started/
|
Training Video's
|
Lattice Website. |
|
Top Comments
Thanks for the review.
I suspect that most of your tools problems were a result of attempting the open source route.
I've used the tools (free and paid for) from Lattice, Altera and Xilinx and found them…
I just wanted to echo Michael's comments. I understand that for some people open source is very important. However, I'd be more inclined to use a manufacturer's supplied and supported toolchain, and would…
Nice honest road test report.
Open source devices sound nice, but they sometimes lack the more detailed support tools needed to fully exploit the hardware.
Reminds me a lot of the early microprocessor chips…