Horizon
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
horizon::Block Class Reference

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

#include <block.hpp>

Classes

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

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: