Verilog to Routing - VPR
Public Types | Public Member Functions | Private Member Functions | Private Attributes
AtomNetlist Class Reference

#include <atom_netlist.h>

Inheritance diagram for AtomNetlist:
Inheritance graph
[legend]
Collaboration diagram for AtomNetlist:
Collaboration graph
[legend]

Public Types

typedef std::vector< std::vector< vtr::LogicValue > > TruthTable
 
- Public Types inherited from Netlist< AtomBlockId, AtomPortId, AtomPinId, AtomNetId >
typedef vtr::vector_map< AtomBlockId, AtomBlockId >::const_iterator block_iterator
 
typedef std::unordered_map< std::string, std::string >::const_iterator attr_iterator
 
typedef std::unordered_map< std::string, std::string >::const_iterator param_iterator
 
typedef vtr::vector_map< AtomNetId, AtomNetId >::const_iterator net_iterator
 
typedef vtr::vector_map< AtomPinId, AtomPinId >::const_iterator pin_iterator
 
typedef vtr::vector_map< AtomPortId, AtomPortId >::const_iterator port_iterator
 
typedef vtr::Range< block_iteratorblock_range
 
typedef vtr::Range< attr_iteratorattr_range
 
typedef vtr::Range< param_iteratorparam_range
 
typedef vtr::Range< net_iteratornet_range
 
typedef vtr::Range< pin_iteratorpin_range
 
typedef vtr::Range< port_iteratorport_range
 
typedef NetlistIdRemapper< AtomBlockId, AtomPortId, AtomPinId, AtomNetIdIdRemapper
 

Public Member Functions

 AtomNetlist (std::string name="", std::string id="")
 Constructs a netlist. More...
 
AtomBlockType block_type (const AtomBlockId id) const
 Returns the type of the specified block. More...
 
const t_model * block_model (const AtomBlockId id) const
 Returns the model associated with the block. More...
 
const TruthTableblock_truth_table (const AtomBlockId id) const
 Returns the truth table associated with the block. More...
 
const t_model_ports * port_model (const AtomPortId id) const
 Returns the model port of the specified port or nullptr if not. More...
 
AtomPortId find_atom_port (const AtomBlockId blk_id, const t_model_ports *model_port) const
 Returns the AtomPortId of the specifed port if it exists or AtomPortId::INVALID() if not. More...
 
AtomBlockId find_atom_pin_driver (const AtomBlockId blk_id, const t_model_ports *model_port, const BitIndex port_bit) const
 Returns the AtomBlockId of the atom driving the specified pin if it exists or AtomBlockId::INVALID() if not. More...
 
std::unordered_set< std::string > net_aliases (const std::string net_name) const
 Returns the a set of aliases relative to the net name. More...
 
AtomBlockId create_block (const std::string name, const t_model *model, const TruthTable truth_table=TruthTable())
 Create or return an existing block in the netlist. More...
 
AtomPortId create_port (const AtomBlockId blk_id, const t_model_ports *model_port)
 Create or return an existing port in the netlist. More...
 
AtomPinId create_pin (const AtomPortId port_id, BitIndex port_bit, const AtomNetId net_id, const PinType pin_type, bool is_const=false)
 Create or return an existing pin in the netlist. More...
 
AtomNetId create_net (const std::string name)
 Create an empty, or return an existing net in the netlist. More...
 
AtomNetId add_net (const std::string name, AtomPinId driver, std::vector< AtomPinId > sinks)
 Create a completely specified net from specified driver and sinks. More...
 
void add_net_alias (const std::string net_name, std::string alias_net_name)
 Adds a value to the net aliases set for a given net name in the net_aliases_map. More...
 
- Public Member Functions inherited from Netlist< AtomBlockId, AtomPortId, AtomPinId, AtomNetId >
 Netlist (std::string name="", std::string id="")
 
virtual ~Netlist ()
 
