mirror of https://github.com/YosysHQ/abc.git
63 lines
2.4 KiB
C
63 lines
2.4 KiB
C
/**CFile****************************************************************
|
|
|
|
FileName [eSLIM.h]
|
|
|
|
SystemName [ABC: Logic synthesis and verification system.]
|
|
|
|
PackageName [Using Exact Synthesis with the SAT-based Local Improvement Method (eSLIM).]
|
|
|
|
Synopsis [Interface to the eSLIM package.]
|
|
|
|
Author [Franz-Xaver Reichl]
|
|
|
|
Affiliation [University of Freiburg]
|
|
|
|
Date [Ver. 1.0. Started - March 2025.]
|
|
|
|
Revision [$Id: eSLIM.h,v 1.00 2025/03/17 00:00:00 Exp $]
|
|
|
|
***********************************************************************/
|
|
|
|
#ifndef ABC__OPT__ESLIM__ESLIM_h
|
|
#define ABC__OPT__ESLIM__ESLIM_h
|
|
|
|
#include "misc/util/abc_namespaces.h"
|
|
#include "aig/gia/gia.h"
|
|
|
|
ABC_NAMESPACE_HEADER_START
|
|
|
|
typedef struct eSLIM_ParamStruct_ eSLIM_ParamStruct;
|
|
struct eSLIM_ParamStruct_ {
|
|
int forbidden_pairs; // Allow forbidden pairs in the selected subcircuits
|
|
int extended_normality_processing; // Additional checks for non normal subcircuits
|
|
int fill_subcircuits; // If a subcircuit has fewer than subcircuit_size_bound gates, try to fill it with rejected gates.
|
|
int apply_strash;
|
|
int fix_seed;
|
|
int trial_limit_active;
|
|
int apply_inprocessing;
|
|
|
|
unsigned int timeout; // available time in seconds (soft limit)
|
|
unsigned int timeout_inprocessing;
|
|
unsigned int iterations; // maximal number of iterations. No limit if 0
|
|
unsigned int subcircuit_size_bound; // upper bound for the subcircuit sizes
|
|
unsigned int strash_intervall;
|
|
unsigned int nselection_trials;
|
|
unsigned int nruns;
|
|
|
|
double expansion_probability; // the probability that a node is added to the subcircuit
|
|
|
|
int mode; // 0: Cadical Incremental, 1: Kissat Oneshot
|
|
int seed;
|
|
int verbosity_level;
|
|
|
|
};
|
|
|
|
void seteSLIMParams(eSLIM_ParamStruct* params);
|
|
|
|
Gia_Man_t* applyeSLIM(Gia_Man_t * pGia, const eSLIM_ParamStruct* params);
|
|
Gia_Man_t* applyeSLIMIncremental(Gia_Man_t * pGia, const eSLIM_ParamStruct* params, unsigned int restarts, unsigned int deepsynTimeout);
|
|
|
|
|
|
ABC_NAMESPACE_HEADER_END
|
|
|
|
#endif |