Releases: emsec/hal
Releases · emsec/hal
v3.2.3
v3.2.2
- refactored gate library handling
- separated gate library manager from gate library parser interface
- added gate library writer interface to enable writing out gate library files
- extended and refactored gate library functionality
- added
create_gate_type
to classGateLibrary
to enable gate type creation from Python - added
mark_vcc_gate_type
andmark_gnd_gate_type
to classGateLibrary
to enable marking gate types as power or ground connections - added
get_gate_type_by_name
andcontains_gate_type_by_name
to classGateLibrary
- added pin types and respective functions to
GateType
to enable assigning special-purpose pins - added
get_gate_library
to classGateType
- added base types
ram
,dsp
, andio
- merged input and output pin groups to simplify pin group handling
- removed
add_gate_type
function from classGateLibrary
- removed
GateTypeSequential
andGateTypeLut
classes and moved their functionality into classGateType
- renamed some functions to have shorter and more understandable names
- added
- added new gate library format: "HAL Gate Library" (HGL)
- supports assignment of pin types to gate types
- added parser for HGL (
.hgl
) files - added writer for HGL (
.hgl
) files
- refactored liberty gate library parser
- added parsing of power and ground pins (
pg_pin
) to Liberty parser
- added parsing of power and ground pins (
- added more netlist utility functions
- added
get_nets_at_pins
to retrieve nets that are connected to a vector of pins - added
remove_buffers
to remove buffer gates from a netlist - added
remove_unused_lut_endpoints
to remove unused LUT fan-in endpoints - added
rename_luts_according_to_function
to rename LUTs depending on the Boolean function they implement
- added
- added
to_z3
to classBooleanFunction
to translate a Boolean function into a z3 expression - added highly experimental
solve_fsm
plugin for FSM verification using z3 - added
z3_utils
plugin to provide common z3 functions to all other plugins - improved layouter uses location information from gate API
- switched from float gate coordinates to integer ones
- the netlist simulator VCD writer now optionally takes a set of target nets to write to VCD
- fixed
add_boolean_function
of classGate
assigning wrong functions to LUTs - fixed wrong Python binding for property
gate_library
of classNetlist
- fixed netlist simulator segfaulting when an output pin of a FF remains unconnected
- fixed optimization of Boolean functions sometimes producing wrong or non-optimal results
- fixed
netlist_utils::get_subgraph_function
returning wrong results if input pins without relevance for the Boolean function remained unconnected - fixed layouter not showing connections if things change within submodules by adding additional test whether removing or adding a gate/module requires context update
v3.1.11
- added highly experimental way to close and reopen netlists at runtime
- known issue: the Python context does not change properly between netlists
- added creation of backups for Python files created within the editor outside of the
.hal
file - added user prompt when detecting Python file backups after a crash
- fixed crash when moving top module upward
- fixed module cache inconsistencies causing bad memory allocs in the GUI when deleting nets or endpoints
v3.1.10
- added
SB_GB_IO
,SB_GB
,SB_I2C
,SB_SPI
,SB_HFOSC
, andSB_LFOSC
gate types toICE40ULTRA
gate library - added jumping to gates, nets, and modules from the selection details widget when double-clicking the respective item in the list or using the context menu
- added isolating gates and modules in new views from the selection details widget using the conext menu
- changed layouter to only be called after fully executing a Python script
- improved performance of selection details widget
- fixed layouter flaw that junctions could not be drawn if in- and outgoing wires were swapped
- fixed parsing of bit order for INIT strings in FPGA gate libraries
- fixed GUI segfaulting when deleting wires without unfolding the containing module
- fixed occasional null pointer exceptions on GUI startup
- fixed GUI listening to signals from netlists other than the one loaded within the GUI
- fixed graph view resizing when navigating using the arrow keys or the GUI API
v3.1.9
- added
NetlistSimulator::load_initial_value_from_netlist
to load the initial value from the netlist - changed
NetlistSimulator::load_initial_values
to load a user-specified value instead of reading it from the netlist - fixed layouter not showing gates within modules for netlists with coordinates
v3.1.8
- added optional placement of gates and modules according to COORDINATE info parsed from netlist file
- fixed crash caused by NodeBoxes hash not completely emptied on clear
- fixed mistakes in
module
Python documentation - fixed missing include in
graph_navigation_widget.cpp
- fixed missing initialization in
NetlistSimulator::generate_vcd
- fixed missing input label when separated net is connected to more than one port
v3.1.7
- WARNING: the function signature of
netlist_utilities::get_subgraph_function
has changed - added cycle detection to
netlist_utilities::get_subgraph_function
again - added Lattice ICE gate library
- improved access to layout class NodeBox for GUI C++ developer
- improved Python plugin, added command line option
--python-script
and--python-args
- improved appearance and programmcode for arrow-key navigation
- removed all Boost and Kyoto references
- fixed crashes due to missing entries in coordinate system in views with unconnected boxes
- fixed crashes when navigating from global inputs connected to multiple boxes
- fixed bad alignment between net endpoint and port label for gates with ports not connected to nets
- fixed log output got incorrectly supressed in case command line arguments were solely directed at plugins
- fixed wrong layouting of endpoints in GUI in the presence of unconnected pins/ports
- fixed wrong calculation of minimum size of the dockbars
- fixed bottom dockbar not reappearing when dragging removing every widget from it
v3.1.6
- added
netlist_utilities::get_subgraph_function
variants with and without cache - added
netlist_utilities::get_next_sequential_gates
variants with and without cache - added tests for
netlist_utilities::get_next_sequential_gates
- added python bindings for gate_library_manager
- cleaned up
DataContainer
- removed hidden internal cache from
netlist_utilities::get_subgraph_function
- removed
netlist_utilities::get_subgraph_function
cycle detection due to unintended behavior - fixed netlist parsers wrongly handling escapings within strings
- fixed
netlist_utilities::copy_netlist
did not copyDataContainer
contents - fixed netlist pybind handling of netlists that occasionally led to double-free segfaults
- fixed segfault in
BooleanFunction::from_string
when providing partial variable names
v3.1.5
v3.1.4
- added tests for
netlist_utils
- fixed crash when creating invalid module when using
netlist::create_module
- fixed assigning nets instead of gates when copying netlist using
netlist_utils::copy_netlist
- fixed
netlist_utils::copy_netlist
not copying port names - fixed
netlist_utils::get_subgraph_function
crashing on unconnected input pin - fixed infinite loop within
netlist_utils::get_subgraph_function
if the combinational logic contains a feedback path