|
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 |
| 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< 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, NetTie > | net_ties |
| 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.