A selection of peripherals from lowRISC's OpenTitan project with adaptations to better integrate with the PULP IP ecosystem. These adaptations were made as part of Snitch and moved to this repository for greater flexibility. Changes include:
- Use of
register interfaceand its patched register tool instead of TL/UL. - Replacement of OpenTitan assertions and some primitives with
common_cells. - Dependency and IP management using Bender.
- Minor functional fixes and changes.
This repository uses Bender's vendor command to fully include the remote code in src and apply the patches included in patches. The IP RTL is pregenerated in its standard configuration, but can be reconfigured in the including project.
To simplify IP reconfiguration in your project, you can include the GNU Make fragment otp.mk in your makefile, for example:
include $(shell bender path opentitan_peripherals)/otp.mk
# Alternative SPI host register config
$(OTPROOT)/src/spi_host/data/spi_host.hjson: config/spi_host.json
cp $< $@
# Rebuild peripheral RTL
all: otpAfter making uncommitted changes to the forked IPs, you can generate a patch for them with:
bender vendor patch
You will be prompted to name the patch commits. To verify correct patch application:
make check_vendor
Unless otherwise noted, everything in this repository is licensed under the Apache License, Version 2.0 (see LICENSE for full text). The copyright for all work included from the OpenTitan project lies with lowRISC contributors.