-
Notifications
You must be signed in to change notification settings - Fork 76
Home
joern274 edited this page Jul 13, 2024
·
156 revisions
-
Introduction to HAL - The idea of HAL and an overview of its core components.
- Building HAL - How to build HAL on your own machine.
- Starting HAL - Overview of the startup options provided by HAL.
- Using HAL (WIP)
- HAL in Academia - Applications of HAL in Academia.
-
Core - The part of HAL that provides its underlying functionality.
-
Netlist - Represents the connectivity of an electronic circuit.
- Data Container - A general structure to hold arbitrary data.
- Gate - Represents the functional or sequential building blocks of a netlist.
- Net - Serves as a connection between gates within the netlist.
- Module - Represents a functional unit of gates fulfilling a dedicated purpose.
- Grouping - Provides an easy way to group gates, nets, and modules.
- Endpoint - The point where a net connects to a gate.
-
Gate Library - Holds all available gate types of a specific standard cell library.
- Gate Type - Specifies details of the underlying type of a gate.
- Boolean Function - Specifies the Boolean function of a gate (type).
- Decorators (WIP)
- Netlist Utilities - A set of utility functions operating on the netlist providing diverse functionality.
-
Netlist - Represents the connectivity of an electronic circuit.
-
GUI - An in-depth description of the HAL GUI and its functionalities.
- General Concepts - Some of the concepts that are important to understand when dealing with the GUI.
- Widgets - Details regarding each of the GUI's widgets.
- Graph View - Displays the netlist and substructures as a visual graph.
- Modules Widget - An overview about the netlist's module hierarchy.
- Views Widget - Shows and manages all existing views.
- Groupings Widget - Shows and manages all existing groupings.
- Selection Details Widget - Presents detailed information on all items of the current selection.
- Log Widget - Provides a live view of the HAL log.
- Python Editor Widget - A lightweight tool for developing HAL python scripts.
- Python Console Widget - Fast and easy access to the HAL Python API.
- Python GUI API - Interact with GUI selections via python.
- Python Thread - Running Python interpreter in background thread.
- Settings - Settings for the HAL GUI.
- Plugin Management - Manage plugins from GUI.
-
Provided Plugins - The set of plugins that come with the off-the-shelf variant of HAL.
- Gate Library Files - The gate libraries supported by HAL by default.
- Netlist Preprocessing (WIP)
- Graph Algorithms - An interface to igraph that enables running graph algorithms on a netlist.
- Dataflow Analysis - DANA tool to automatically analyze the flow of data through the netlist.
- HAWKEYE - A tool to automatically locate symmetric cryptographic primitives within a gate-level netlist.
- Bitorder Propagation (WIP)
- Logic Evaluator - A tool to evaluate the behavior of (sub-)networks comprising only combinatorical logic.
- Netlist Simulator and Waveform Viewer - A simulation framework with integrated viewer for waveform analysis.
- Netlist Parsers & Writers (TODO)
- Gate Library Parsers & Writers (TODO)
-
- Creating an Empty Plugin
- Adding Functionality to a Plugin (WIP)
- Creating Python Bindings for a Plugin (WIP)
- outdated:
- Standard Plugin (outdated)
- Netlist Parser (TODO)
- Netlist Writer (TODO)
- Gate Library Parser (TODO)
- Gate Library Writer (TODO)
- Gate Library - Create a gate library file that can be read by HAL.
-
Contributing