These are ips cloned from OpenTitan.
Via the regtool
application, OpenTitan generates rtl
, header
files and more.
Please referes to its documentation available at: https://docs.opentitan.org/doc/rm/register_tool/
e.g.
cd hw/vendor/lowrisc_opentitan/hw/ip/uart
../../../util/regtool.py -r -t rtl data/uart.hjson
../../../util/regtool.py --cdefines -o ../../../../../../sw/device/lib/drivers/uart/uart_regs.h data/uart.hjson
OpenTitan generates peripherals that are compliant to the TUL bus as for example the UART
used above.
However, in this project we also rely on https://github.com/pulp-platform/register_interface
to generate a different (lighter) bus interface for new made peripheral as the ip
to control the SoC called soc_ctrl
. The register_interface repository contains an OpenTitan
version that has been patched to cope with the register interface instead of the TUL one.
From the core-v-mini-mcu root folder:
cd hw/ip/soc_ctrl
./../../vendor/pulp_platform_register_interface/vendor/lowrisc_opentitan/util/regtool.py -r -t rtl data/soc_ctrl.hjson
./../../vendor/pulp_platform_register_interface/vendor/lowrisc_opentitan/util/regtool.py --cdefines -o ../../../sw/device/lib/drivers/soc_ctrl/soc_ctrl_regs.h data/soc_ctrl.hjson