FPGA Resources

The WebFPGA Rapid Development Environment

Picture of WebFPGA board

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

WebFPGA Board Schematic

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.

https://zipcpu.com/tutorial/

A tutorial that uses EDAplayground for examples

https://www.chipverify.com/verilog/verilog-tutorial

As an Amazon Associate I may earn from qualifying purchases on some links.