A2Z computer is a computer imagined by me, designed by me, and made by me. It is made from scratch, from A to Z.
It is a didactic project. A "learning by doing" project. The goal is to learn and understand in details all the aspects of a simple computer, including hardware (CPU and peripherals), soft dev toolchain, and software itself. This computer is very simple, not efficient (16bits CPU, 2MB of RAM), but it works!
Every part of this project is invented, designed by myself. I have not copied any line of code from another project. I have coded in 3 languages : Verilog for the hardware, C for the software development tools, and A2Z_Basic (my own basic language) for the applications.
I have not ported any open source code.
The only thing that I have copied from existing source is the text font, because it would have been tedious to do it by myself pixel per pixel.
The goal is really to do everything from zero.
The project is also not intended to imitate an old CPU architecture. This is not a vintage computer.
It is not aimed to be an usable, every-day computer, or to run Linux or so (take a look at the Kestrel project for that).
I have used “modern tools”. Therefore, the project is not an attempt to imitate the work of the microcomputer pioneers (Steve Wozniac or so). I have used the following modern tools:
- A PC as main development tool
- One FPGA (Altera Cyclone 4) and its development software Quartus II
- A logic analyser
- The A2Z tool chain works on a PC (Windows), and is coded in C, with Visual Studio Express
This is an amateur project. I am autodidact. Lots of things inside this project are not optimal, not academic. Every part is quite simple and with very little optimisation. The result is quite good for me, but I have made quite lots of errors, design errors, and simplifications. Remember : I am autodidact, and I am not a computer scientist at all.
This is also my very first FPGA project, my first Verilog project. I have learned the Verilog language by myself especially for this project.
Therefore, if you copy-paste this project for your university project, you can get low grade.
This website describes all the work that I have done, and it is also a user guide if you want to play with it.
I have tried to give all useful information. But if you think that something is missing, do not hesitate to ask it to me.