-
Notifications
You must be signed in to change notification settings - Fork 82
HowToCompileTheCore
Up to now the cores have only be compiled under Linux. This page thus only describes the necessary Linux setup. The same instructions probably also work under Windows since the same tools being used are available for Windows as well.
The cores are written in a combination of Verilog and VHDL. A synthesis tool is required to compile this into a binary FPGA configuration (/sof/rbf). Since the FPGA on the MiST is a member of the Altera Cyclone III family, the Altera Quartus II suite is required. The free Web Edition is sufficient. See e.g.
- http://dl.altera.com/13.1/?edition=web
- https://www.intel.com/content/www/us/en/software-kit/666220/intel-quartus-ii-web-edition-design-software-version-13-1-for-linux.html
(the latest version supporting Cyclone III is 13.1).
There's also a Dockerized Quartus 13.1 for new distros where this old Quartus version doesn't run flawlessly.
The core source code is available from the MiST source repository.
To load the project simple open the project file (.qpf
, e.g. core/mist/mist.qpf
) in Quartus. On the left side under "Flow" select "Compilation". and double click "Compile Design". Depending in the speed of your computer this may take from some minutes up to an hour.**
Two files are generated in the out directory during compilation:
-
mist.sof
is a "SRAM Object File". This can be uploaded to the FPGA using a Byte Blaster JTAG cable or similar -
mist.rbf
is a raw binary file. This can be uploaded to the FPGA from SD card using the MISTs on-board IO controller
To allow for auto configuration the raw binary file of the default core needs to be renamed to core.rbf
and placed in the root directory of the SD card. The IO controller will find it at system initialization and upload it to the FPGA. This works exactly as if a normal user would run cores.
The usage of a USB byte blaster cable is explained on a separate page.
MiST FPGA - One Chip to Rule Them All
- What is it?
- FAQ
- Board overview
- Installing firmware
- Joystick mapping
- Peripherals
- Projects it is based on
- Rom Management
- Setting up a mist.ini file
- Using a custom font
- Tested Displays/Upscalers
- Troubleshooting
- Videos
- User Videos
- Getting Started
- Current core status
- Joy/Keyboard/On-board Shortcuts
- MIDI support
- SD card setup
- Startup menu
- Atari ST
- Atari ST/STe (mistery)
- Amiga
- Amstrad
- Amstrad - alternative
- Apogee/Radio86RK
- Apple I
- Apple II+
- Apple //e
- Apple Macintosh
- Acorn Archimedes
- Atari 800
- BBC Micro
- BK0011M
- Commodore PET
- Commodore VIC-20
- Commodore 64
- Commodore 16/Plus4
- Enterprise
- HT1080Z (TRS80 I clone)
- LM80C
- Luxor ABC 80
- Mattel Aquarius
- Miles Gordon SAM Coupe
- MSX
- Ondra SPO 186
- Oric
- PC (Next186)
- PC (XT)
- Primo
- Sinclair ZX80/ZX81
- Sinclair ZX Spectrum
- Sinclair ZX Spectrum - alternative
- Sinclair ZX Spectrum Next
- Sinclair QL
- Texas Instruments TI-99/4A
- TSConf
- Vector-06C
- Videoton TVC
- Vtech Video Technology Laser 350/500/700
- Atari 2600
- Atari 5200
- Atari 7800
- Bally Astrocade
- Coleco ColecoVision
- GCE Vectrex
- Intellivision
- Nec PC Engine/TurboGrafx-16
- Nintendo Gameboy
- Nintendo NES
- Nintendo SNES
- Philips Videopac/Odyssey²
- Philips Videopac/Odyssey² - alternative
- Sega Genesis/Megadrive
- Sega Master System
- SNK Neo Geo MVS/AES