Tobias Platen 72ae258962 inital support for orangecrab0.2 | пре 2 година | |
---|---|---|
.github | пре 3 година | |
constraints | пре 2 година | |
fpga | пре 2 година | |
hello_world | пре 3 година | |
include | пре 2 година | |
lib | пре 3 година | |
litedram | пре 2 година | |
liteeth | пре 3 година | |
media | пре 4 година | |
micropython | пре 3 година | |
openocd | пре 2 година | |
rust_lib_demo | пре 3 година | |
scripts | пре 3 година | |
sim-unisim | пре 4 година | |
tests | пре 2 година | |
uart16550 | пре 3 година | |
verilator | пре 2 година | |
.gitignore | пре 3 година | |
LICENSE | пре 4 година | |
Makefile | пре 2 година | |
README.md | пре 4 година | |
cache_ram.vhdl | пре 4 година | |
common.vhdl | пре 3 година | |
control.vhdl | пре 3 година | |
core.vhdl | пре 2 година | |
core_debug.vhdl | пре 3 година | |
core_dram_tb.vhdl | пре 3 година | |
core_dummy.vhdl | пре 2 година | |
core_flash_tb.vhdl | пре 4 година | |
core_tb.vhdl | пре 4 година | |
countzero.vhdl | пре 3 година | |
countzero_tb.vhdl | пре 4 година | |
cr_file.vhdl | пре 3 година | |
crhelpers.vhdl | пре 4 година | |
dcache.vhdl | пре 3 година | |
dcache_tb.vhdl | пре 4 година | |
decode1.vhdl | пре 3 година | |
decode2.vhdl | пре 3 година | |
decode_types.vhdl | пре 3 година | |
divider.vhdl | пре 4 година | |
divider_tb.vhdl | пре 4 година | |
dmi_dtm_dummy.vhdl | пре 4 година | |
dmi_dtm_ecp5.vhdl | пре 2 година | |
dmi_dtm_tb.vhdl | пре 4 година | |
dmi_dtm_xilinx.vhdl | пре 3 година | |
dram_tb.vhdl | пре 3 година | |
execute1.vhdl | пре 3 година | |
fetch1.vhdl | пре 3 година | |
fpu.vhdl | пре 3 година | |
glibc_random.vhdl | пре 4 година | |
glibc_random_helpers.vhdl | пре 4 година | |
helpers.vhdl | пре 3 година | |
icache.vhdl | пре 3 година | |
icache_tb.vhdl | пре 4 година | |
icache_test.bin | пре 4 година | |
insn_helpers.vhdl | пре 3 година | |
loadstore1.vhdl | пре 3 година | |
logical.vhdl | пре 3 година | |
microwatt.core | пре 3 година | |
mmu.vhdl | пре 3 година | |
multiply.vhdl | пре 3 година | |
multiply_tb.vhdl | пре 3 година | |
nonrandom.vhdl | пре 3 година | |
plru.vhdl | пре 4 година | |
plru_tb.vhdl | пре 4 година | |
ppc_fx_insns.vhdl | пре 3 година | |
random.vhdl | пре 3 година | |
register_file.vhdl | пре 3 година | |
rotator.vhdl | пре 4 година | |
rotator_tb.vhdl | пре 4 година | |
sim_16550_uart.vhdl | пре 3 година | |
sim_bram.vhdl | пре 4 година | |
sim_bram_helpers.vhdl | пре 4 година | |
sim_bram_helpers_c.c | пре 4 година | |
sim_console.vhdl | пре 4 година | |
sim_console_c.c | пре 3 година | |
sim_jtag.vhdl | пре 4 година | |
sim_jtag_socket.vhdl | пре 4 година | |
sim_jtag_socket_c.c | пре 4 година | |
sim_no_flash.vhdl | пре 4 година | |
sim_pp_uart.vhdl | пре 3 година | |
sim_vhpi_c.c | пре 4 година | |
sim_vhpi_c.h | пре 4 година | |
soc.vhdl | пре 2 година | |
spi_flash_ctrl.vhdl | пре 3 година | |
spi_rxtx.vhdl | пре 3 година | |
sync_fifo.vhdl | пре 4 година | |
syscon.vhdl | пре 2 година | |
utils.vhdl | пре 4 година | |
wishbone_arbiter.vhdl | пре 4 година | |
wishbone_bram_tb.bin | пре 4 година | |
wishbone_bram_tb.vhdl | пре 4 година | |
wishbone_bram_wrapper.vhdl | пре 2 година | |
wishbone_debug_master.vhdl | пре 4 година | |
wishbone_types.vhdl | пре 3 година | |
writeback.vhdl | пре 3 година | |
xics.vhdl | пре 3 година | |
xilinx-mult.vhdl | пре 3 година |
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: