Release notes
Release history and changelog for the hdl-modules project.
We follow the semantic versioning scheme MAJOR.MINOR.PATCH:
MAJORis bumped when incompatible API changes are made.MINORis bumped when functionality is added in a backward-compatible manner.PATCHis bumped when backward-compatible bug fixes are made.
Unreleased (YYYY-MM-DD)
Changes since previous release
Fixes
Fix
ARREADYhandshaking bug in axi_lite_register_file.vhd.Fix bug in axi_simple_read_crossbar.vhd, axi_simple_write_crossbar.vhd, axi_lite_simple_read_crossbar.vhd and axi_lite_simple_write_crossbar.vhd.
Fix limitation/bug in axi_lite_mux.vhd.
Breaking changes
Use more-compact VUnit mechanism for getting random seed in BFMs. Removes the
seedgeneric from
6.2.1 (1 may 2025)
Changes since previous release
Fixes
Improvements in AXI write DMA C++ driver.
6.2.0 (31 march 2025)
Changes since previous release
Added
Add reset support to axi_lite_register_file.vhd.
6.1.0 (25 march 2025)
Changes since previous release
Added
Add event_aggregator.vhd.
Add
write_doneinterrupt aggregation mechanism to Module dma_axi_write_simple.
6.0.0 (18 january 2025)
Changes since previous release
Added
Fixed
Fix bug where asynchronous_fifo.vhd constraint would fail on UltraScale+ devices when FIFO mapped to LUTRAM primitives.
Breaking changes
Rename
resync_slv_level_coherentto resync_twophase.vhd.Rename
resync_slv_handshaketo resync_twophase_handshake.vhd.Rename common_pkg.vhd function
itetoif_then_else.Rename old
reg_filemodule to register_file and rework it. Note that this change is compatible with hdl-registers version 7.0.0 and later. If you use hdl-registers, the changes should be transparent. The changes are:Rename “reg” to “register”, “idx” to “index”, “reg_type” to “mode” for all files, types, constants.
Add
utilized_widthfield to register definition type.Optimize resource utilization of axi_lite_register_file.vhd.
Remove unused functions.
5.0.1 (9 july 2024)
Changes since previous release
Added
Add
resync_slv_handshake.Add
enable_iobgeneric to debounce.vhd.
Bug fixes
Respect the
include_unisimflag inmodule_hard_fifo.get_simulation_filesmethod.Ensure deterministic latency of resync_pulse.vhd,
resync_slv_level_coherent, and debounce.vhd.
Other changes
Waive irrelevant Vivado CDC warnings to make reports more clean.
5.0.0 (8 may 2024)
Changes since previous release
Added
Add Module lfsr.
Add saturate_signed.vhd.
Internal changes
Optimize library and package imports in a way that decreases simulation time by 20-40% for small testbenches using GHDL.
Breaking changes
Remove protocol checking from handshake_master.vhd and handshake_slave.vhd. If protocol checking is still wanted in places where these are instantiated, an axi_stream_protocol_checker.vhd instance alongside is recommended.
Split
bfm.bfm_pkgintoChange
stall_configgeneric ofto use type
stall_configuration_tfrom stall_bfm_pkg.vhd.
4.0.0 (25 january 2024)
Changes since previous release
Added
Implement our own lightweight axi_stream_protocol_checker.vhd that greatly reduces CPU cycles consumed during simulation.
Add axi_read_range_checker.vhd and axi_write_range_checker.vhd.
Add
userport to width_conversion.vhd.
Fixes
Fix bug in axi_lite_register_file.vhd where a non-zero default value for a register of mode
wpulseorr_wpulsewould only be asserted onregs_downthe very first clock cycle.Fix bug where axi_read_throttle.vhd could lower
ARVALIDwithout an AR transaction having occurred.
Breaking changes
Remove unused
addr_widthgeneric from axi_read_master.vhd and axi_write_master.vhd.Rename axi_lite_mux.vhd generic
slave_addrstobase_addressesand change type toaddr_vec_t, i.e. a list of base addresses. Same for axi_lite_to_vec.vhd genericaxi_lite_slaves. The address mask is now calculated internally.Rename optional axi_write_master.vhd generic
set_axi3_w_idtoenable_axi3.Remove optional
rule_4_performance_check_max_waitsgeneric from handshake_master.vhd and handshake_slave.vhd which is not needed by new axi_stream_protocol_checker.vhd.Break axi module into axi_lite and axi_stream.
Move from axi to axi_stream:
3.0.2 (27 september 2023)
Changes since previous release
Added
Add
num_bits_needed_signedto math_pkg.vhd.
3.0.1 (27 september 2023)
Changes since previous release
Added
Add
stable_rising_edgeandstable_falling_edgeports to debounce.vhd.Add handshake_merger.vhd.
3.0.0 (2 march 2023)
Changes since previous release
Added
Add handshake_mux.vhd.
Add time_pkg.vhd.
Bug fixes
Fix bug where fifo.vhd in packet mode could propagate erroneous data when a packet of length one was written to an almost empty FIFO.
Fix bug where fifo.vhd and asynchronous_fifo.vhd in packet mode could have bubble cycles in packet readout when output register was enabled.
Fix bug where axi_stream_master.vhd, axi_write_master.vhd and axi_read_master.vhd would not drive bus with
'X'whenvalidwas low.
Breaking changes
Rename axi_stream_slave.vhd port
num_bursts_checkedtonum_packets_checked.Rename width_conversion.vhd generic
support_unaligned_burst_lengthtosupport_unaligned_packet_length.Remove the
remove_strobed_out_invalid_datageneric from axi_stream_slave.vhd and axi_write_slave.vhd. This behavior is now always enabled.Change to use unresolved VHDL types consistently.
std_ulogicinstead ofstd_logic.std_ulogic_vectorinstead ofstd_logic_vector.u_signedinstead ofsigned.u_unsignedinstead ofunsigned.
Move
to_periodandto_frequency_hzfunctions from types_pkg.vhd to time_pkg.vhd.Remove erroneous assignment of
asynchronous_fifoportread_levelwhen packet mode is enabled.Remove the rarely used
axi_w_fifoportread_levelwhich does not have valid value in all configurations.Remove the rarely used
axi_write_cdcportoutput_data_fifo_levelwhich does not have valid value in all configurations.
2.0.0 (24 august 2022)
Changes since previous release
Added
Add handshake_pipeline.vhd generic
pipeline_data_signalswith default valuetrue, and implement mode that pipelines control signals but not data.Add fifo.vhd and asynchronous_fifo.vhd generic
enable_output_registerwith default valuefalse, which adds a pipeline stage for RAM output data.Add axi_read_master.vhd and axi_write_master.vhd BFMs that create and verify AXI transactions.
Add axi_read_pipeline.vhd and axi_write_pipeline.vhd blocks that pipeline an AXI bus.
Bug fixes
Fix full throughput in keep_remover.vhd when not all input lanes are strobed.
Fix bug in axi_write_throttle.vhd where rogue
AWtransactions could occur.Fix handling of handshake signals in handshake_splitter.vhd to be AXI-Stream compliant.
Breaking changes
Rework handshake_splitter.vhd to use
std_logic_vectorforoutput_readyandoutput_valid. Introduce mandatory genericnum_interfaces.Change handshake_pipeline.vhd and axi_lite_pipeline.vhd generics
allow_poor_input_ready_timingwith default valuefalsetopipeline_control_signalswith default valueTrue.Rename axi_stream_slave.vhd and handshake_slave.vhd generic
remove_strobed_out_dont_caretoremove_strobed_out_invalid_data.Drive output signals with
'X'per default whenvalidis low in axi_stream_master.vhd.Rename generics
data_width_bitstodata_width,id_width_bitstoid_width, andstrobe_unit_width_bitstostrobe_unit_width_bitsin axi_stream_master.vhd and axi_stream_slave.vhd.Remove default value for
id_widthgeneric, which could potentially hide errors, in axi_slave.vhd, axi_read_slave.vhd and axi_write_slave.vhd. Now the user has to set an explicit value for every instance.Rework axi_write_throttle.vhd concept completely, as part of a bug fix. It is simpler and more light weight now. The
data_fifo_levelport as well as all generics have been removed.Rename generic
pipelinetopipeline_axi_litein axi_to_axi_lite_vec.vhd.
1.0.0 (20 october 2021)
Changes since previous release
Use get_hdl_modules() call in all module_*.py.
0.0.1 (19 october 2021)
First release of the standalone hdl-modules project.
modules folder copied directly from tsfpga release 9.0.0.
See tsfpga release notes for changelog of
earlier releases.