Skip to content

Latest commit

 

History

History
64 lines (52 loc) · 3.77 KB

CHANGELOG.md

File metadata and controls

64 lines (52 loc) · 3.77 KB

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

  • Added a new YAML field type that resolves and serializes paths relatively to the YAML file itself and supports loading remote files (http(s):// URLs) or files from a user repo with the given name
  • While loading a design file (e.g. topwrap kpm_client/build -d design.yaml) all required IP Cores are now automatically parsed from the file and it's no longer required to provide them manually on the command line
  • Automatically generated YAML files are now more concise thanks to some arrays being serialized inline, instead of each element always occupying its own line
  • Added "IP Cores", "Externals", and "Constants" layers to the GUI which you can hide/show from the settings
  • Nox session for downloading and packaging FuseSoc libraries
  • Support Python 3.13 and dropped support for Python 3.8
  • Added to config option for choosing a location where KPM server should be built
  • All in one command topwrap gui for building, starting the KPM server and connecting the client to it.
  • Automatic dataflow saving with each change to the graph in KPM. This ensures that the state is preserved when the page is reloaded.

Changed

  • The order of fields in generated KPM specifications are now deterministic
  • Topwrap's builtin cores and interfaces have been repackaged into a user repository automatically loaded at start named builtin
  • All YAML files internal to Topwrap (examples, tests, built-in repo) now only use the .yaml extension
  • Default location for built KPM server from ./build/ to $XDG_CACHE_HOME/topwrap/kpm_build

Fixed

  • Resolving IP Core YAML paths defined in a design description now works relative to the location of the design file instead of the current working directory
    • Except when using the "Load file/Save file" options in the GUI
  • Resolved an issue where IP Core node names in the GUI were parsed from the yaml description file name.
  • Resolved an issue with YAML files produced by topwrap parse, where unnecessary double hyphens (--) appeared in signal definitions
  • Changed how validation is done in topwrap in order to support hierarchical designs and check for more errors while creating design

[0.1.0] - 2024-09-27

Added

  • Conversion of HDL sources into YAML IP core description files
    • Verilog and VHDL support
    • Interface recognition: AXI, AXI-Lite, AXI Stream, Wishbone
    • YAML-based description format for command-line use
  • Design Assembly
    • Ability to assemble top-level designs from IP cores
    • Compliance checks for predefined interfaces
    • Generation of FuseSoC .core files
    • Use of Amaranth HDL for final top-level generation
  • GUI
    • Graphical interface powered by Kenning Pipeline Manager
    • Drag-and-drop functionality for creating and connecting cores
    • Visualization of hierarchical designs
    • Validation and building of designs to identify potential issues
    • Conversion from YAML IP core/design to KPM specification/dataflow
  • User Repository
    • Creation of custom libraries for reuse across projects
    • Dedicated directories for each core with its HDL and parsed IP core
    • Support for multiple HDL sources within a single repository entry
    • Built-in interface definitions
    • Automatic loading of IP core YAMLs from the user repositories
  • Documentation
    • User documentation with examples and live previews
    • Developer's guide covering advanced topics and contribution guidelines