working read retrans
This commit is contained in:
parent
be1f14c867
commit
12478f220f
|
@ -212,7 +212,7 @@ void rx_process_exh(
|
|||
if (!input.empty())
|
||||
{
|
||||
input.read(currWord);
|
||||
std::cout << "[RX PROCESS EXH" << INSTID << "]: EXH NO HEADER" << std::endl;
|
||||
std::cout << "[RX PROCESS EXH " << INSTID << "]: EXH NO HEADER" << std::endl;
|
||||
#ifdef DBG_FULL
|
||||
std::cout << "\t";
|
||||
print(std::cout, currWord);
|
||||
|
@ -333,8 +333,9 @@ void rx_ibh_fsm(
|
|||
#if RETRANS_EN
|
||||
|
||||
//CASE Requester: Update oldest-unacked-reqeust
|
||||
if (isResponse && !emeta.isNak)
|
||||
if (isResponse && !emeta.isNak && meta.op_code != RC_RDMA_READ_RESP_FIRST && meta.op_code != RC_RDMA_READ_RESP_MIDDLE)
|
||||
{
|
||||
// TODO: not clear for READ_RESP_FIRST
|
||||
std::cout << std::hex <<"[RX IBH FSM " << INSTID << "]: retrans release, psn " << meta.psn << std::endl;
|
||||
rx2retrans_release_upd.write(retransRelease(meta.dest_qp, meta.psn));
|
||||
}
|
||||
|
@ -1633,7 +1634,7 @@ void generate_exh(
|
|||
packetInfoFifo.write(info);
|
||||
|
||||
sendWord.keep((AETH_SIZE/8)-1, 0) = 0xFF;
|
||||
sendWord.keep(WIDTH-1, (AETH_SIZE/8)) = 0;
|
||||
sendWord.keep(WIDTH/8 -1, (AETH_SIZE/8)) = 0;
|
||||
sendWord.last = 1;
|
||||
|
||||
#ifdef DBG_FULL
|
||||
|
|
|
@ -38,6 +38,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
using namespace hls;
|
||||
|
||||
//#define DBG_IBV
|
||||
// #define RETRANS_EN
|
||||
|
||||
const uint32_t BTH_SIZE = 96;
|
||||
const uint32_t RETH_SIZE = 128;
|
||||
|
|
|
@ -71,20 +71,20 @@ struct readReqTableEntry
|
|||
|
||||
template <int INSTID>
|
||||
void read_req_table(stream<txReadReqUpdate>& tx_readReqTable_upd,
|
||||
#if !RETRANS_EN
|
||||
stream<rxReadReqUpdate>& rx_readReqTable_upd_req);
|
||||
#else
|
||||
#ifdef RETRANS_EN
|
||||
stream<rxReadReqUpdate>& rx_readReqTable_upd_req,
|
||||
stream<rxReadReqRsp>& rx_readReqTable_upd_rsp);
|
||||
#else
|
||||
stream<rxReadReqUpdate>& rx_readReqTable_upd_req);
|
||||
#endif
|
||||
|
||||
template <int INSTID = 0>
|
||||
void read_req_table(stream<txReadReqUpdate>& tx_readReqTable_upd,
|
||||
#if !RETRANS_EN
|
||||
stream<rxReadReqUpdate>& rx_readReqTable_upd_req)
|
||||
#else
|
||||
#ifdef RETRANS_EN
|
||||
stream<rxReadReqUpdate>& rx_readReqTable_upd_req,
|
||||
stream<rxReadReqRsp>& rx_readReqTable_upd_rsp)
|
||||
#else
|
||||
stream<rxReadReqUpdate>& rx_readReqTable_upd_req)
|
||||
#endif
|
||||
{
|
||||
#pragma HLS PIPELINE II=1
|
||||
|
|
|
@ -24,11 +24,11 @@ def print_array(array, file = None):
|
|||
if x["instid"] == -1:
|
||||
print("[{}]: {}".format(x["module"], x["msg"]))
|
||||
if file is not None:
|
||||
file.write("[{}]: {}".format(x["module"], x["msg"]))
|
||||
file.write("[{}]: {}\n".format(x["module"], x["msg"]))
|
||||
else:
|
||||
print("[{} {}]: {}".format(x["module"], x["instid"], x["msg"]))
|
||||
if file is not None:
|
||||
file.write("[{} {}]: {}".format(x["module"], x["instid"], x["msg"]))
|
||||
file.write("[{} {}]: {}\n".format(x["module"], x["instid"], x["msg"]))
|
||||
|
||||
def main():
|
||||
conf = None
|
||||
|
|
|
@ -167,19 +167,21 @@ int main(int argc, char* argv[]){
|
|||
ap_uint<512> params;
|
||||
params(63,0) = 0x000; // laddr
|
||||
params(127,64) = 0x100; // raddr
|
||||
params(159,128) = 128; // length
|
||||
params(159,128) = 16 * 1024; // length
|
||||
|
||||
for (int i=0; i<1000; i++)
|
||||
s_axis_sq_meta_n0.write(txMeta(RC_RDMA_WRITE_ONLY, 0x00, 0, params));
|
||||
for (int i=0; i<1; i++)
|
||||
// s_axis_sq_meta_n0.write(txMeta(RC_RDMA_WRITE_ONLY, 0x00, 0, params));
|
||||
s_axis_sq_meta_n0.write(txMeta(RC_RDMA_READ_REQUEST, 0x00, 0, params));
|
||||
|
||||
while (count < 200000)
|
||||
while (count < 20000)
|
||||
{
|
||||
// add some randomness into dropping
|
||||
ap_uint<8> drop_rand = std::rand() / (RAND_MAX / 50) + 50;
|
||||
ap_uint<8> drop_rand = std::rand() / (RAND_MAX / 3) + 3;
|
||||
|
||||
IBTRUN(0);
|
||||
IBTRUN(1);
|
||||
SWITCHRUN(drop_rand);
|
||||
// SWITCHRUN(drop_rand);
|
||||
SWITCHRUN(3);
|
||||
DRAMRUN(0);
|
||||
DRAMRUN(1);
|
||||
count++;
|
||||
|
|
Loading…
Reference in New Issue