The Tyto Project is a collection of open source FPGA designs and IP for retro computing and embedded systems, with an emphasis on VHDL and support for both AMD/Xilinx and Intel/Altera targets.
This repository is incomplete. Work to port all the designs and IP from the previous version is ongoing.
A simpler directory structure is used:
-
src
contains source code for designs and common IP. -
build
contains makefiles for FPGA builds. -
test
contains makefiles for simulation testbenches. -
doc
contains documentation. -
submodules
contains git submodules.
Name | Supported Boards | Description |
---|---|---|
Digilent Nexys Video, QMTech Wukong |
A simple DDR3 SDRAM tester based on Joris van Rantwijk’s Pseudo Random Number Generator. Hacks the generated HDL to generate the 200MHz IODELAYCTRL reference clock in the DDR3 IP core MMCM. |
|
Digilent Nexys Video, QMTech Wukong |
HDMI test pattern generator. Displays a test pattern on an HDMI monitor at various SD and HD TV resolutions. Includes test audio output. |
|
Digilent Nexys Video, QMTech Wukong |
A MicroBlaze CPU with a character buffer display, supporting 480i60 and 576i50 resolutions. |
|
Digilent Nexys Video |
The mb_cb design with an added PS/2 keyboard interface. |
|
Digilent Nexys Video, QMTech Wukong |
A MicroBlaze CPU with a 24 bpp high resolution graphics frame buffer held in DDR3 SDRAM, with simple demo application based on Mike Tuupola’s hagl graphics library. |
|
Digilent Nexys Video, QMTech Wukong, Altera Cyclone V Dev Kit, Terasic DE10-Nano |
A proof-of-concept demonstration of the np65 6502 compatible CPU core clocked at 32MHz. Runs Klaus Dormann’s 6502 functional test in a loop. |
To build an FPGA design, navigate to the board specific subdirectory under build/
and run the make
command.
Name | Description |
---|---|
A np65 CPU core running Klaus Dormann’s 6502 functional test. |
|
A SAA5050 teletext character generator. |
|
Progressive scan (scan doubling) equivalent of tb_saa5050. |
|
Testbench for PS/2 host IP. |
|
Testbench for PS/2 host to USB HID IP. |
|
A T65 6502 compatible core running Klaus Dormann’s 6502 functional test. |
Simulations will normally run on any supported simulator (GHDL, NVC, ModelSim/Questa, Vivado). To run a simulation, navigate to its subdirectory under build/
and run the make
command.
Note
|
ALL designs have submodule dependencies. Please remember to initialise submodules when cloning this repository! |
-
GNU make, GNU core utilities and git are required. These are normally present on Linux systems. Windows users should use MSYS2 to get these tools running - see these notes for further details.
-
Building an FPGA design requires vendor tools, and produces projects that can be opened and worked on in the vendor’s IDE:
-
For AMD/Xilinx FPGAs, Vivado is required - the free Standard Edition is sufficient. Version since 2020 are supported. Note: designs including a Microblaze soft CPU require Vitis (this includes Vivado). These tools may be obtained from here.
-
For Intel/Altera FPGAs, Quartus Prime is required - the free Lite edition is sufficient. This includes a free edition of the Questa simulator. Versions since 21.1 are supported. Quartus may be obtained from here.
-
-
The free open source NVC and GHDL simulators are supported by most simulations. Note that you may need to pre-compile vendor libraries.
-
Some builds require Python 3.
-
Projects including a 6502 or compatible CPU require the the ca65 assembler and ld65 linker from the cc65 toolchain.
-
Visual Studio Code is now a supported make target. Run
make vscode
to build a directory workspace and open the editor. The build process also generates the requiredconfig.v4p
file for the excellent VHDL for Professionals (V4P) VS Code extension. -
VHDL Style Guide is supported with a custom configuration file. To fix all source files, run
make
in thesrc/
directory.
This file is part of The Tyto Project. The Tyto Project is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The Tyto Project is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with The Tyto Project. If not, see https://www.gnu.org/licenses/.