QNICE-FPGA is a 16-bit computer system built as a fully-fledged System-on-a-Chip in portable VHDL on an FPGA. Everything - from the hardware design in VHDL to the toolchain (assembler and C) is Open Source, so you can start hacking right away.
Due to the portable nature of the way this project has been developed, QNICE-FPGA is able to run on any sufficiently powerful FPGA platform. Additionally, there is an emulator available for macOS, Linux and WebGL.
Out of the box, the project contains support for the Nexys4 DDR and Nexys A7 development boards as well as for the MEGA65.
Nexys4 DDR and Nexys A7 |
MEGA65 |
---|---|
Before diving into the details, you might want to get an overview of how the system looks and feels by trying our online emulator.
Currently, we are developing QNICE-FPGA using a Nexys 4 DDR FPGA development board. Nexys updated and renamed it to Nexys A7. We recommend using either the old Nexys 4 DDR board or the new Nexys A7 board, too, since this will greatly speed up things for you.
You need a Bash Shell and GCC or CC to work with our toolchain. macOS and Linux work out of the box. On Windows, you might want to install the Ubuntu Bash on Windows 10, or work with MinGW.
If you are using a Nexys 4 DDR, you are ready to go with the pre-synthesized Bitstream that is part of our GitHub repository.
If you do not own a Nexys 4 DDR or A7 board or if you want to synthesize the FPGA configuration bitstream by yourself, then go to the hardware folder in our GitHub respository. It contains the FPGA, board and toolchain (IDE) specific files. QNICE-FPGA has been designed to be portable. Have a look at hw/README.md to learn more.
If you are using a Mac, the optimal setup is running Xilinx ISE or Xilinx Vivado on Linux or on Windows in Parallels and then working with the rest of the toolchain directly in the macOS Terminal. For connecting with the UART of QNICE-FPGA, we are recommending to use Serial.
A step-by-step tutorial of how to get started is available in the README.md of our GitHub Repository, so CLICK HERE TO GET STARTED.
sy2002: Creator and maintainer of QNICE-FPGA: hardware development (VHDL), FAT32 library, additional Monitor libraries and functions, Q-TRIS, additional QNICE specific vbcc toolchain, VGA and WebAssembly versions of the emulator, MEGA65 port.
vaxman: Inventor of the QNICE ISA: system architect, assembler, original POSIX version of the emulator, Monitor and Monitor libraries, tools.
Volker Barthelmann: vbcc compiler system, QNICE specific vbcc backend incl. standard C library.
MJoergen: Performance improvements and bugfixes, CPU functional test suite.
David Brooks, designer of the Simplex-III homebrew computer, has founded the Homebrew CPUs Web Ring. To join, drop David a line,
mentioning your page's URL. He'll then add it to the list.
You will need to copy this code fragment into your page.