amb5l / tyto2

The Tyto Project - version 2
GNU Lesser General Public License v3.0
3 stars 2 forks source link

= The Tyto Project (Version 2)

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 https://github.com/amb5l/tyto_project[previous version] is ongoing.

A simpler directory structure is used:

'''

== FPGA Designs

[cols="10,20,70"] |=== |Name|Supported Boards|Description

|<<./doc/designs/ddr3_test/ddr3_test.adoc#,ddr3_test >> |Digilent{nbsp}Nexys{nbsp}Video, QMTech{nbsp}Wukong |A simple DDR3 SDRAM tester based on https://github.com/jorisvr/vhdl_prng[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.

|<<./doc/designs/hdmi_tpg/hdmi_tpg.adoc#,hdmi_tpg>> |Digilent{nbsp}Nexys{nbsp}Video, QMTech{nbsp}Wukong |HDMI test pattern generator. Displays a test pattern on an HDMI monitor at various SD and HD TV resolutions. Includes test audio output.

|<<./doc/designs/mb_cb/mb_cb.adoc#,mb_cb>> |Digilent{nbsp}Nexys{nbsp}Video, QMTech{nbsp}Wukong |A MicroBlaze CPU with a character buffer display, supporting 480i60 and 576i50 resolutions.

|<<./doc/designs/mb_cb_ps2/mb_cb_ps2.adoc#,mb_cb_ps2>> |Digilent{nbsp}Nexys{nbsp}Video |The <<./doc/designs/mb_cb/mb_cb.adoc#,mb_cb>> design with an added PS/2 keyboard interface.

|<<./doc/designs/mb_fb/mb_fb.adoc#,mb_fb>> |Digilent{nbsp}Nexys{nbsp}Video, QMTech{nbsp}Wukong |A MicroBlaze CPU with a 24 bpp high resolution graphics frame buffer held in DDR3 SDRAM, with simple demo application based on link:https://github.com/tuupola/hagl[Mike Tuupola's hagl graphics library].

|<<doc/designs/np6532_poc/np6532_poc.adoc#,np6532_poc>> |Digilent{nbsp}Nexys{nbsp}Video, QMTech{nbsp}Wukong, Altera{nbsp}Cyclone{nbsp}V{nbsp}Dev{nbsp}Kit, Terasic{nbsp}DE10-Nano |A proof-of-concept demonstration of the <<doc/common/retro/np65/np65.adoc#,np65>> 6502 compatible CPU core clocked at 32MHz. Runs https://github.com/Klaus2m5/6502_65C02_functional_tests[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.

== Simulations

[cols="20,80"] |=== |Name|Description

|<<doc/designs/np6532_functest/np6532_functest.adoc#,np6532_functest>> |A <<doc/common/retro/np65/np65.adoc#,np65>> CPU core running https://github.com/Klaus2m5/6502_65C02_functional_tests[Klaus Dormann's 6502 functional test].

|<<doc/designs/tb_saa5050/tb_saa5050.adoc#,tb_saa5050>> |A https://en.wikipedia.org/wiki/Mullard_SAA5050[SAA5050] teletext character generator.

|<<doc/designs/tb_saa5050d/tb_saa5050d.adoc#,tb_saa5050d>> |Progressive scan (scan doubling) equivalent of <<doc/designs/tb_saa5050/tb_saa5050.adoc#,tb_saa5050>>.

|<<doc/designs/tb_ps2_host/tb_ps2_host.adoc#,tb_ps2_host>> |Testbench for PS/2 host IP.

|<<doc/designs/tb_ps2_to_usbhid/tb_ps2_to_usbhid.adoc#,tb_ps2_to_usbhid>> |Testbench for PS/2 host to USB HID IP.

|<<doc/designs/T65_functest/T65_functest.adoc#,T65_functest>> |A https://github.com/mist-devel/T65[T65 6502 compatible core] running https://github.com/Klaus2m5/6502_65C02_functional_tests[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.

== Dependancies

NOTE: ALL designs have submodule dependencies. Please remember to initialise submodules when cloning this repository!

. https://www.gnu.org/software/make/[GNU make], https://www.gnu.org/software/coreutils/[GNU core utilities] and https://git-scm.com/[git] are required. These are normally present on Linux systems. Windows users should use MSYS2 to get these tools running - see <<doc/msys2.adoc#,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:

. The free open source <<doc/nvc.adoc#,NVC>> and <<doc/ghdl.adoc#,GHDL>> simulators are supported by most simulations. Note that you may need to pre-compile vendor libraries.

. Some builds require https://www.python.org/downloads/[Python 3].

. Projects including a 6502 or compatible CPU require the the ca65 assembler and ld65 linker from the https://cc65.github.io/[cc65] toolchain.

. https://code.visualstudio.com/[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 required config.v4p file for the excellent http://www.vide-software.at/[VHDL for Professionals (V4P)] VS Code extension.

. https://vhdl-style-guide.readthedocs.io/en/latest/[VHDL Style Guide] is supported with a custom configuration file. To fix all source files, run make in the src/ directory.

== License

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/.