Line 42... |
Line 42... |
sc_logic ack_lv_high, ack_lv_low; // the sc_logic ack
|
sc_logic ack_lv_high, ack_lv_low; // the sc_logic ack
|
|
|
// read the ack
|
// read the ack
|
#ifdef ENABLE_CHANNEL_CLISING
|
#ifdef ENABLE_CHANNEL_CLISING
|
ack_lv_high = rtia.read().and_reduce();
|
ack_lv_high = rtia.read().and_reduce();
|
ack_lv_high = rtia.read().or_reduce();
|
ack_lv_low = rtia.read().or_reduce();
|
#else
|
#else
|
ack_lv_high = rtia.read();
|
ack_lv_high = rtia.read();
|
ack_lv_high = rtia.read();
|
ack_lv_low = rtia.read();
|
#endif
|
#endif
|
|
|
if(ack_lv_high.is_01() && ack_lv_high.to_bool())
|
if(ack_lv_high.is_01() && ack_lv_high.to_bool())
|
rtinp_sig = true;
|
rtinp_sig = true;
|
|
|
Line 65... |
Line 65... |
data_lv = rtod[0].read() | rtod[1].read() | rtod[2].read() | rtod[3].read() | rtod4.read();
|
data_lv = rtod[0].read() | rtod[1].read() | rtod[2].read() | rtod[3].read() | rtod4.read();
|
data_lv_high = data_lv.and_reduce();
|
data_lv_high = data_lv.and_reduce();
|
data_lv_low = data_lv.or_reduce();
|
data_lv_low = data_lv.or_reduce();
|
#else
|
#else
|
data_lv = rtod[0].read() | rtod[1].read() | rtod[2].read() | rtod[3].read();
|
data_lv = rtod[0].read() | rtod[1].read() | rtod[2].read() | rtod[3].read();
|
data_lv_high = data_lv.and_reduce() & rtod4.read();
|
data_lv_high = data_lv.and_reduce() | rtod4.read();
|
data_lv_low = data_lv.or_reduce() | rtod4.read();
|
data_lv_low = data_lv.or_reduce() | rtod4.read();
|
#endif
|
#endif
|
|
|
if(data_lv_high.is_01() && data_lv_high.to_bool())
|
if(data_lv_high.is_01() && data_lv_high.to_bool())
|
rtoutp_sig = true;
|
rtoutp_sig = true;
|
Line 246... |
Line 246... |
for(j=0; j<4; j++) {
|
for(j=0; j<4; j++) {
|
dd[0] = mdata[0][i*4+j];
|
dd[0] = mdata[0][i*4+j];
|
dd[1] = mdata[1][i*4+j];
|
dd[1] = mdata[1][i*4+j];
|
dd[2] = mdata[2][i*4+j];
|
dd[2] = mdata[2][i*4+j];
|
dd[3] = mdata[3][i*4+j];
|
dd[3] = mdata[3][i*4+j];
|
mflit[i-1] |= c1o42b(dd.to_uint()) << j;
|
mflit[i-1] |= c1o42b(dd.to_uint()) << j*2;
|
}
|
}
|
}
|
}
|
} else if (mflit.ftype != F_TL) {
|
} else if (mflit.ftype != F_TL) {
|
// fill in data
|
// fill in data
|
for(i=0; i<ChBW; i++) {
|
for(i=0; i<ChBW; i++) {
|
for(j=0; j<4; j++) {
|
for(j=0; j<4; j++) {
|
dd[0] = mdata[0][i*4+j];
|
dd[0] = mdata[0][i*4+j];
|
dd[1] = mdata[1][i*4+j];
|
dd[1] = mdata[1][i*4+j];
|
dd[2] = mdata[2][i*4+j];
|
dd[2] = mdata[2][i*4+j];
|
dd[3] = mdata[3][i*4+j];
|
dd[3] = mdata[3][i*4+j];
|
mflit[i] |= c1o42b(dd.to_uint()) << j;
|
mflit[i] |= c1o42b(dd.to_uint()) << j*2;
|
}
|
}
|
}
|
}
|
}
|
}
|
|
|
// send the flit to the NI
|
// send the flit to the NI
|