Existing Verilog open source projects

A lot of Verilog projects can be accessed and build via FuseSoC which also supports icoBoard
VHF Verilog SDR receiver written for Cyclone III
FM Radiosender in Verilog written for Cyclone III
H.264 Video encoder in VHDL


Radio Signal processing components are on github

Sump2 a FPGA based logic analyzer

icoSoC Risc-V Microcontroller with interfaces running on icoBoard

ridecore out-of-order Risc-V CPU

Zip CPU, a small CPU for FPGAs

manycore SoC components

USB Host 1.1 in Verilog

V-Scale Risc-V CPU implementation

multiplierless multiplication FFT and FIR Verilog Generator

complete 32 bit Risc-V SoC with lot of peripherals

Video pattern generation without Framebuffer (Video)

Ethernet Core, USB Core, PCIe core, SATA core

TCP/IP Stack for 10 GBit Ethernet

Ethernet Engine in Verilog

MMU Controller

a complete CPU with SPI, VGA, Serial

68000 CPU with gameconsole

SATA for Elphel Camera project

Bexkat1 32 bit CPU

DDR3 controller

SDRAM controller

AXI Bus open source implementation (SystemVerilog on Xilinx)

2D Graphics controller for Embedded MCU

Arcade emulator in FPGA and a video about it realised with Spartan3 and embedded ARM

Verilog code for SDR

Verilog Code for SDRAM controller

Verilog Code for another SDRAM controller (VHDL)

Some FPGA Project like PMODs with Verilog sourcecode (seems to be VHDL)

a GPS receiver implemented in Verilog

attaching a digital camera to PMODs
Infrared Receiver

Frequency counter

Digital Servo

6502 CPU Core (Verilog)

M32632 32bit CPU (Verilog)

I2S output (VHDL)

Floating Point Math in FPGA (VHDL generator)

Risc-V CPU (from Vectorblox)


Lots of complete legacy homecomputer systems implemented in Verilog like Acorn Archimedes

Infrared receiver

small gaming console with games on emulated CPU

A open source Verilog GPU implementation (will not fit into icoBoard) and  description

A small CPU with Debugger connection

Missing Verilog-blocks for icoBoard


Image Sensor Interface (DCMI Digital Camera Interface, CSI)



Flash controller

Floating Point Unit

CRC block

math block

data/audio/video stream/image compression/decompression block

Interrupt controller

Kalman filter



PID controller

high resolution rotary position decoder

BLDC controller

Random number generator

LCD Interface (DSI)

resistive touch interface

capacitive touch interface

PS/2 keyboard

PS/2 mouse

SSI/BiSS master interface device

Ethernet 10/100MBit



JESD204B interface

BiSS-C interface

multi device time synchronisation

AD converter (different speed and bitdepth)

DA converter (different speed and bitdepth)




SHA Engine

MD5 Engine

DES Engine

AES Engine

HW supported VPN for MCU



LANc (Sony camera remote control)

one wire Battery management

narrow band digital signal filter

narrow band modulator/demodulator (FSK OOK QAM)


Risc-V is a free instruction set for CPUs. Find more info here.

Clifford Wolf did implement MCU class Risc-V core and integrated it into the SoC icoSoC which does run on the icoBoard. So you can use the icoBoard as Risc-V MCU developer kit.

Currently Contiki OS is available as operating system running on iocSoC on the icoBoard.

Others did port NuttX to the Risc-V, but it was not yet tested on icoBoard.

We hope in the future to have available microPython on the icoSoC.

What They Said


“EDA desperately in need of an Open Source SystemVerilog front-end.”

Open Source KiCad has taken over EDA for me and some of my collaborators. Plaintext save files is the killer feature for me.

Russel from nandland.com:
“First of all, Clifford thanks so much for the great tools. With a brand-new install of Ubuntu, I performed exactly the instructions that you outlined on the Project Icestorm website and I was able to build and program my FPGA dev board (The Nandland Go Board) surprisingly easily! This was easier and less work than the official Lattice programmer for Linux. I got hung up in package dependency hell with the Lattice tools.”

Dirk Hohndel from Intel:

“Linux Kernel development proceeds at an insane and still increasing pace”

