Skip to content

kiryk/l8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published