Copyright (c) 2019-2021 Antmicro
FX2 SoC simulation using Migen and Litex. The 8051 CPU implementation uses Verilog sources from turbo8051.
The project is still a work in progess. Some part of the implementation is in other repositories. See notes in DEVELOPMENT.md for more information.
To install required dependencies run the script setup.sh
.
It should be run from withing a Python virtual environment (python -m venv
).
All required git repositories are downloaded to INSTALL_DIR
, defaults to ../fx2-sim-env
.
Some dependencies may not be installed automatically, setup.sh
will list those at the end.
First build example binaries by invoking make -C firmware
.
To run the simulation specify binary file to be loaded, e.g.
python -m fx2.sim firmware/8051/clkspd.bin
Results can be viewed using GTKWave gtkwave build/dut.vcd
,
or starting from an already prepared GTKWave save gtkwave gtkwave/sim.gtkw
.
The simulation can be also run using the Dockerfile provided. First build the image, e.g.
docker build -t fx2-sim:v1 .
Then run a container:
docker run -it --rm fx2-sim:v1
# inside container
python3 -m fx2.sim firmware/main.bin
To store results locally:
mkdir -p build-docker
docker run -it --rm -v $(pwd)/build-docker:/fx2-sim/build fx2-sim:v1 python3 -m fx2.sim firmware/main.bin
Note that running docker may require root privilages if user is not in the docker
group.