Horizon
Loading...
Searching...
No Matches
horizon::Block Class Reference

A block is one level of hierarchy in the netlist. More...

#include <block.hpp>

Classes

struct  NetPinsAndPorts
 Takes pins specified by pins&ports and moves them over to net. More...
struct  BlockItem

Public Member Functions

 Block (const UUID &uu, const json &, class IPool &pool, class IBlockProvider &prv)
 Block (const UUID &uu)
Netget_net (const UUID &uu)
std::string get_group_name (const UUID &uu) const
std::string get_tag_name (const UUID &uu) const
std::map< const class Part *, BOMRowget_BOM (const BOMExportSettings &settings) const
bool can_swap_gates (const UUID &comp, const UUID &g1, const UUID &g2) const
void swap_gates (const UUID &comp, const UUID &g1, const UUID &g2)
 Block (const Block &block)
void operator= (const Block &block)
void merge_nets (Net *net, Net *into)
void vacuum_nets ()
 deletes unreferenced nets
void vacuum_group_tag_names ()
Netextract_pins (const NetPinsAndPorts &pins, Net *net=nullptr)
void update_connection_count ()
void update_diffpairs ()
Netinsert_net ()
 creates new net
std::string get_net_name (const UUID &uu) const
ItemSet get_pool_items_used () const
void update_non_top (Block &other) const
void create_instance_mappings ()
Block flatten () const
UUID get_uuid () const
BlockInstanceMapping::ComponentInfo get_component_info (const Component &comp, const UUIDVec &instance_path) const
std::string get_refdes (const Component &comp, const UUIDVec &instance_path) const
void set_refdes (Component &comp, const UUIDVec &instance_path, const std::string &rd)
void set_nopopulate (Component &comp, const UUIDVec &instance_path, bool nopopulate)
std::vector< BlockItem< false > > get_instantiated_blocks ()
std::vector< BlockItem< true > > get_instantiated_blocks () const
std::vector< BlockItem< false > > get_instantiated_blocks_and_top ()
std::vector< BlockItem< true > > get_instantiated_blocks_and_top () const
std::string instance_path_to_string (const UUIDVec &instance_path) const
bool can_delete_power_net (const UUID &uu) const
bool can_add_block_instance (const UUID &where, const UUID &block_inst) const
json serialize () const

Static Public Member Functions

static Block new_from_file (const std::string &filename, IPool &pool, class IBlockProvider &prv)
static std::map< std::string, std::string > peek_project_meta (const std::string &filename)
static std::set< UUIDpeek_instantiated_blocks (const std::string &filename)
static bool instance_path_too_long (const UUIDVec &path, const char *funcname)

Public Attributes

UUID uuid
std::string name
std::map< UUID, Netnets
std::map< UUID, NetTienet_ties
std::map< UUID, Busbuses
std::map< UUID, Componentcomponents
std::map< UUID, BlockInstanceblock_instances
std::map< UUID, NetClassnet_classes
uuid_ptr< NetClassnet_class_default = nullptr
std::map< UUIDVec, BlockInstanceMappingblock_instance_mappings
std::map< UUID, std::string > group_names
std::map< UUID, std::string > tag_names
std::map< std::string, std::string > project_meta
BOMExportSettings bom_export_settings

Static Public Attributes

static const size_t max_instance_path_len = 10

Detailed Description

A block is one level of hierarchy in the netlist.

Right now, horizon doesn't support hierarchical designs, but provisions have been made where necessary.

A block stores Components (instances of Entities), Buses and Nets.

Member Function Documentation

◆ insert_net()

Net * horizon::Block::insert_net ( )

creates new net

Returns
pointer to new Net

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