update programmers manual
This commit is contained in:
parent
a26df53af5
commit
5b390929f5
|
@ -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
|
things will seem confusing and counterintuitive, and will require some time
|
||||||
to properly understand.
|
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
|
# FPGA Concepts
|
||||||
|
|
||||||
Upsilon runs on a Field Programmable Gate Array (FPGA). FPGAs are sets
|
Upsilon runs on a Field Programmable Gate Array (FPGA). FPGAs are sets
|
||||||
|
|
Loading…
Reference in New Issue