Skip to content

Commit

Permalink
extended DANA (#572)
Browse files Browse the repository at this point in the history
* extended DANA

* documentation update

* added short-hand config for flip-flops
  • Loading branch information
SJulianS authored Jun 3, 2024
1 parent f6051d7 commit bb5e17b
Show file tree
Hide file tree
Showing 30 changed files with 2,007 additions and 760 deletions.
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

0 comments on commit bb5e17b

Please sign in to comment.