Horizon
components.hpp
1 #pragma once
2 #include "attribute_util.hpp"
3 #include "eda_data.hpp"
4 
5 namespace horizon::ODB {
6 
7 class Components : public AttributeProvider {
8 public:
9  class Toeprint {
10  public:
11  Toeprint(const EDAData::Pin &pin) : pin_num(pin.index), toeprint_name(pin.name)
12  {
13  }
14 
15  unsigned int pin_num;
16 
17  Placement placement;
18  unsigned int net_num = 0;
19  unsigned int subnet_num = 0;
20  std::string toeprint_name = 0;
21 
22  void write(std::ostream &ost) const;
23  };
24 
26  public:
27  Component(unsigned int i, unsigned int r) : index(i), pkg_ref(r)
28  {
29  }
30  const unsigned int index;
31  unsigned int pkg_ref;
32  Placement placement;
33 
34  std::string comp_name;
35  std::string part_name;
36 
37  std::list<Toeprint> toeprints;
38 
39  void write(std::ostream &ost) const;
40  };
41 
42  std::list<Component> components;
43 
44  void write(std::ostream &ost) const;
45 };
46 
47 } // namespace horizon::ODB
Definition: attribute_util.hpp:10
Definition: components.hpp:25
Definition: components.hpp:9
Definition: components.hpp:7
Definition: eda_data.hpp:185
Definition: attribute_util.hpp:56
Definition: placement.hpp:8