const std::string & netlist_name () const
 Retrieve the name of the netlist. More...
 
const std::string & netlist_id () const
 Retrieve the unique identifier for this netlist This is typically a secure digest of the input file. More...
 
bool verify () const
 Sanity check for internal consistency (throws an exception on failure) More...
 
bool is_dirty () const
 Returns true if the netlist has invalid entries due to modifications (e.g. from remove_*() calls) More...
 
bool is_compressed () const
 Returns true if the netlist has no invalid entries due to modifications (e.g. from remove_*() calls) More...
 
void print_stats () const
 Item counts and container info (for debugging) More...
 
const std::string & block_name (const AtomBlockId blk_id) const
 Returns the name of the specified block. More...
 
bool block_is_combinational (const AtomBlockId blk_id) const
 Returns true if the block is purely combinational (i.e. no input clocks and not a primary input. More...
 
attr_range block_attrs (const AtomBlockId blk_id) const
 Returns a range of all attributes associated with the specified block. More...
 
param_range block_params (const AtomBlockId blk_id) const
 Returns a range of all parameters associated with the specified block. More...
 
pin_range block_pins (const AtomBlockId blk_id) const
 Returns a range of all pins associated with the specified block. More...
 
pin_range block_input_pins (const AtomBlockId blk_id) const
 Returns a range of all input pins associated with the specified block. More...
 
pin_range block_output_pins (const AtomBlockId blk_id) const
 Returns a range of all output pins associated with the specified block. More...
 
pin_range block_clock_pins (const AtomBlockId blk_id) const
 Returns a range of all clock pins associated with the specified block. More...
 
port_range block_ports (const AtomBlockId blk_id) const
 Returns a range of all ports associated with the specified block. More...
 
port_range block_input_ports (const AtomBlockId blk_id) const
 Returns a range consisting of the input ports associated with the specified block. More...
 
port_range block_output_ports (const AtomBlockId blk_id) const
 Returns a range consisting of the output ports associated with the specified block. More...
 
port_range block_clock_ports (const AtomBlockId blk_id) const
 Returns a range consisting of the input clock ports associated with the specified block. More...
 
void remove_block (const AtomBlockId blk_id)
 Removes a block from the netlist. This will also remove the associated ports and pins. More...
 
const std::string & port_name (const AtomPortId port_id) const
 Returns the name of the specified port. More...
 
AtomBlockId port_block (const AtomPortId port_id) const
 Returns the block associated with the specified port. More...
 
pin_range port_pins (const AtomPortId port_id) const
 Returns the set of valid pins associated with the port. More...
 
AtomPinId port_pin (const AtomPortId port_id, const BitIndex port_bit) const
 Returns the pin (potentially invalid) associated with the specified port and port bit index. More...
 
AtomNetId port_net (const AtomPortId port_id, const BitIndex port_bit) const
 Returns the net (potentially invalid) associated with the specified port and port bit index. More...
 
BitIndex port_width (const AtomPortId port_id) const
 Returns the width (number of bits) in the specified port. More...
 
PortType port_type (const AtomPortId port_id) const
 Returns the type of the specified port. More...
 
void remove_port (const AtomPortId port_id)
 Removes a port from the netlist. More...
 
std::string pin_name (const AtomPinId pin_id) const
 Returns the constructed name (derived from block and port) for the specified pin. More...
 
PinType pin_type (const AtomPinId pin_id) const
 Returns the type of the specified pin. More...
 
AtomNetId pin_net (const AtomPinId pin_id) const
 Returns the net associated with the specified pin. More...
 
int pin_net_index (const AtomPinId pin_id) const
 Returns the index of the specified pin within it's connected net. More...
 
AtomPortId pin_port (const AtomPinId pin_id) const
 Returns the port associated with the specified pin. More...
 
BitIndex pin_port_bit (const AtomPinId pin_id) const
 Returns the port bit index associated with the specified pin. More...
 
AtomBlockId pin_block (const AtomPinId pin_id) const
 Returns the block associated with the specified pin. More...
 
PortType pin_port_type (const AtomPinId pin_id) const
 Returns the port type associated with the specified pin. More...
 
bool pin_is_constant (const AtomPinId pin_id) const
 Returns true if the pin is a constant (i.e. its value never changes) More...
 
void remove_pin (const AtomPinId pin_id)
 Removes a pin from the netlist. More...
 
const std::string & net_name (const AtomNetId net_id) const
 Returns the name of the specified net. More...
 
pin_range net_pins (const AtomNetId net_id) const
 Returns a range consisting of all the pins in the net (driver and sinks) More...
 
AtomPinId net_pin (const AtomNetId net_id, int net_pin_index) const
 Returns the net_pin_index'th pin of the specified net. More...
 
AtomBlockId net_pin_block (const AtomNetId net_id, int net_pin_index) const
 Returns the block associated with the net_pin_index'th pin of the specified net. More...
 
AtomPinId net_driver (const AtomNetId net_id) const
 Returns the (potentially invalid) net driver pin. More...
 
AtomBlockId net_driver_block (const AtomNetId net_id) const
 Returns the (potentially invalid) net driver block. More...
 
pin_range net_sinks (const AtomNetId net_id) const
 Returns a (potentially empty) range consisting of net's sink pins. More...
 
bool net_is_constant (const AtomNetId net_id) const
 Returns true if the net is driven by a constant pin (i.e. its value never changes) More...
 
void remove_net (const AtomNetId net_id)
 Removes a net from the netlist. More...
 
void remove_net_pin (const AtomNetId net_id, const AtomPinId pin_id)
 Removes a connection betwen a net and pin. More...
 
block_range blocks () const
 Returns a range consisting of all blocks in the netlist. More...
 
port_range ports () const
 Returns a range consisting of all ports in the netlist. More...
 
net_range nets () const
 Returns a range consisting of all nets in the netlist. More...
 
pin_range pins () const
 Returns a range consisting of all pins in the netlist. More...
 
bool valid_block_id (AtomBlockId block_id) const
 
bool valid_port_id (AtomPortId port_id) const
 
bool valid_port_bit (AtomPortId port_id, BitIndex port_bit) const
 
bool valid_pin_id (AtomPinId pin_id) const
 
bool valid_net_id (AtomNetId net_id) const
 
AtomBlockId find_block (const std::string &name) const
 Returns the BlockId of the specified block or BlockId::INVALID() if not found. More...
 
AtomPortId find_port (const AtomBlockId blk_id, const std::string &name) const
 Returns the PortId of the specifed port if it exists or PortId::INVALID() if not. More...
 
AtomNetId find_net (const std::string &name) const
 Returns the NetId of the specified net or NetId::INVALID() if not found. More...
 
AtomPinId find_pin (const AtomPortId port_id, BitIndex port_bit) const
 Returns the PinId of the specified pin or PinId::INVALID() if not found. More...
 
AtomPinId find_pin (const std::string name) const
 Returns the PinId of the specified pin or PinId::INVALID() if not found. More...
 
void set_pin_net (const AtomPinId pin, PinType pin_type, const AtomNetId net)
 Add the specified pin to the specified net as pin_type. More...
 
void set_pin_is_constant (const AtomPinId pin_id, const bool value)
 Mark a pin as being a constant generator. More...
 
void set_block_name (const AtomBlockId blk_id, const std::string new_name)
 Re-name a block. More...
 
void set_block_attr (const AtomBlockId blk_id, const std::string &name, const std::string &value)
 Set a block attribute. More...
 
void set_block_param (const AtomBlockId blk_id, const std::string &name, const std::string &value)
 Set a block parameter. More...
 
void merge_nets (const AtomNetId driver_net, const AtomNetId sink_net)
 Merges sink_net into driver_net. More...
 
IdRemapper remove_and_compress ()
 Wrapper for remove_unused() & compress() More...
 
void remove_unused ()
 This should be called after completing a series of netlist modifications (e.g. removing blocks/ports/pins/nets). More...
 
IdRemapper compress ()
 Compresses the netlist, removing any invalid and/or unreferenced blocks/ports/pins/nets. More...
 

Private Member Functions

void remove_block_impl (const AtomBlockId blk_id) override
 
void remove_port_impl (const AtomPortId port_id) override
 
void remove_pin_impl (const AtomPinId pin_id) override
 
void remove_net_impl (const AtomNetId net_id) override
 
void clean_blocks_impl (const vtr::vector_map< AtomBlockId, AtomBlockId > &block_id_map) override
 
void clean_ports_impl (const vtr::vector_map< AtomPortId, AtomPortId > &port_id_map) override
 
void clean_pins_impl (const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map) override
 
void clean_nets_impl (const vtr::vector_map< AtomNetId, AtomNetId > &net_id_map) override
 
void rebuild_block_refs_impl (const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map, const vtr::vector_map< AtomPortId, AtomPortId > &port_id_map) override
 
void rebuild_port_refs_impl (const vtr::vector_map< AtomBlockId, AtomBlockId > &block_id_map, const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map) override
 
void rebuild_pin_refs_impl (const vtr::vector_map< AtomPortId, AtomPortId > &port_id_map, const vtr::vector_map< AtomNetId, AtomNetId > &net_id_map) override
 
void rebuild_net_refs_impl (const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map) override
 
void shrink_to_fit_impl () override
 Shrinks internal data structures to required size to reduce memory consumption. More...
 
bool validate_block_sizes_impl (size_t num_blocks) const override
 
bool validate_port_sizes_impl (size_t num_ports) const override
 
bool validate_pin_sizes_impl (size_t num_pins) const override
 
bool validate_net_sizes_impl (size_t num_nets) const override
 

Private Attributes

vtr::vector_map< AtomBlockId, const t_model * > block_models_
 
vtr::vector_map< AtomBlockId, TruthTableblock_truth_tables_
 
vtr::vector_map< AtomPortId, const t_model_ports * > port_models_
 
std::unordered_map< std::string, std::unordered_set< std::string > > net_aliases_map_
 

Additional Inherited Members

- Protected Types inherited from Netlist< AtomBlockId, AtomPortId, AtomPinId, AtomNetId >
typedef vtr::StrongId< string_id_tag > StringId
 A unique identifier for a string in the netlist. More...
 
- Protected Member Functions inherited from Netlist< AtomBlockId, AtomPortId, AtomPinId, AtomNetId >
AtomBlockId find_block (const StringId name_id) const
 Returns the BlockId of the specifed block if it exists or BlockId::INVALID() if not. More...
 
AtomNetId find_net (const StringId name_id) const
 Returns the NetId of the specifed port if it exists or NetId::INVALID() if not. More...
 
AtomBlockId create_block (const std::string name)
 Create or return an existing block in the netlist. More...
 
AtomPortId create_port (const AtomBlockId blk_id, const std::string name, BitIndex width, PortType type)
 Create or return an existing port in the netlist. More...
 
AtomPinId create_pin (const AtomPortId port_id, BitIndex port_bit, const AtomNetId net_id, const PinType pin_type, bool is_const=false)
 Create or return an existing pin in the netlist. More...
 
AtomNetId create_net (const std::string name)
 Create an empty, or return an existing net in the netlist. More...
 
AtomNetId add_net (const std::string name, AtomPinId driver, std::vector< AtomPinId > sinks)
 Create a completely specified net from specified driver and sinks. More...
 
StringId find_string (const std::string &str) const
 Returns the StringId of the specifed string if it exists or StringId::INVALID() if not. More...
 
StringId create_string (const std::string &str)
 Create or return the ID of the specified string. More...
 
int associate_pin_with_net (const AtomPinId pin_id, const PinType type, const AtomNetId net_id)
 Updates net cross-references for the specified pin. More...
 
void associate_pin_with_port (const AtomPinId pin_id, const AtomPortId port_id)
 Updates port cross-references for the specified pin. More...
 
void associate_pin_with_block (const AtomPinId pin_id, const PortType type, const AtomBlockId blk_id)
 Updates block cross-references for the specified pin. More...
 
void associate_port_with_block (const AtomPortId port_id, const PortType type, const AtomBlockId blk_id)
 Updates block cross-references for the specified port. More...
 
IdRemapper build_id_maps ()
 Builds the new mappings from old to new IDs. More...
 
void clean_blocks (const vtr::vector_map< AtomBlockId, AtomBlockId > &block_id_map)
 Removes invalid and reorders blocks. More...
 
void clean_ports (const vtr::vector_map< AtomPortId, AtomPortId > &port_id_map)
 Removes invalid and reorders ports. More...
 
void clean_pins (const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map)
 Removes invalid and reorders pins. More...
 
void clean_nets (const vtr::vector_map< AtomNetId, AtomNetId > &net_id_map)
 Removes invalid and reorders nets. More...
 
void rebuild_lookups ()
 Re-builds fast look-ups. More...
 
void rebuild_block_refs (const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map, const vtr::vector_map< AtomPortId, AtomPortId > &port_id_map)
 Re-builds cross-references held by blocks. More...
 
void rebuild_port_refs (const vtr::vector_map< AtomBlockId, AtomBlockId > &block_id_map, const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map)
 Re-builds cross-references held by ports. More...
 
void rebuild_pin_refs (const vtr::vector_map< AtomPortId, AtomPortId > &port_id_map, const vtr::vector_map< AtomNetId, AtomNetId > &net_id_map)
 Re-builds cross-references held by pins. More...
 
void rebuild_net_refs (const vtr::vector_map< AtomPinId, AtomPinId > &pin_id_map)
 Re-builds cross-references held by nets. More...
 
void shrink_to_fit ()
 
bool verify_sizes () const
 
bool validate_block_sizes () const
 
bool validate_port_sizes () const
 
bool validate_pin_sizes () const
 
bool validate_net_sizes () const
 
bool validate_string_sizes () const
 
bool verify_refs () const
 
bool validate_block_port_refs () const
 
bool validate_block_pin_refs () const
 
bool validate_port_pin_refs () const
 
bool validate_net_pin_refs () const
 
bool validate_string_refs () const
 
bool verify_block_invariants () const
 Verify that block invariants hold (i.e. logical consistency) More...
 
bool verify_lookups () const
 Verify that fast-lookups are consistent with internal data structures. More...
 
bool valid_string_id (StringId string_id) const
 Validates that the specified ID is valid in the current netlist state. More...
 
- Static Protected Attributes inherited from Netlist< AtomBlockId, AtomPortId, AtomPinId, AtomNetId >
static constexpr int INVALID_INDEX
 
static constexpr int NET_DRIVER_INDEX
 

Member Typedef Documentation

◆ TruthTable

typedef std::vector<std::vector<vtr::LogicValue> > AtomNetlist::TruthTable

Constructor & Destructor Documentation

◆ AtomNetlist()

AtomNetlist::AtomNetlist ( std::string  name = "",
std::string  id = "" 
)

Constructs a netlist.

Parameters
namethe name of the netlist (e.g. top-level module)
ida unique identifier for the netlist (e.g. a secure digest of the input file)

Member Function Documentation

◆ add_net()

AtomNetId AtomNetlist::add_net ( const std::string  name,
AtomPinId  driver,
std::vector< AtomPinId sinks 
)

Create a completely specified net from specified driver and sinks.

Parameters
nameThe name of the net (Note: must not already exist)
driverThe net's driver pin
sinksThe net's sink pins

◆ add_net_alias()

void AtomNetlist::add_net_alias ( const std::string  net_name,
std::string  alias_net_name 
)

Adds a value to the net aliases set for a given net name in the net_aliases_map.

If there is no key/value pair in the net_aliases_map, creates a new set and adds it to the map.

Parameters
net_nameThe net to be added to the map
alias_net_nameThe alias of the assigned clock net id

◆ block_model()

const t_model * AtomNetlist::block_model ( const AtomBlockId  id) const

Returns the model associated with the block.

◆ block_truth_table()

const AtomNetlist::TruthTable & AtomNetlist::block_truth_table ( const AtomBlockId  id) const

Returns the truth table associated with the block.

Note
This is only non-empty for LUTs and Flip-Flops/latches.

For LUTs the truth table stores the single-output cover representing the logic function.

For FF/Latches there is only a single entry representing the initial state

◆ block_type()

AtomBlockType AtomNetlist::block_type ( const AtomBlockId  id) const

Returns the type of the specified block.

◆ clean_blocks_impl()

void AtomNetlist::clean_blocks_impl ( const vtr::vector_map< AtomBlockId, AtomBlockId > &  block_id_map)
overrideprivatevirtual

◆ clean_nets_impl()

void AtomNetlist::clean_nets_impl ( const vtr::vector_map< AtomNetId, AtomNetId > &  net_id_map)
overrideprivatevirtual

◆ clean_pins_impl()

void AtomNetlist::clean_pins_impl ( const vtr::vector_map< AtomPinId, AtomPinId > &  pin_id_map)
overrideprivatevirtual

◆ clean_ports_impl()

void AtomNetlist::clean_ports_impl ( const vtr::vector_map< AtomPortId, AtomPortId > &  port_id_map)
overrideprivatevirtual

◆ create_block()

AtomBlockId AtomNetlist::create_block ( const std::string  name,
const t_model *  model,
const TruthTable  truth_table = TruthTable() 
)

Create or return an existing block in the netlist.

Parameters
nameThe unique name of the block
modelThe primitive type of the block
truth_tableThe single-output cover defining the block's logic function The truth_table is optional and only relevant for LUTs (where it describes the logic function) and Flip-Flops/latches (where it consists of a single entry defining the initial state).

◆ create_net()

AtomNetId AtomNetlist::create_net ( const std::string  name)

Create an empty, or return an existing net in the netlist.

Parameters
nameThe unique name of the net

◆ create_pin()

AtomPinId AtomNetlist::create_pin ( const AtomPortId  port_id,
BitIndex  port_bit,
const AtomNetId  net_id,
const PinType  pin_type,
bool  is_const = false 
)

Create or return an existing pin in the netlist.

Parameters
port_idThe port this pin is associated with
port_bitThe bit index of the pin in the port
net_idThe net the pin drives/sinks
pin_typeThe type of the pin (driver/sink)
is_constIndicates whether the pin holds a constant value (e. g. vcc/gnd)

◆ create_port()

AtomPortId AtomNetlist::create_port ( const AtomBlockId  blk_id,
const t_model_ports *  model_port 
)

Create or return an existing port in the netlist.

FIXME: Correct parameter description: name The name of the port (must match the name of a port in the block's model)

Parameters
blk_idThe block the port is associated with

◆ find_atom_pin_driver()

AtomBlockId AtomNetlist::find_atom_pin_driver ( const AtomBlockId  blk_id,
const t_model_ports *  model_port,
const BitIndex  port_bit 
) const

Returns the AtomBlockId of the atom driving the specified pin if it exists or AtomBlockId::INVALID() if not.

Parameters
blk_idThe ID of the block whose ports will be checked
model_portThe port model to look for
port_bitThe pin number in this port

◆ find_atom_port()

AtomPortId AtomNetlist::find_atom_port ( const AtomBlockId  blk_id,
const t_model_ports *  model_port 
) const

Returns the AtomPortId of the specifed port if it exists or AtomPortId::INVALID() if not.

Note
This method is typically more efficient than searching by name
Parameters
blk_idThe ID of the block who's ports will be checked
model_portThe port model to look for

◆ net_aliases()

std::unordered_set< std::string > AtomNetlist::net_aliases ( const std::string  net_name) const

Returns the a set of aliases relative to the net name.

If no aliases are found, returns a set with the original net name.

Parameters
net_namename of the net from which the aliases are extracted

◆ port_model()

const t_model_ports * AtomNetlist::port_model ( const AtomPortId  id) const

Returns the model port of the specified port or nullptr if not.

Parameters
idThe ID of the port to look for

◆ rebuild_block_refs_impl()

void AtomNetlist::rebuild_block_refs_impl ( const vtr::vector_map< AtomPinId, AtomPinId > &  pin_id_map,
const vtr::vector_map< AtomPortId, AtomPortId > &  port_id_map 
)
overrideprivatevirtual

◆ rebuild_net_refs_impl()

void AtomNetlist::rebuild_net_refs_impl ( const vtr::vector_map< AtomPinId, AtomPinId > &  pin_id_map)
overrideprivatevirtual

◆ rebuild_pin_refs_impl()

void AtomNetlist::rebuild_pin_refs_impl ( const vtr::vector_map< AtomPortId, AtomPortId > &  port_id_map,
const vtr::vector_map< AtomNetId, AtomNetId > &  net_id_map 
)
overrideprivatevirtual

◆ rebuild_port_refs_impl()

void AtomNetlist::rebuild_port_refs_impl ( const vtr::vector_map< AtomBlockId, AtomBlockId > &  block_id_map,
const vtr::vector_map< AtomPinId, AtomPinId > &  pin_id_map 
)
overrideprivatevirtual

◆ remove_block_impl()

void AtomNetlist::remove_block_impl ( const AtomBlockId  blk_id)
overrideprivatevirtual

◆ remove_net_impl()

void AtomNetlist::remove_net_impl ( const AtomNetId  net_id)
overrideprivatevirtual

◆ remove_pin_impl()

void AtomNetlist::remove_pin_impl ( const AtomPinId  pin_id)
overrideprivatevirtual

◆ remove_port_impl()

void AtomNetlist::remove_port_impl ( const AtomPortId  port_id)
overrideprivatevirtual

◆ shrink_to_fit_impl()

void AtomNetlist::shrink_to_fit_impl ( )
overrideprivatevirtual

Shrinks internal data structures to required size to reduce memory consumption.

Implements Netlist< AtomBlockId, AtomPortId, AtomPinId, AtomNetId >.

◆ validate_block_sizes_impl()

bool AtomNetlist::validate_block_sizes_impl ( size_t  num_blocks) const
overrideprivatevirtual

◆ validate_net_sizes_impl()

bool AtomNetlist::validate_net_sizes_impl ( size_t  num_nets) const
overrideprivatevirtual

◆ validate_pin_sizes_impl()

bool AtomNetlist::validate_pin_sizes_impl ( size_t  num_pins) const
overrideprivatevirtual

◆ validate_port_sizes_impl()

bool AtomNetlist::validate_port_sizes_impl ( size_t  num_ports) const
overrideprivatevirtual

Field Documentation

◆ block_models_

vtr::vector_map<AtomBlockId, const t_model*> AtomNetlist::block_models_
private

◆ block_truth_tables_

vtr::vector_map<AtomBlockId, TruthTable> AtomNetlist::block_truth_tables_
private

◆ net_aliases_map_

std::unordered_map<std::string, std::unordered_set<std::string> > AtomNetlist::net_aliases_map_
private

◆ port_models_

vtr::vector_map<AtomPortId, const t_model_ports*> AtomNetlist::port_models_
private

The documentation for this class was generated from the following files: