Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cbiffle/cfm

A 16-bit CPU and self-hosting Forth system for the Lattice ICE40 FPGA, written in Haskell.
https://github.com/cbiffle/cfm

embedded forth fpga hardware haskell

Last synced: about 1 month ago
JSON representation

A 16-bit CPU and self-hosting Forth system for the Lattice ICE40 FPGA, written in Haskell.

Awesome Lists containing this project

README

        

CFM: the Cliffle Forth Machine
==============================

This is a Forth-inspired processor targeting the Lattice ICE40 FPGA series,
primarily targeting the Icoboard.

The CFM core is designed for high performance (40+ MHz) on the ICE40 HX grade
parts. It is written in Haskell and synthesized using [Clash]. Because the
Haskell expression of the circuit is directly executable, we also have a
cycle-accurate emulator "for free."

The distribution includes BsForth, a non-ANS Forth implementation that can
provide a bare-bones interactive development environment with optimizing
compiler in less than 5 kiB. It's interesting in the way that it bootstraps
(using the cycle-accurate emulator) and for its machine instruction fusion
algorithm.

More reading:

- [Docs on the instruction set and programmer's model](doc/core.mkdn)
- [The interrupt model](doc/interrupts.mkdn)
- [The Icoboard demo](doc/icoboard.mkdn)
- [The Icestick demo](doc/icestick.mkdn)
- [Self-hosting](doc/self-hosting.mkdn): how to recompile BsForth from within
BsForth, without using a separate computer.

[Clash]: www.clash-lang.org