DataStructs.h

Posted cpsmile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataStructs.h相关的知识,希望对你有一定的参考价值。

1 #ifndef _DATASTRUCS_H__
2 #define _DATASTRUCS_H__
3 
4 #include <systemc.h>
5 #include "GlobalParams.h"
6 
7 ................省略内容
8 
9 #endif

 

技术分享图片
 1 // Coord -- XY coordinates type of the Tile inside the Mesh
 2 class Coord {
 3   public:
 4     int x;            // X coordinate
 5     int y;            // Y coordinate
 6     //操作符重载,调用方式if(c1 == c2)
 7     //括号中的const表示参数coord对象不会被修改,最后的const表明调用函数对象不会被修改
 8     inline bool operator ==(const Coord & coord) const {
 9     return (coord.x == x && coord.y == y);
10 }};
class Coord

 

1 // FlitType -- Flit type enumeration
2 enum FlitType {
3     FLIT_TYPE_HEAD, FLIT_TYPE_BODY, FLIT_TYPE_TAIL
4 };

 

技术分享图片

payload可以是flit,也可以是credit

技术分享图片
1 // Payload -- Payload definition
2 struct Payload {
3     //sc_uint为无符号整数类型
4     sc_uint<32> data;    // Bus for the data to be exchanged
5 
6     inline bool operator ==(const Payload & payload) const {
7     return (payload.data == data);
8 }};
struct Payload

 

技术分享图片
 1 // Packet -- Packet definition
 2 struct Packet {
 3     int src_id;
 4     int dst_id;
 5     double timestamp;        // SC timestamp at packet generation
 6     int size;
 7     int flit_left;        // Number of remaining flits inside the packet
 8     bool use_low_voltage_path;
 9 
10     // Constructors
11     Packet() { }
12 
13     Packet(const int s, const int d, const double ts, const int sz) {
14     make(s, d, ts, sz);
15     }
16     //初始化packet
17     void make(const int s, const int d, const double ts, const int sz) {
18     src_id = s;
19     dst_id = d;
20     timestamp = ts;
21     size = sz;
22     flit_left = sz;
23     use_low_voltage_path = false;
24     }
25 };
struct Packet

 

技术分享图片
 1 // Flit -- Flit definition
 2 struct Flit {
 3     int src_id;
 4     int dst_id;
 5     FlitType flit_type;    // The flit type (FLIT_TYPE_HEAD, FLIT_TYPE_BODY, FLIT_TYPE_TAIL)
 6     int sequence_no;        // The sequence number of the flit inside the packet
 7     int sequence_length;
 8     Payload payload;    // Optional payload
 9     double timestamp;        // Unix timestamp at packet generation
10     int hop_no;            // Current number of hops from source to destination
11     bool use_low_voltage_path;
12     //操作符重载
13     inline bool operator ==(const Flit & flit) const {
14     return (flit.src_id == src_id && flit.dst_id == dst_id
15         && flit.flit_type == flit_type
16         && flit.sequence_no == sequence_no
17         && flit.sequence_length == sequence_length
18         && flit.payload == payload && flit.timestamp == timestamp
19         && flit.hop_no == hop_no
20         && flit.use_low_voltage_path == use_low_voltage_path);
21 }};
struct Flit

 

技术分享图片
1 // RouteData -- data required to perform routing
2 struct RouteData {
3     int current_id;
4     int src_id;
5     int dst_id;
6     int dir_in;            // direction from which the packet comes from
7 };
struct RouteData

 

技术分享图片
1 struct ChannelStatus {
2     int free_slots;        // occupied buffer slots
3     bool available;        // 
4 
5     inline bool operator ==(const ChannelStatus & bs) const {
6     return (free_slots == bs.free_slots && available == bs.available);
7     };
8 };
struct ChannelStatus

 

以上是关于DataStructs.h的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器