Every part of this project is invented, designed, and coded by myself. I have not copied any line of code from another project.
FPGA Altera Cyclone 4 EP4CE6
- Von Neumann architecture
- 16 bits RISC (no microcode)
- No interrupt management
- ALU : integers 16bits
- Data bus : 16bits
- Address bus : 24 bits
- Cache : 128 x 16bits
- Performances close to 80286
- 2MB SRAM (accessible by 8 or 16bits)
- 2kB boot ROM (inside FPGA)
- PS/2 interface for keyboard
- SPI interface for 16MB Flash SPI (mass storage)
- Serial interface emulated via bit-banging on GPIO
VGA video card (inside FPGA):
- graphic part : 640 x 480 x 8bits.
- Shared RAM with the core
- double buffering (for fluid animations)
- text overlaid: 80 col x 30 lines
What I have done:
- Custom CPU, with it's own instruction set. The CPU is coded in Verilog.
- Some peripheral listed above, all programmed in Verilog.
- Custom assembler, coded in C, with it's own assembly language
- Cross-compiler fully coded by myself, in C. This compiler takes A2Z_Basic language for input, a custom language, which is a mix of C and Basic. The compiler is the most difficult part of this project.
- A simple filesystem, without fragmentation management
- A simple OS : a file explorer capable of managing files and folders
- Some programs : a text editor, an image viewer, a map viewer, and a car game
- An emulator, that runs on PC. With this emulator, you can work on this project without hardware
All details are in the Blog, one entry for each chapter.
Table of Contents:
1) General description
3) Custom software development tools:
4) A2Z software