Laurent Desseignes, Microcontroller Ecosystem Marketing Manager of STMicroelectronics:

“The Linux community is known to attract creative free-thinkers who are adept at sharing ideas and solving challenges efficiently” Link

Yann LeCun: inventor of convolutional neural networks:

“But perhaps more interesting is the idea that FPGAs are the reconfigurable device that might next on the neural network agenda for processing the larger nets (while GPUs remain the high performance training mechanism). In a very interesting admission, LeCun told The Platform that Google is rumored to be building custom hardware to run its neural networks and that this hardware is said to be based on FPGAs.”  Link

Bastien Nocera

The biggest hurdle was getting the WiFi driver to work. The tablet used a Realtek chip and he was able to get a “code drop” driver from the company. The driver included all sorts of generic USB code that was unneeded. Eventually, I cut out all of the excess code—reducing the size of the driver by a factor of 20.


Chung from Microsoft:

The idea is to use FPGAs, field-programmable gate arrays, chips that can be reconfigured to implement any design and that can be very power-efficient. Microsoft began using FPGAs to power parts of its Bing search engine last year.

Using FPGAs does come with drawbacks, for example the work that has to be done to program them to do the work at hand.  Link



Xilinx and IMO Altera are buggy as hell. In Altera land I have recently been burned by the Qsys to Eclipse monstrosity. I wish these tools targeted a lower level. Qsys and Eclipse are way too automatic and high level for the ridiculous amount of bugs they seem to have. Sure the ref designs work but add something slightly more complex and it creates HW problems in opaque and frustrating ways. Link


Pat says:

“If you look at Xilinx’s tools, for instance, they look nicely integrated, they look like they do a good job synthesizing/implementing things, and modern FPGAs are *so big* that honestly, what the tools do looks like magic.

But then go and open the FPGA editor, and look at the design carefully – and in a *lot* of cases, the tool is just monumentally stupid for what you’re trying to do: because *there’s no way to tell it* what you’re trying to do. There aren’t any attributes, or constraints, or macros available to pass that information along.

You can actually *still fix this* yourself, by implementing the FPGA directly in the editor as a hard macro, and using that hard macro. But Xilinx’s FPGA editor hasn’t been updated in forever – it’s ungodly buggy, and it takes a ton of time to do even simple things. It can’t even handle the fact that the FPGA has symmetry – so you have to build “left-hand side” macros, and “right-hand side” macros, even though you’re trying to say “use the thing closest to this other thing.” Link

Lip-Bu Tan, CEO of Cadence:
“We also need to have more startups because they provide a lot of the breakthroughs and innovation in design. And we need more engineers in this industry. We need new blood, new ideas, and we need to think differently to address new opportunities.” Link

Tim Edwards: What are your LEAST favorite software tools that you use?

“I reserve most of my vitriol for Cadence, though. It started life as a cobbled-together mess of incompatible tools, and it’s still a cobbled-together mess of incompatible tools. Nobody in their right mind should pay so much for a tool with so many bugs that crashes so often, whose visual interface is unappealing if not outright damaging to the eyes, and whose user interface is laughable. Unfortunately, corporate interests do not follow rational rules of mind, so Cadence keeps getting paid and has no incentive to fix all the problems with their software. I don’t mean to pick out Cadence specifically, other than the fact that it makes the tool I’m forced to use at work for MultiGiG, because most of the other big commercial EDA players like Mentor Graphics and Synopsys are just the same.” Link


Why is it so hard to get a good, all-encompassing tool for FPGA development? When I want to develop firmware on MSP430s, I just download Code Composer Studio from TI and I don’t need to do ANYTHING ELSE; just start debugging. This seemingly obfuscated environment surrounding FPGAs is a major reason people only approach the subject and never embrace it.  Link

PMOD modules



Analog Devices




Saanlima PS2 and NES interfaces

Trenz electronic Shop

TE Electronic barometer

TE Electronic magnetic encoder

TE Electronic humidity

numato (Attention, they make mechanically incompatible dual-PMOD boards)!

Radio sender

Radio receiver

Other compatible hardware modules

The following HW modules can be attached by an interface board:

UEXT modules ( use interface PMOD from thoseboards )

Grove modules (use interface PMOD from XESS )