Brainfuck microprocessor
VHDL Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scripts
testbenches
.gitignore
LICENSE
Readme
cache.vhd
config.vhd
control.vhd
cpu.vhd
datapath.vhd
decoder.vhd
memory.vhd
reg_file.vhd
stack.vhd
uart.vhd

Readme

Pipelined brainfuck microprocessor

To program:

Use "bftomif.py" python program to turn your brainfuck program to mif memory file,
pad with zeroes if necessary to fill the memory.

Quick overview:

cache.vhd : 2-way associative cache that can be configured with generics. Used for forward jumps.
config.vhd : CPU configuration.
control.vhd : Program flow control, decides the next instruction and skips the next instruction if needed.
cpu.vhd : Top-level file that connects the other blocks.
datapath.vhd : Datapath, registers, adder and multiplexers. Executes the instruction.
decoder.vhd : Instruction decoder. Outputs signals that control the datapath.
memory.vhd : Instruction RAM, synchronous read and write.
reg_file.vhd : Registers, like instruction RAM but with asynchronous read.
stack.vhd : Stack, used to store backwards jump destinations.
uart.vhd : UART for communication with outside world.