Mecrisp Ice Unofficial Documentation!
Mecrisp Ice is a family of 16, 32 and 64 bit soft core forth processors written in Verilog and based on the J1 stack machine. Mecrisp Ice supports the following boards.
blackice2 |
hx8k-32bit |
tinyfpga-bx |
fomu |
icebreaker |
ulx3s |
fomu-ledcomm |
mch2022 |
ulx3s-usb-experimental |
hx1k |
mystorm |
hx8k |
nandland |
This repository includes:
ready-to-fly versions of the J1 for many boards. Search for your board name in the root directory change into that directory, read the local README, and type “./compile”. That will generate the bitstream (also called gateware ) for that board. How to download it to your board will depend on the specific board and operating system.
Verilog definitions for the various processors, as well as additional useful modules in ./common-verilog.
Ready-to-emulate verilator simulators for the different versions in ./verilator*
Cross compilers for the different versions, and the definitions of the various instructions sets are located in ./common-crosscompiler.
An extended version of the Hayes-Forth test suite is located in ./testsuite. The original documentation is in German and computer generated translations are available in English.
Pascal simulators are also in ./common-crosscompiler.
A easy-to-use starting point for defining your own board can be found in ./skeletalstructure and
If you have any questions, please post them on our discussion board
Mecrisp Ice, and its documentation are under active development. The 16 bit dual port version and the 16 port quickstore version are both flying in space. Lots more people are using them here on earth.
Posting issues and pull requests is most welcome. I am currently writing a master’s thesis using Mecrisp Ice. By August the publication embargo should be lifted, and a lot more material will hopefully be added to this site.
Contents
- Word List
- Contact Info
- Cross Compiler
- e4thcom Terminal Emulator
- GLOSSARY
- Terminal-IO
- Stack Jugglers
- Single-Jugglers
- Return Stack Operations
- Double-Jugglers: They perform the same for double numbers.
- Logic
- Arithmetic for single numbers
- Arithmetic involving double numbers
- Comparisons
- Extension for double and s15.16 fixpoint numbers
- Tools for number input and output
- Number base
- Memory access
- IO memory area
- Strings and beautiful output
- String routines
- Pictured numerical output
- Deep insights
- Dictionary expansion
- Dictionary expansion (more internal)
- Flags and inventory
- Compiler essentials
- Control structures
- Indefinite Loops
- Definite Loops
- SPI and low-level flash memory access
- Memory images
- Misc hardware
- Insight tools that are gone after NEW in targets with 8 kb only
- Additional Words
- I/O
- License
- Related Web Sites
- Mecrisp Ice on Psuedo Dual Port RAM
- Test Suite
- Usage