Skip to content

v4.1.0

Compare
Choose a tag to compare
@SJulianS SJulianS released this 08 Mar 16:06
· 989 commits to master since this release
  • selection details
    • module icons reflect module color
    • gate icons shape according to gate type
    • user setting to adjust size of or omit icon in upper right corner
  • project import/export
    • added export feature: generate zipped project including external gate libraries and python source files
    • added import feature by extracting zipped project
    • added quazip library sources (deps) since recent distributions no longer link binary packages against qt5
  • netlist parsers
    • added (limited) support for 'defparam' statements to Verilog parser
    • added support for pin assignments by order instead of name to Verilog and VHDL parser
  • GUI comments
    • user can add comments to gates and modules to take notes on the reverse engineering progress
    • comments are shown in the graph view (as little notes on the gate/module boxes) and in the selection details widget
  • plugin netlist_preprocessing
    • collection of utility functions preparing a raw netlist for further analysis
    • remove LUT fan-in endpoints that do not show up in the LUT's boolean function via remove_unused_lut_inputs
    • remove buffer gates via remove_buffers, also dynamically by analyzing Boolean function and connected inputs
    • remove redundant gates via remove_redundant_logic, i.e., gates of equal type with identical inputs
    • remove unconnected gates/nets via remove_unconnected_gates and remove_unconnected_nets
    • simplify LUT configuration strings based on constant inputs via simplify_lut_inits
  • plugin bitorder_propagation
    • propagate a known order of input/output pins within module pin groups to other connected modules
  • decorators
    • BooleanFunctionDecorator
      • substitute power and ground nets/pins by constant values in Boolean functions via substitute_power_ground_nets and substitute_power_ground_pins
      • get a concatenated Boolean function corresponding to a vector of nets or Boolean functions via get_boolean_function_from`
    • BooleanFunctionNetDecorator
      • get a unique Boolean function variable for a net via get_boolean_variable and get_boolean_variable_name
      • get the net corresponding to a unique Boolean function variable via get_net_from
      • get the net ID corresponding to a unique Boolean function variable via get_net_id_from
    • SubgraphNetlistDecorator
      • copy a subgraph of the netlist via copy_subgraph_netlist
      • get the Boolean function of a subgraph via get_subgraph_function
      • get the inputs to the Boolean function of a subgraph without computing the Boolean function via get_subgraph_function_inputs
  • miscellaneous
    • added functions get_pin_names, get_input_pins, get_input_pin_names, get_output_pins, and get_output_pin_names to class Module
    • added function BooleanFunction::get_truth_table_as_string that returns the truth table of a Boolean function as a formatted string
    • added missing GND, VCC, and RAM gate types to the ICE40ULTRA gate library
    • added Python bindings for the HAL project manager
    • added new GUI dialog for creating an empty project (without providing a netlist)
    • changed all example netlists to be HAL projects
    • API cleanup for plugin solve_fsm
  • bugfixes
    • fixed Verilog and VHDL parser ignoring pin order of modules
    • fixed order of module pins in Verilog writer
    • fixed some errors in the Python documentation
    • fixed pin types of power and ground gate types in various gate libraries
    • fixed spamming the log with messages related to module pins
    • fixed segfault that sometimes occurred when deleting a module
    • fixed saving absolute paths for Python files and not copying them to the new project folder when using Save as...
    • fixed some project manager bugs related to inaccessible files
    • fixed missing Python binding for GateType::get_pin_groups
    • fixed incorrect undo action for "fold parent module"
    • fixed some internal data structure of the Verilog and VHDL parsers not being cleared after each instantiation attempt
    • fixed wrong gate type properties for MUX gates in various gate libraries
    • fixed net and instance aliasing in VHDL and Verilog parser
    • fixed netlist parser bug related to unconnected module pins that are being directly assigned to another wire/signal in the module/entity body
    • fixed get_pins returning pins in wrong order if no filter is specified