update programmers manual

This commit is contained in:
Peter McGoron 2023-04-03 03:14:05 +00:00
parent a26df53af5
commit 5b390929f5
1 changed files with 26 additions and 0 deletions

View File

@ -11,6 +11,32 @@ You do not need to read and digest the entire manual in sequence. Many
things will seem confusing and counterintuitive, and will require some time
to properly understand.
# Required Knowledge
Verilog is critical for writing hardware. You should hopefully not have
to write much of it.
The kernel is written in C. This C is different than C you have written
before because it is running "freestanding."
The kernel uses Zephyr as the real-time operating system running the
code. Zephyr has very good documentation and a very readable code base,
go read it.
Tests are written in C++ and verilog. You will not have to write C++
unless you modify the Verilog files.
The macro processing language GNU m4 is used occasionally. You will
need to know how to use m4 if you modify the main `base.v.m4` file
(e.g. adding more software-accessable ports).
Python is used for the bytecode assembler, the bytecode itself, and
the SoC generator. The SoC generator uses a library called LiteX,
which in turn uses migen.
You do not need to know a lot about migen, but LiteX's documentation
is poor so you will need to know some migen in order to read the
code and understand how some modules work.
# FPGA Concepts
Upsilon runs on a Field Programmable Gate Array (FPGA). FPGAs are sets