The N1 is a small stack machine, designed to execute Forth code.
Please refer to the N1 manual for further information.
Latest Updates:
13 Apr 2019 - Initial RTL Implementation
The initial implementation of the N1 processer is complete. The RTL is still unverified. Here are the first synthesys results with Yosys using the iCE40 library:
N1 | J1 | ||
---|---|---|---|
in "default" configuration |
in "iCE40UP5K" configuration |
from UPduino-Mecrisp-Ice-15kB project |
|
Number of wires | 3123 | 1900 | 615 |
Number of wire bits | 6131 | 5383 | 3091 |
Number of public wires | 341 | 398 | 47 |
Number of public wire bits | 3265 | 3881 | 2441 |
Number of cells | 3432 | 2132 | 2843 |
SB_CARRY | 79 | 80 | |
SB_DFFE | 1024 | ||
SB_DFFER | 423 | 423 | 16 |
SB_DFFES | 19 | 19 | |
SB_DFFESR | 16 | ||
SB_DFFESS | 16 | ||
SB_DFFR | 1 | 1 | 26 |
SB_LUT4 | 2910 | 1685 | 1664 |
SB_MAC16 | 4 | 1 |
The “default” configuration of the N1 processor maps all logic to regular PLBs (programmable logic blocks), whereas in the “iCE40UP5K” configuration all adders and multipliers are mapped to four “SB_MAC16” DSP cells.
The cell usage of the N1 compares quite well to the J1, but the N1 seems to require a lot more signal routing.
21 Mar 2019 - Initial manual released
The first version of the N1 manual has been released. It contains a user spec and an integration guide. An architectural description will be added as the implementation progresses.
07 Jan 2019 - N1 Project Started
The N1 is a little processor, designed with open source EDA tools only. Besides trying out different design and verification flows, my goal is to put this soft IP onto a Lattice ICE40 FPGSA to power my future handheld devices.