Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased
Added
Changed
Fixed
v0.3.6 - 2022-12-14
Changed
Prepare Metadata for Pypi release
v0.3.5 - 2022-12-14
Added
Support for FuseSoC. Padrick now generated core files and can be invoked natively as a FuseSoC Generator.
v0.3.4 - 2022-12-06
Added
User attributes now support nested dictionaries i.e. besides a string, boolean or an integer the value of an attribute can be another dictionary.
The
default_port
field of pad_instances now support dictionaries of pad_name to port mappings. See the correspondingly updateddefault_port
section in the docs.
Changed
User Attributes of ports, port_groups and pad_instances are now expanded as well when instantiated multiple times. The same mini expression languages applies.
Improved manifest version warning messages
Bumped manifest version to 3.
Fixed
v0.3.3 - 2022-12-05
Added
Added support for modular config file using pyyaml !include directives.
Changed
Fixed
v0.3.2 - 2022-10-21
Added
Added support for templated default_port
in vectorized pad instances (pads with multiple
> 1).
Changed
Removed now obsolete hint about default_port
with vectorized pad instances compatibility.
v0.3.1 - 2022-10-19
Added
Changed
Fixed
Regression in driver template rendering that caused an error during the register file generation.
v0.3.0 - 2022-10-18
Added
Added read-only IP info register with version id and pad count values to RTL template
Changed
Allow padframe generation without any muxed pads
Fixed
Fix address width bug in address demux rules when generating padframes with power’s of two number of registers
v0.2.0 - 2022-25-04
Added
Added support for multiple multiplex groups per pad/port. Each pad/port/port_group can now be member of severa mux_groups. This causes the union of all specified groups to be muxable to the pad,port or port_group in question.
Add support for multi-ports. Ports now accept the new optional multiple key that allows to specify several port with similar structure without copy-paste-hell
Add support for templated names, description and mux_groups to multi-pads/multi-ports using the ‘{i}’ token. This feature simplifies the definition of GPIO ports. Check the example config file for an example on how to use the feature.
Add version flag to CLI to print version information
Add validation of manifest version. The CLI now prints out an error message if the manifest version is not supported anymore with a help message which version of Padrick supports the out-dated manifest version.
Add mini expression language for template tokens.
Render assignment macros in systemverilog package to simplify hierarchical assignements of port groups.
Add optional format code feature to index templates.
RTL generate command now supports supplying file headers to insert into the auto-generated files
Auto-generate SystemVerilog header files with struct assignment macros
Added optional key default_port to pad_instances of the form “<port_group_name>.<port_name>”. This allows to specify a port that should be connected to the pad by default after reset. An error is raised if the specified default_port is not actually connectable to the pad (not in the same mux group).
Added new CLI commands to customize internal Mako templates.
Add optional user_attr key to padframe specification format. This allows users to tag pads, ports etc. with additional metadata and potentially use it within the custom templates.
Add ‘generate constraints’ command to auto-generate SDC constraints for set_case_analysis of pad_mux config registers.
Add new CLI generate command to render custom templates to support completely customized output formats
Add more documentation on usage and structure of generated padrick output
Changed
Manifest version was increased to 2.
Renamed mux_group key to mux_groups which now accepts a list of string instead of a single string.
Updated sample config files to be compatible with new manifest format.
Switched to reg_interface version 3.1 and updated internal reggen version.
Config file types of various fields to support expression language (makes fields like default_static_value incompatible with YAML integers)
Fixed
Fixed bug in toplevel padfram struct generation
0.1.0 - 2021-03-30
Very first alpha release of Padrick with support for RTL Generation and Driver Generation.