Tobias Platen 72ae258962 inital support for orangecrab0.2 | 2 tahun lalu | |
---|---|---|
.github | 3 tahun lalu | |
constraints | 2 tahun lalu | |
fpga | 2 tahun lalu | |
hello_world | 3 tahun lalu | |
include | 2 tahun lalu | |
lib | 3 tahun lalu | |
litedram | 2 tahun lalu | |
liteeth | 3 tahun lalu | |
media | 4 tahun lalu | |
micropython | 3 tahun lalu | |
openocd | 2 tahun lalu | |
rust_lib_demo | 3 tahun lalu | |
scripts | 3 tahun lalu | |
sim-unisim | 4 tahun lalu | |
tests | 2 tahun lalu | |
uart16550 | 3 tahun lalu | |
verilator | 2 tahun lalu | |
.gitignore | 3 tahun lalu | |
LICENSE | 4 tahun lalu | |
Makefile | 2 tahun lalu | |
README.md | 4 tahun lalu | |
cache_ram.vhdl | 4 tahun lalu | |
common.vhdl | 3 tahun lalu | |
control.vhdl | 3 tahun lalu | |
core.vhdl | 2 tahun lalu | |
core_debug.vhdl | 3 tahun lalu | |
core_dram_tb.vhdl | 3 tahun lalu | |
core_dummy.vhdl | 2 tahun lalu | |
core_flash_tb.vhdl | 4 tahun lalu | |
core_tb.vhdl | 4 tahun lalu | |
countzero.vhdl | 3 tahun lalu | |
countzero_tb.vhdl | 4 tahun lalu | |
cr_file.vhdl | 3 tahun lalu | |
crhelpers.vhdl | 4 tahun lalu | |
dcache.vhdl | 3 tahun lalu | |
dcache_tb.vhdl | 4 tahun lalu | |
decode1.vhdl | 3 tahun lalu | |
decode2.vhdl | 3 tahun lalu | |
decode_types.vhdl | 3 tahun lalu | |
divider.vhdl | 4 tahun lalu | |
divider_tb.vhdl | 4 tahun lalu | |
dmi_dtm_dummy.vhdl | 4 tahun lalu | |
dmi_dtm_ecp5.vhdl | 2 tahun lalu | |
dmi_dtm_tb.vhdl | 4 tahun lalu | |
dmi_dtm_xilinx.vhdl | 3 tahun lalu | |
dram_tb.vhdl | 3 tahun lalu | |
execute1.vhdl | 3 tahun lalu | |
fetch1.vhdl | 3 tahun lalu | |
fpu.vhdl | 3 tahun lalu | |
glibc_random.vhdl | 4 tahun lalu | |
glibc_random_helpers.vhdl | 4 tahun lalu | |
helpers.vhdl | 3 tahun lalu | |
icache.vhdl | 3 tahun lalu | |
icache_tb.vhdl | 4 tahun lalu | |
icache_test.bin | 4 tahun lalu | |
insn_helpers.vhdl | 3 tahun lalu | |
loadstore1.vhdl | 3 tahun lalu | |
logical.vhdl | 3 tahun lalu | |
microwatt.core | 3 tahun lalu | |
mmu.vhdl | 3 tahun lalu | |
multiply.vhdl | 3 tahun lalu | |
multiply_tb.vhdl | 3 tahun lalu | |
nonrandom.vhdl | 3 tahun lalu | |
plru.vhdl | 4 tahun lalu | |
plru_tb.vhdl | 4 tahun lalu | |
ppc_fx_insns.vhdl | 3 tahun lalu | |
random.vhdl | 3 tahun lalu | |
register_file.vhdl | 3 tahun lalu | |
rotator.vhdl | 4 tahun lalu | |
rotator_tb.vhdl | 4 tahun lalu | |
sim_16550_uart.vhdl | 3 tahun lalu | |
sim_bram.vhdl | 4 tahun lalu | |
sim_bram_helpers.vhdl | 4 tahun lalu | |
sim_bram_helpers_c.c | 4 tahun lalu | |
sim_console.vhdl | 4 tahun lalu | |
sim_console_c.c | 3 tahun lalu | |
sim_jtag.vhdl | 4 tahun lalu | |
sim_jtag_socket.vhdl | 4 tahun lalu | |
sim_jtag_socket_c.c | 4 tahun lalu | |
sim_no_flash.vhdl | 4 tahun lalu | |
sim_pp_uart.vhdl | 3 tahun lalu | |
sim_vhpi_c.c | 4 tahun lalu | |
sim_vhpi_c.h | 4 tahun lalu | |
soc.vhdl | 2 tahun lalu | |
spi_flash_ctrl.vhdl | 3 tahun lalu | |
spi_rxtx.vhdl | 3 tahun lalu | |
sync_fifo.vhdl | 4 tahun lalu | |
syscon.vhdl | 2 tahun lalu | |
utils.vhdl | 4 tahun lalu | |
wishbone_arbiter.vhdl | 4 tahun lalu | |
wishbone_bram_tb.bin | 4 tahun lalu | |
wishbone_bram_tb.vhdl | 4 tahun lalu | |
wishbone_bram_wrapper.vhdl | 2 tahun lalu | |
wishbone_debug_master.vhdl | 4 tahun lalu | |
wishbone_types.vhdl | 3 tahun lalu | |
writeback.vhdl | 3 tahun lalu | |
xics.vhdl | 3 tahun lalu | |
xilinx-mult.vhdl | 3 tahun lalu |
A tiny Open POWER ISA softcore written in VHDL 2008. It aims to be simple and easy to understand.
You can try out Microwatt/Micropython without hardware by using the ghdl simulator. If you want to build directly for a hardware target board, see below.
git clone https://github.com/micropython/micropython.git
cd micropython
cd ports/powerpc
make -j$(nproc)
cd ../../../
A prebuilt micropython image is also available in the micropython/ directory.
If building ghdl from scratch is too much for you, the microwatt Makefile supports using Docker or Podman.
git clone https://github.com/antonblanchard/microwatt
cd microwatt
make
To build using Docker:
make DOCKER=1
and to build using Podman:
make PODMAN=1
ln -s ../micropython/ports/powerpc/build/firmware.bin main_ram.bin
Or if you were using the pre-built image:
ln -s micropython/firmware.bin main_ram.bin
./core_tb > /dev/null
Install Vivado (I'm using the free 2019.1 webpack edition).
Setup Vivado paths:
source /opt/Xilinx/Vivado/2019.1/settings64.sh
pip3 install --user -U fusesoc
Fedora users can get FuseSoC package via
sudo dnf copr enable sharkcz/danny
sudo dnf install fusesoc
mkdir microwatt-fusesoc
cd microwatt-fusesoc
fusesoc library add microwatt /path/to/microwatt/
fusesoc run --target=nexys_video microwatt --memory_size=16384 --ram_init_file=/path/to/microwatt/fpga/hello_world.hex
You should then be able to see output via the serial port of the board (/dev/ttyUSB1, 115200 for example assuming standard clock speeds). There is a know bug where initial output may not be sent - try the reset (not programming button) on your board if you don't see anything.
fusesoc run --target=nexys_video microwatt
make -j$(nproc) check
This is functional, but very simple. We still have quite a lot to do: