1 #ifndef ATOM_NETLIST_UTILS_H 2 #define ATOM_NETLIST_UTILS_H 33 bool should_sweep_dangling_ios,
34 bool should_sweep_dangling_blocks,
35 bool should_sweep_dangling_nets,
36 bool should_sweep_constant_primary_outputs,
AtomNetlist::TruthTable permute_truth_table(const AtomNetlist::TruthTable &truth_table, const size_t num_inputs, const std::vector< int > &permutation)
Permutes the inputs of a truth table.
Definition: atom_netlist_utils.cpp:1198
vtr::StrongId< atom_pin_id_tag > AtomPinId
Definition: atom_netlist_fwd.h:38
std::vector< vtr::LogicValue > truth_table_to_lut_mask(const AtomNetlist::TruthTable &truth_table, const size_t num_inputs)
Convers a truth table to a lut mask (sequence of binary values representing minterms) ...
Definition: atom_netlist_utils.cpp:1239
size_t sweep_constant_primary_outputs(AtomNetlist &netlist, int verbosity)
Definition: atom_netlist_utils.cpp:953
void print_netlist_clock_info(const AtomNetlist &netlist)
Prints out information about netlist clocks.
Definition: atom_netlist_utils.cpp:1475
int mark_constant_generators(AtomNetlist &netlist, e_const_gen_inference const_gen_inference_method, int verbosity)
Walk through the netlist detecting constant generators.
Definition: atom_netlist_utils.cpp:422
e_const_gen_inference
Definition: vpr_types.h:128
std::vector< std::vector< vtr::LogicValue > > TruthTable
Definition: atom_netlist.h:91
std::set< AtomPinId > find_netlist_logical_clock_drivers(const AtomNetlist &netlist)
Returns the set of pins which logically drive unique clocks in the netlist.
Definition: atom_netlist_utils.cpp:1394
size_t sweep_inputs(AtomNetlist &netlist, int verbosity)
Sweeps primary-inputs with no fanout.
Definition: atom_netlist_utils.cpp:1091
void print_netlist_as_blif(std::string filename, const AtomNetlist &netlist)
Definition: atom_netlist_utils.cpp:51
Definition: atom_netlist.h:80
std::vector< size_t > cube_to_minterms(std::vector< vtr::LogicValue > cube)
Convers a logic cube (potnetially including don't cares) into a sequence of minterm numbers...
Definition: atom_netlist_utils.cpp:1276
size_t sweep_blocks(AtomNetlist &netlist, int verbosity)
Sweeps blocks that have no fanout.
Definition: atom_netlist_utils.cpp:1063
std::string atom_pin_arch_name(const AtomNetlist &netlist, const AtomPinId pin)
Returns a user-friendly architectural identifier for the specified atom pin.
Definition: atom_netlist_utils.cpp:407
size_t sweep_iterative(AtomNetlist &netlist, bool should_sweep_dangling_ios, bool should_sweep_dangling_blocks, bool should_sweep_dangling_nets, bool should_sweep_constant_primary_outputs, e_const_gen_inference const_gen_inference_method, int verbosity)
Repeatedly sweeps the netlist removing blocks and nets until nothing more can be swept. If sweep_ios is true also sweeps primary-inputs and primary-outputs.
Definition: atom_netlist_utils.cpp:983
AtomNetlist::TruthTable expand_truth_table(const AtomNetlist::TruthTable &truth_table, const size_t num_inputs)
Definition: atom_netlist_utils.cpp:1219
bool is_buffer(const AtomNetlist &netlist, const AtomBlockId blk)
Returns true if the specified block is a logical buffer.
Definition: atom_netlist_utils.cpp:1493
size_t sweep_nets(AtomNetlist &netlist, int verbosity)
Sweeps nets with no drivers and/or no sinks.
Definition: atom_netlist_utils.cpp:1134
size_t sweep_outputs(AtomNetlist &netlist, int verbosity)
Sweeps primary-outputs with no fanin.
Definition: atom_netlist_utils.cpp:1113
vtr::StrongId< atom_block_id_tag > AtomBlockId
Definition: atom_netlist_fwd.h:26
void absorb_buffer_luts(AtomNetlist &netlist, int verbosity)
Modifies the netlist by absorbing buffer LUTs.
Definition: atom_netlist_utils.cpp:692
std::set< AtomNetId > find_netlist_physical_clock_nets(const AtomNetlist &netlist)
Returns the set of nets which drive clock pins in the netlist.
Definition: atom_netlist_utils.cpp:1326
This file defines the AtomNetlist class used to store and manipulate the primitive (or atom) netlist...
bool truth_table_encodes_on_set(const AtomNetlist::TruthTable &truth_table)
Deterimine whether a truth table encodes the logic functions 'On' set (returns true) or 'Off' set (re...
Definition: atom_netlist_utils.cpp:1172