5
5
6
6
#include " physical_types.h"
7
7
8
- /* Lists all the important information about an rr switch type. *
9
- * The s_rr_switch_inf describes a switch derived from a switch described *
10
- * by s_arch_switch_inf. This indirection allows us to vary properties of a *
11
- * given switch, such as varying delay with switch fan-in. *
12
- * buffered: Does this switch isolate it's input/output into separate *
13
- * DC-connected sub-circuits? *
14
- * configurable: Is this switch is configurable (i.e. can the switch can be *
15
- * turned on or off)?. This allows modelling of non-optional *
16
- * switches (e.g. fixed buffers, or shorted connections) which *
17
- * must be used (e.g. expanded by the router) if a connected *
18
- * segment is used. *
19
- * R: Equivalent resistance of the buffer/switch. *
20
- * Cin: Input capacitance. *
21
- * Cout: Output capacitance. *
22
- * Cinternal: Internal capacitance, see the definition above. *
23
- * Tdel: Intrinsic delay. The delay through an unloaded switch is *
24
- * Tdel + R * Cout. *
25
- * mux_trans_size: The area of each transistor in the segment's driving mux *
26
- * measured in minimum width transistor units *
27
- * buf_size: The area of the buffer. If set to zero, area should be *
28
- * calculated from R
29
- * intra_tile: Indicate whether this rr_switch is a switch type used inside *
30
- * clusters. These switch types are not specified in the *
31
- * architecture description file and are added when flat router *
32
- * is enabled */
8
+ /* *
9
+ * @brief Lists all the important information about an RR switch type.
10
+ *
11
+ * The t_rr_switch_inf describes a switch derived from a switch described
12
+ * by t_arch_switch_inf. This indirection allows us to vary properties of a
13
+ * given switch, such as varying delay with switch fan-in.
14
+ */
33
15
struct t_rr_switch_inf {
16
+ // / Equivalent resistance of the buffer/switch.
34
17
float R = 0 .;
18
+ // / Input capacitance.
35
19
float Cin = 0 .;
20
+ // / Output capacitance.
36
21
float Cout = 0 .;
22
+ // / Internal capacitance.
37
23
float Cinternal = 0 .;
24
+ // / Intrinsic delay. The delay through an unloaded switch is Tdel + R * Cout.
38
25
float Tdel = 0 .;
26
+ // / The area of each transistor in the segment's driving mux measured in minimum width transistor units
39
27
float mux_trans_size = 0 .;
28
+ // / The area of the buffer. If set to zero, area should be calculated from R
40
29
float buf_size = 0 .;
41
30
std::string name;
42
31
e_power_buffer_type power_buffer_type = POWER_BUFFER_TYPE_UNDEFINED;
43
32
float power_buffer_size = 0 .;
44
33
34
+ // / Indicate whether this rr_switch is a switch type used inside clusters.
35
+ // / These switch types are not specified in the architecture description file
36
+ // / and are added when flat router is enabled.
45
37
bool intra_tile = false ;
46
38
47
- public:
39
+ public: // Getters
48
40
// / Returns the type of switch
49
41
e_switch_type type () const ;
50
42
51
43
// / Returns true if this switch type isolates its input and output into
52
44
// / separate DC-connected subcircuits
53
45
bool buffered () const ;
54
46
55
- // / Returns true if this switch type is configurable
47
+ // / Returns true if this switch type is configurable (i.e. can the switch can be turned on or off)
48
+ // / This allows modelling of non-optional switches (e.g. fixed buffers, or shorted connections)
49
+ // / which must be used (e.g. expanded by the router) if a connected segment is used.
56
50
bool configurable () const ;
57
51
58
52
bool operator ==(const t_rr_switch_inf& other) const ;
@@ -67,7 +61,7 @@ struct t_rr_switch_inf {
67
61
std::size_t operator ()(const t_rr_switch_inf& s) const ;
68
62
};
69
63
70
- public:
64
+ public: // Setters
71
65
void set_type (e_switch_type type_val);
72
66
73
67
private:
0 commit comments