Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extended DANA #572

Merged
merged 3 commits into from
Jun 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 51 additions & 41 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,57 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
* **WARNING:** this release breaks compatibility with Ubuntu 20.04 LTS
* **WARNING:** this release breaks the API of the `graph_algorithm` plugin
* refactored module widget
* added option to show gate content for each module
* added option to show interior nets for each module
* added `Isolate in new view` feature for nets
* added button to expand or collapse all tree items
* added delete module action and shortcut
* added entries for context menu
* adapted appearance for menu content tree, selection details tree, grouping content tree (same model for all)
* refactored search bar
* changed appearance of search bar to be more intuitive
* added menu for extended options - e.g. option to search in selected columns only
* added search history
* added filter proxy class for trees and tables increasing the search performance
* refactored layouter module
* switched to multithreaded algorithm
* boosted performance by using classes with faster memory access
* removed layouter code used prior to version 3.1.0 - thus removing the setting option to use that code
* added setting option to dump junction layout input data for experts to debug in case of layout errors
* refactored `graph_algorithm` plugin
* updated the igraph dependency shipped with HAL
* changed the API and made everything accessible via Python
* graph corresponding to a netlist is now encapsulated within an `NetlistGraph` object that allows easy interaction with the graph
* added new functions for computing neighborhoods, shortest paths, subgraphs, and (strongly) connected components
* simulation
* added feature to VCD parser: removal of leading backslash and trailing whitespace from waveform name
* extended maximum line with the CSV parser can handle
* changed warning messages for waveform parsing and made them more specific
* changed policy toward 'dangling' wires, they are no longer ignored but considered as global inputs or outputs
* added `hawkeye` plugin for the detection of symmetric cryptographic implementations in gate-level netlists
* see publication `HAWKEYE - Recovering Symmetric Cryptography From Hardware Circuits` at CRYPTO'24 for details
* added `NetlistTraversalDecorator` to ease exploration of a netlist
* added `get_next_matching_gates` to get successor/predecessor gates matching a certain condition
* added `get_next_matching_gates_until` to get successor/predecessor gates until a certain condition is fulfilled
* added `get_next_matching_gates_until_depth` to get successor/predecessor gates up to a certain depth
* added `get_next_sequential_gates` and `get_next_sequential_gates_map` to get the next layer of sequential successors/predecessors
* added `get_next_combinational_gates` to get all combinational gates until the next non-combinational gates are reached
* module pins
* added qualifier for `pin_changed` core events telling receiver details about the recent modification
* added event scope and stacking classes so that `pin_changed` events can be collected and prioritized
* added specific GUI handler for every `pin_changed` event thus replacing the reload-entire-pingroup-tree policy
* added class `ActionPingroup` so that UNDO function works for all pin / pin group actions issued from GUI
* **WARNING:** this release breaks the API of the `dataflow_analysis` plugin
* GUI
* refactored module widget
* added option to show gate content for each module
* added option to show interior nets for each module
* added `Isolate in new view` feature for nets
* added button to expand or collapse all tree items
* added delete module action and shortcut
* added entries for context menu
* adapted appearance for menu content tree, selection details tree, grouping content tree (same model for all)
* refactored search bar
* changed appearance of search bar to be more intuitive
* added menu for extended options - e.g. option to search in selected columns only
* added search history
* added filter proxy class for trees and tables increasing the search performance
* refactored layouter module
* switched to multithreaded algorithm
* boosted performance by using classes with faster memory access
* removed layouter code used prior to version 3.1.0 - thus removing the setting option to use that code
* added setting option to dump junction layout input data for experts to debug in case of layout errors
* plugins
* added `hawkeye` plugin for the detection of symmetric cryptographic implementations in gate-level netlists
* see publication `HAWKEYE - Recovering Symmetric Cryptography From Hardware Circuits` at CRYPTO'24 for details
* changed `graph_algorithm` plugin
* updated the igraph dependency shipped with HAL
* graph corresponding to a netlist is now encapsulated within an `NetlistGraph` object that allows easy interaction with the graph
* added new functions for computing neighborhoods, shortest paths, subgraphs, and (strongly) connected components
* changed the API to facilitate for the aforementioned changes and made everything accessible via Python
* changed `dataflow_analysis` plugin
* can now operate on arbitrary, user-defined gate types, not only FFs
* user can now specify the pin types to be considered as control pins
* can now take known registers and other known word-level structures into account during analysis
* changed the API to facilitate for the aforementioned changes
* changed `simulator` plugin
* added feature to VCD parser: removal of leading backslash and trailing whitespace from waveform name
* extended maximum line with the CSV parser can handle
* changed warning messages for waveform parsing and made them more specific
* changed policy toward 'dangling' wires, they are no longer ignored but considered as global inputs or outputs
* netlist
* module pins
* added qualifier for `pin_changed` core events telling receiver details about the recent modification
* added event scope and stacking classes so that `pin_changed` events can be collected and prioritized
* added specific GUI handler for every `pin_changed` event thus replacing the reload-entire-pingroup-tree policy
* added class `ActionPingroup` so that UNDO function works for all pin / pin group actions issued from GUI
* decorators
* added `NetlistTraversalDecorator` to ease exploration of a netlist
* added `get_next_matching_gates` to get successor/predecessor gates matching a certain condition
* added `get_next_matching_gates_until` to get successor/predecessor gates until a certain condition is fulfilled
* added `get_next_matching_gates_until_depth` to get successor/predecessor gates up to a certain depth
* added `get_next_sequential_gates` and `get_next_sequential_gates_map` to get the next layer of sequential successors/predecessors
* added `get_next_combinational_gates` to get all combinational gates until the next non-combinational gates are reached
* miscellaneous
* added support for Ubuntu 24.04 LTS
* added INIT field declaration to FF-gate-types in example library
Expand Down
12 changes: 6 additions & 6 deletions plugins/dataflow_analysis/documentation/dataflow.rst
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
Dataflow Analysis (DANA)
==========================

.. autoclass:: dataflow.DataflowPlugin
:members:
.. automodule:: dataflow
:members: analyze

.. autoclass:: dataflow.Dataflow.Configuration
.. autoclass:: dataflow.Configuration
:members:

.. automethod:: __init__

.. autoclass:: dataflow.Dataflow.Result
.. autoclass:: dataflow.Result
:members:

.. automodule:: dataflow.Dataflow
:members: analyze
.. autoclass:: dataflow.DataflowPlugin
:members:
Loading
Loading