Clone this wiki locally
tenyr is a 32-bit computer architecture and computing environment that focuses on simplicity of design and implementation. tenyr comprises :
- an instruction set architecture (ISA)
- an implementation in FPGA hardware with device support
- tools for building software
- a standard library of tenyr code
- some example software, including :
Someday it will also include :
- a Forth environment (work in progress)
- a C compiler based on LCC
- a novel cooperative real-time operating system
Explore a simple online demo of the tenyr toolset.
This page serves as a general overview of the design of tenyr. It is not an exhaustive reference.
tenyr has the following properties, among others :
- single-core (no SMP, no NUMA, no threads, no multicore)
- pure 32-bit
- word-addressed (no endianness)
- no concept of a data size larger or smaller than 32 bits (no bytes)
- fixed-width, 32-bit instructions
- no hardware stack support
- the O register is used to maintain a stack, by ABI convention
- no hardware floating-point
- software floating-point support is possible but not planned
- no integer divide (not convenient to synthesis)
- no interrupts, exceptions, or traps
- all devices and I/O are memory-mapped (no special I/O instructions)
The tenyr assembly language is algebraic, rather than mnemonic like
most : it doesn't use keywords like
xor to signal operations
to the assembler.
Examples in the source
tree may clarify. A detailed explanation of the assembly language syntax
is found here.