cloudFPGA (cF) API  1.0
The documentation of the source code of cloudFPGA (cF)
memory_utils.hpp
Go to the documentation of this file.
1 
17 // *
18 // * cloudFPGA
19 // * =============================================
20 // * Created: Aug 2019
21 // * Authors: FAB, WEI, NGL
22 // *
23 // * Description:
24 // * This file contains memory types and functions that are shared accross HLS cores.
25 // *
26 // *
27 
28 #ifndef _CF_MEMORY_UTILS_
29 #define _CF_MEMORY_UTILS_
30 
31 #include <stdio.h>
32 #include <stdint.h>
33 
34 #include "ap_int.h"
35 
36 using namespace hls;
37 
38 
39 
42 class DmCmd
43 {
44  public:
45  ap_uint<23> bbt; // Bytes To Transfer
46  ap_uint<1> type; // Type of AXI4 access (0=FIXED, 1=INCR)
47  ap_uint<6> dsa; // DRE Stream Alignment
48  ap_uint<1> eof; // End of Frame
49  ap_uint<1> drr; // DRE ReAlignment Request
50  ap_uint<40> saddr; // Start Address
51  ap_uint<4> tag; // Command Tag
52  ap_uint<4> rsvd; // Reserved
53  DmCmd() {}
54  DmCmd(ap_uint<40> addr, ap_uint<16> len) :
55  bbt(len), type(1), dsa(0), eof(1), drr(1), saddr(addr), tag(0), rsvd(0) {}
56 };
57 
58 struct mmCmd
59 {
60  ap_uint<23> bbt;
61  ap_uint<1> type;
62  ap_uint<6> dsa;
63  ap_uint<1> eof;
64  ap_uint<1> drr;
65  ap_uint<40> saddr;
66  ap_uint<4> tag;
67  ap_uint<4> rsvd;
68  mmCmd() {}
69  mmCmd(ap_uint<40> addr, ap_uint<16> len) :
70  bbt(len), type(1), dsa(0), eof(1), drr(1), saddr(addr), tag(0), rsvd(0) {}
71 
72 };
73 
74 
77 class DmSts
78 {
79  public:
80  ap_uint<4> tag;
81  ap_uint<1> interr;
82  ap_uint<1> decerr;
83  ap_uint<1> slverr;
84  ap_uint<1> okay;
85  DmSts() {}
86 };
87 
88 struct mmStatus
89 {
90  ap_uint<4> tag;
91  ap_uint<1> interr;
92  ap_uint<1> decerr;
93  ap_uint<1> slverr;
94  ap_uint<1> okay;
95 };
96 
98 {
99  ap_uint<4> tag;
100  ap_uint<1> interr;
101  ap_uint<1> decerr;
102  ap_uint<1> slverr;
103  ap_uint<1> okay;
104  ap_uint<22> brc_vd;
105  ap_uint<1> eop;
106 };
107 
108 
109 #endif
110 
ap_uint< 40 > saddr
DmCmd(ap_uint< 40 > addr, ap_uint< 16 > len)
ap_uint< 1 > drr
ap_uint< 1 > eof
ap_uint< 23 > bbt
ap_uint< 4 > tag
ap_uint< 6 > dsa
ap_uint< 4 > rsvd
ap_uint< 1 > type
ap_uint< 1 > okay
ap_uint< 1 > decerr
ap_uint< 1 > slverr
ap_uint< 4 > tag
ap_uint< 1 > interr
ap_uint< 23 > bbt
ap_uint< 4 > rsvd
ap_uint< 4 > tag
ap_uint< 1 > eof
ap_uint< 6 > dsa
mmCmd(ap_uint< 40 > addr, ap_uint< 16 > len)
ap_uint< 40 > saddr
ap_uint< 1 > drr
ap_uint< 1 > type
ap_uint< 1 > okay
ap_uint< 1 > slverr
ap_uint< 1 > interr
ap_uint< 4 > tag
ap_uint< 1 > decerr
ap_uint< 22 > brc_vd
ap_uint< 1 > slverr
ap_uint< 1 > decerr
ap_uint< 1 > okay
ap_uint< 1 > eop
ap_uint< 1 > interr
ap_uint< 4 > tag