Verilog to Routing - VPR
|
Useful utilities for working with the AtomNetlist class. More...
Go to the source code of this file.
Functions | |
int | mark_constant_generators (AtomNetlist &netlist, e_const_gen_inference const_gen_inference_method, int verbosity) |
Walk through the netlist detecting constant generators. More... | |
void | absorb_buffer_luts (AtomNetlist &netlist, int verbosity) |
Modifies the netlist by absorbing buffer LUTs. More... | |
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. More... | |
size_t | sweep_blocks (AtomNetlist &netlist, int verbosity) |
Sweeps blocks that have no fanout. More... | |
size_t | sweep_nets (AtomNetlist &netlist, int verbosity) |
Sweeps nets with no drivers and/or no sinks. More... | |
size_t | sweep_inputs (AtomNetlist &netlist, int verbosity) |
Sweeps primary-inputs with no fanout. More... | |
size_t | sweep_outputs (AtomNetlist &netlist, int verbosity) |
Sweeps primary-outputs with no fanin. More... | |
size_t | sweep_constant_primary_outputs (AtomNetlist &netlist, int verbosity) |
bool | is_buffer (const AtomNetlist &netlist, const AtomBlockId blk) |
Returns true if the specified block is a logical buffer. More... | |
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 (returns false) More... | |
AtomNetlist::TruthTable | expand_truth_table (const AtomNetlist::TruthTable &truth_table, const size_t num_inputs) |
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. More... | |
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) More... | |
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. More... | |
void | print_netlist_as_blif (std::string filename, const AtomNetlist &netlist) |
void | print_netlist_as_blif (FILE *f, const AtomNetlist &netlist) |
std::string | atom_pin_arch_name (const AtomNetlist &netlist, const AtomPinId pin) |
Returns a user-friendly architectural identifier for the specified atom pin. More... | |
std::set< AtomNetId > | find_netlist_physical_clock_nets (const AtomNetlist &netlist) |
Returns the set of nets which drive clock pins in the netlist. More... | |
std::set< AtomPinId > | find_netlist_logical_clock_drivers (const AtomNetlist &netlist) |
Returns the set of pins which logically drive unique clocks in the netlist. More... | |
void | print_netlist_clock_info (const AtomNetlist &netlist) |
Prints out information about netlist clocks. More... | |
Useful utilities for working with the AtomNetlist class.
void absorb_buffer_luts | ( | AtomNetlist & | netlist, |
int | verbosity | ||
) |
Modifies the netlist by absorbing buffer LUTs.
std::string atom_pin_arch_name | ( | const AtomNetlist & | netlist, |
const AtomPinId | pin | ||
) |
Returns a user-friendly architectural identifier for the specified atom pin.
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.
AtomNetlist::TruthTable expand_truth_table | ( | const AtomNetlist::TruthTable & | truth_table, |
const size_t | num_inputs | ||
) |
Returns the truth table expanded to use num_inputs inputs. Typical usage is to expand the truth table of a LUT which is logically smaller than the one provided by the architecture (e.g. implement a 2-LUT in a 6-LUT)
truth_table | The truth table to expand |
num_inputs | The number of inputs to use |
std::set<AtomPinId> find_netlist_logical_clock_drivers | ( | const AtomNetlist & | netlist | ) |
Returns the set of pins which logically drive unique clocks in the netlist.
Returns the set of pins which logically drive unique clocks in the netlist.
std::set<AtomNetId> find_netlist_physical_clock_nets | ( | const AtomNetlist & | netlist | ) |
Returns the set of nets which drive clock pins in the netlist.
Returns the set of nets which drive clock pins in the netlist.
bool is_buffer | ( | const AtomNetlist & | netlist, |
const AtomBlockId | blk | ||
) |
Returns true if the specified block is a logical buffer.
int mark_constant_generators | ( | AtomNetlist & | netlist, |
e_const_gen_inference | const_gen_inference_method, | ||
int | verbosity | ||
) |
Walk through the netlist detecting constant generators.
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.
truth_table | The truth table to expand |
num_inputs | The number of inputs to use |
permutation | A vector indicies to permute, permutation[i] is the input pin where the signal currently connected to input i should be placed |
void print_netlist_as_blif | ( | std::string | filename, |
const AtomNetlist & | netlist | ||
) |
void print_netlist_as_blif | ( | FILE * | f, |
const AtomNetlist & | netlist | ||
) |
void print_netlist_clock_info | ( | const AtomNetlist & | netlist | ) |
Prints out information about netlist clocks.
Prints out information about netlist clocks.
size_t sweep_blocks | ( | AtomNetlist & | netlist, |
int | verbosity | ||
) |
Sweeps blocks that have no fanout.
size_t sweep_constant_primary_outputs | ( | AtomNetlist & | netlist, |
int | verbosity | ||
) |
size_t sweep_inputs | ( | AtomNetlist & | netlist, |
int | verbosity | ||
) |
Sweeps primary-inputs with no fanout.
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.
size_t sweep_nets | ( | AtomNetlist & | netlist, |
int | verbosity | ||
) |
Sweeps nets with no drivers and/or no sinks.
size_t sweep_outputs | ( | AtomNetlist & | netlist, |
int | verbosity | ||
) |
Sweeps primary-outputs with no fanin.
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 (returns false)
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)