Horizon
|
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) | |
Net * | get_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 *, BOMRow > | get_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 () |
Net * | extract_pins (const NetPinsAndPorts &pins, Net *net=nullptr) |
void | update_connection_count () |
void | update_diffpairs () |
Net * | insert_net () |
creates new net More... | |
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 |
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< UUID > | peek_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, Net > | nets |
std::map< UUID, Bus > | buses |
std::map< UUID, Component > | components |
std::map< UUID, BlockInstance > | block_instances |
std::map< UUID, NetClass > | net_classes |
uuid_ptr< NetClass > | net_class_default = nullptr |
std::map< UUIDVec, BlockInstanceMapping > | block_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 |
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.