FPGA Resources
The WebFPGA Rapid Development Environment
We will be using the WebFPGA: Rapid FPGA Development System to create programmable logic circuits. This board is built around the Lattice UltraPlus ICE40UP5K and operates on USB power or 5V (with a 3.3V output at 100mA for external circuitry). It includes a user pushbutton, a yellow user-controlled LED and a single Neopixel RGB LED as on-board I/O. The board uses a standard micro-USB cable and is supported by a simple to use, no-installation, browser-based development environment. This will allow us to compile and download code to the FPGA from any browser that supports WebUSB.
WebFPGA Documentation (see also “Connecting the WebFPGA Lattice FPGA to External Devices” below)
Link to the WebFPGA Development Environment
Lattice UltraPlus ICEUP5K Datasheet
Connecting the WebFPGA Lattice FPGA to External Devices
Linux Users will need to install a udev rule in order for the user space to have read/write permissions to the board.
Download 60-webfpga.rules
Install then reload the rules with the command:
sudo udevadm control –reload-rules && sudo udevadm trigger
Learning Verilog
This HDLBits site has about 175 Verilog problems in increasing complexity with a verification engine to check you if you got the problem correct or not. It is worth working your way though the problems to learn the language and see the kind of things a HDL is used for. If you create an account and log in, the site will track your progress.
https://hdlbits.01xz.net/wiki/Problem_sets
EDAPlayground has a number of emulators, including several supporting Verilog. It is a great way to check your Verilog code before downloading it to the WebFPGA. It uses EPWave to display a timing diagram of your circuit. Some 123/223 homework problems will require you to use EDAPlayground. I suggest running thought the examples in the tutorial to get a feel for the environment. If you are unsure of which simulator to select, try “Icarus Verilog 0.10.0.”
https://www.edaplayground.com/ Emulator
https://eda-playground.readthedocs.io/en/latest/ Documentation and Tutorials
8bitworkshop has a nice interactive Verilog test environment
http://8bitworkshop.com/v3.3.0/?platform=verilog&file=clock_divider.v
Additional FPGA Resources
This is a beginners introduction to Verilog:
https://www.nandland.com/verilog/tutorials/tutorial-introduction-to-verilog-for-beginners.html
A very complete on-line Verilog tutorial
http://www.asic-world.com/verilog/verilog_one_day.html
This tutorial includes formal verification of HDL designs.
A tutorial that uses EDAplayground for examples