This repository has been archived by the owner on Nov 18, 2020. It is now read-only.
0.1.0 - Initial release with driver generation, documentation generation, and object model
LatestThis represents the first versioned release of block-pio-sifive, and it contains a number of new features compared to previous "unversioned" commits.
New Features
- Chisel elaboration now also emits an Object Model JSON and a Device Tree file with configuration-specific information about the PIO block.
- A set of C driver files for interfacing with the PIO block's registers, allowing software that uses the PIO block to be written in a more portable way. These drivers are also combined with a set of header files that contain configuration-specific information such as base address, which are generated automatically based on the design configuration.
- Wake functions for building a parameterized document that describes both the programming interface and RTL integration information.
- Continuous integration checks have been added, testing the above workflows on every pull request and commit to the repository.
- A second configuration of the PIO block with a width of 16 has been added. A second DUT has been created as well, with a Wake variable named
pio16DUT
. This allows for easily testing changes across multiple parameterizations of the PIO block.
Backwards incompatible changes
- There are new dependencies or Ruby (~2.5) and Python (~3.7), so the running environment must have them installed.
- The directory structure has been changed for greater consistency between different file types.