front_end.front_end module

class front_end.front_end.FrontEnd(settings)

Bases: abc.ABC

Abstract Base Class for FrontEnd stage. The FrontEnd stage parses the input design and configuration file and initializes data structures for the next stages.

Inheriting classes must implement methods:
__init__ setup process
Parameters:settings (dict) – A dictionary using options from the config as keys and strings of their values as values.
__init__(settings)

Instantiates a subclass instance using the options from the configuration file.

setup(cfg_file, input_file)

Sets up the FrontEnd instance using config and input files. Provides default implementation.

Parameters:
  • cfg_file (str) – The absolute path to the configuration file in *.cfg format.
  • input_file (str) – The absolute path to the input circuit file in Verilog format.
Raises:

ValueError – If cfg_file or input_file is invalid, i.e. None or empty.

process()

Returns a GeneralInformation instance: Must generate a CandidateSet, VariantSet and ApproximatedCircuits, set paths and create directories. Must also create Verilog and Blif format files of the original circuit.

Parameters to set in GeneralInformation object:
top_module pis pos cand_set variant_set approx_circuits base_directory (optional, default is input file path) output_dir (optional, default is input file path)