-
Notifications
You must be signed in to change notification settings - Fork 0
a lightweight 8-bit MCU
License
kiryk/l8
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Run `make test` to build and run in Verilator. This builds the L8 Assembler (las), a custom FS image maker (mkfs), a demo OS, and two programs for it (try wordle in /tools), then writes them to a disc image and boots it. L8 is a tiny little-endian single-cycle microcontroller (MCU) design with 8-bit data, 16-bit address, and 16-bit instruction buses. It has a single 8-bit accumulator register (A) and an auxiliary 16-bit base register (B) used in addressing. Together with the internal 1-bit carry (C), 8-bit stack pointer (SP), 15-bit program counter (PC), and 16-bit interrupt cause (IC) registers, the whole internal state of the MCU is contained in a total of 64 bits. In the default setting, the 16-bit address space is divided into 4 regions, with the first 256 bytes being used by a tightly coupled memory (TCM) and the next 256 bytes by the stack. The upper 4 KiB of the addres space is reserved for peripherals, and the remaining space in between is reserved for RAM. The instruction set architecture (ISA) of L8 consists of 84 16-bit long instructions, each using one of the two existing formats and five addressing modes.
About
a lightweight 8-bit MCU
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published