Getting started


fossil clone https://tumbleweed.nu/r/uhdl uhdl.fossil
fossil clone https://tumbleweed.nu/r/hdlmake.mk hdlmake.mk.fossil

mkdir uhdl
cd uhdl
fossil open ../uhdl.fossil

mkdir hdlmake.mk
cd hdlmake.mk
fossil open --nested ../../hdlmake.mk.fossil

cd ../..

See hdlmake.mk/README for detailed instructions on how to run test benches, create bitstreams and download them to boards. To get an overview of available targets run "make help".

A disk image is also required, for example https://tumbleweed.nu/r/sys78/uv/disk.img.gz . But any disk image created by diskmaker in usim will work.

To generate the bitstream and to program the device:

make syn prog

Supported boards

Currently supported FPGA boards are:

In the works:



At the time of writing (2021-02-28, AMS), uhdl (and hdlmake.mk) for the Pipistrello are being mainly developed on Centos 8. Centos 8 requires minimal amount of work to get Xilinx ISE running properly. Other GNU/Linux systems should work as long as they can run GNU Make and Xilinx ISE.

The keyboard will be on PS/2 port A if using the Papilio Arcade Megawing (BPW5031) board. Mouse is currently non-functional.

The current MMC code is very peculiar about what kind of card it accepts; it works at least with a SDSC card (<2GB). And might not work with SDHC cards or higher speed SD cards.

The disk image should be written directly to the SD card, using dd(1) or similar.

Adding a new board

To add a new board, the following files are at a minimum needed:

Pass the BOARD variable to make to do synthesis or simulation.

Test Protocol

This is a basic test protocol to assure that things work as they should.