From 660cfc54869458fb549b636bef0246ffedf30dd8 Mon Sep 17 00:00:00 2001 From: hadeshyp Date: Mon, 22 Jan 2007 17:11:06 +0000 Subject: [PATCH] Short transfer working, Ingo --- testbench/apl_apibuf_testsim.tcl | 1 + testbench/settings_aplbuf.sav | 19 ++++++++-- testbench/trb_net_dummy_apl.vhd | 11 ++++-- .../trb_net_dummy_apl_apibuf_testbench.vhd | 4 +-- trb_net_active_api.vhd | 35 ++++++++++++++++--- 5 files changed, 59 insertions(+), 11 deletions(-) diff --git a/testbench/apl_apibuf_testsim.tcl b/testbench/apl_apibuf_testsim.tcl index 52c240b..8c835f0 100644 --- a/testbench/apl_apibuf_testsim.tcl +++ b/testbench/apl_apibuf_testsim.tcl @@ -6,5 +6,6 @@ vcd dumpvars -m /API1/IOBUF/ vcd dumpvars -m /API1/IOBUF/INITOBUF/ vcd dumpvars -m /API1/IOBUF/REPLYIBUF/ vcd dumpvars -m /API2/IOBUF/INITIBUF/ +vcd dumpvars -m /API2/ACTIVE_API/ run 5000 ns quit \ No newline at end of file diff --git a/testbench/settings_aplbuf.sav b/testbench/settings_aplbuf.sav index 1bf6158..2ae590a 100644 --- a/testbench/settings_aplbuf.sav +++ b/testbench/settings_aplbuf.sav @@ -1,18 +1,23 @@ [size] 1272 937 [pos] -1 -1 -*-28.799541 560400000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +*-28.799541 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 @200 -DUMMY_APL -@28 +@29 trb_net_dummy_apl_apibuf_testbench.APL1.apl_write_out +@28 +trb_net_dummy_apl_apibuf_testbench.APL1.apl_fifo_full_in +@22 +#apl_data_out[47:0] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[47] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[46] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[45] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[44] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[43] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[42] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[41] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[40] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[39] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[38] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[37] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[36] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[35] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[34] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[33] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[32] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[31] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[30] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[29] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[28] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[27] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[26] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[25] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[24] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[23] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[22] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[21] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[20] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[19] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[18] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[17] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[16] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[15] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[14] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[13] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[12] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[11] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[10] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[9] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[8] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[7] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[6] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[5] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[4] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[3] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[2] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[1] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[0] +@28 trb_net_dummy_apl_apibuf_testbench.APL1.apl_send_out @22 #apl_data_in[47:0] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[47] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[46] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[45] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[44] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[43] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[42] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[41] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[40] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[39] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[38] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[37] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[36] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[35] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[34] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[33] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[32] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[31] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[30] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[29] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[28] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[27] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[26] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[25] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[24] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[23] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[22] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[21] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[20] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[19] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[18] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[17] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[16] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[15] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[14] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[13] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[12] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[11] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[10] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[9] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[8] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[7] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[6] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[5] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[4] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[3] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[2] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[1] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_in[0] @28 +#apl_typ_in[2:0] trb_net_dummy_apl_apibuf_testbench.APL1.apl_typ_in[2] trb_net_dummy_apl_apibuf_testbench.APL1.apl_typ_in[1] trb_net_dummy_apl_apibuf_testbench.APL1.apl_typ_in[0] trb_net_dummy_apl_apibuf_testbench.APL1.apl_dataready_in @22 #apl_seqnr_in[7:0] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[7] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[6] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[5] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[4] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[3] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[2] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[1] trb_net_dummy_apl_apibuf_testbench.APL1.apl_seqnr_in[0] -#apl_data_out[47:0] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[47] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[46] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[45] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[44] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[43] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[42] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[41] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[40] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[39] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[38] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[37] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[36] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[35] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[34] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[33] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[32] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[31] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[30] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[29] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[28] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[27] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[26] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[25] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[24] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[23] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[22] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[21] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[20] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[19] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[18] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[17] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[16] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[15] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[14] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[13] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[12] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[11] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[10] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[9] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[8] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[7] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[6] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[5] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[4] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[3] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[2] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[1] trb_net_dummy_apl_apibuf_testbench.APL1.apl_data_out[0] @200 -API @28 @@ -41,6 +46,7 @@ trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_read_in @22 #stat_locked[15:0] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[15] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[14] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[13] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[12] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[11] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[10] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[9] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[8] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[7] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[6] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[5] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[4] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[3] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[2] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[1] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.stat_locked[0] @200 +- -IBUF (Rec) @22 #stat_locked[15:0] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[15] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[14] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[13] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[12] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[11] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[10] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[9] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[8] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[7] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[6] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[5] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[4] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[3] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[2] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[1] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_locked[0] @@ -54,3 +60,10 @@ trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.reg_int_dataready_out trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.reg_eob_out @22 #stat_buffer[31:0] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[31] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[30] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[29] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[28] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[27] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[26] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[25] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[24] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[23] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[22] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[21] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[20] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[19] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[18] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[17] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[16] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[15] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[14] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[13] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[12] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[11] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[10] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[9] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[8] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[7] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[6] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[5] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[4] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[3] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[2] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[1] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.stat_buffer[0] +@200 +-API (bounce) +@28 +trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_dataready_out +trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_read_in +@22 +#int_reply_data_out[50:0] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[50] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[49] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[48] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[47] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[46] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[45] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[44] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[43] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[42] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[41] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[40] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[39] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[38] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[37] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[36] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[35] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[34] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[33] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[32] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[31] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[30] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[29] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[28] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[27] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[26] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[25] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[24] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[23] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[22] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[21] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[20] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[19] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[18] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[17] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[16] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[15] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[14] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[13] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[12] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[11] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[10] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[9] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[8] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[7] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[6] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[5] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[4] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[3] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[2] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[1] trb_net_dummy_apl_apibuf_testbench.API2.ACTIVE_API.int_reply_data_out[0] diff --git a/testbench/trb_net_dummy_apl.vhd b/testbench/trb_net_dummy_apl.vhd index 0f1f7c1..dcf1880 100644 --- a/testbench/trb_net_dummy_apl.vhd +++ b/testbench/trb_net_dummy_apl.vhd @@ -58,8 +58,15 @@ architecture trb_net_dummy_apl_arch of trb_net_dummy_apl is APL_ERROR_PATTERN_OUT <= x"12345678"; APL_TARGET_ADDRESS_OUT <= TARGET_ADDRESS; APL_DATA_OUT <= reg_counter; - APL_SHORT_TRANSFER_OUT <= '0'; - + + CHECK_1:if TRANSFER_LENGTH >0 generate + APL_SHORT_TRANSFER_OUT <= '0'; + end generate; + CHECK_2:if TRANSFER_LENGTH =0 generate + APL_SHORT_TRANSFER_OUT <= '1'; + end generate; + + SENDER_CTRL: process (current_state, APL_FIFO_FULL_IN, reg_counter, APL_RUN_IN) begin -- process APL_SEND_OUT <= '0'; diff --git a/testbench/trb_net_dummy_apl_apibuf_testbench.vhd b/testbench/trb_net_dummy_apl_apibuf_testbench.vhd index 5337e66..4b7d25b 100644 --- a/testbench/trb_net_dummy_apl_apibuf_testbench.vhd +++ b/testbench/trb_net_dummy_apl_apibuf_testbench.vhd @@ -197,7 +197,7 @@ APL1: trb_net_dummy_apl TARGET_ADDRESS => x"0002", -- TARGET_ADDRESS => x"000f", PREFILL_LENGTH => 0, - TRANSFER_LENGTH => 2) + TRANSFER_LENGTH => 4) port map ( CLK => clk, RESET => reset, @@ -313,7 +313,7 @@ API1: trb_net_active_apibuf API2: trb_net_active_apibuf generic map ( - FIFO_TERM_BUFFER_DEPTH => 3) + FIFO_TERM_BUFFER_DEPTH => 0) port map ( CLK => clk, RESET => reset, diff --git a/trb_net_active_api.vhd b/trb_net_active_api.vhd index 00fb3b0..272a43a 100644 --- a/trb_net_active_api.vhd +++ b/trb_net_active_api.vhd @@ -175,8 +175,7 @@ begin EMPTY_OUT => fifo_to_apl_empty ); -CHECK_BUFFER: if FIFO_TERM_BUFFER_DEPTH >0 generate - +CHECK_BUFFER1: if FIFO_TERM_BUFFER_DEPTH >0 generate FIFO_TERM_BUFFER: trb_net_fifo generic map ( WIDTH => 51, @@ -192,9 +191,15 @@ CHECK_BUFFER: if FIFO_TERM_BUFFER_DEPTH >0 generate FULL_OUT => fifo_term_buffer_full, EMPTY_OUT => fifo_term_buffer_empty ); +end generate CHECK_BUFFER1; +CHECK_BUFFER2: if FIFO_TERM_BUFFER_DEPTH =0 generate + fifo_term_buffer_empty <= '1'; + fifo_term_buffer_full <= '0'; + fifo_term_buffer_data_out <= (others => '0'); + +end generate CHECK_BUFFER2; -end generate CHECK_BUFFER; - + FIFO_TERM_BUFFER_CTRL: process (tb_current_state, INT_INIT_DATA_IN, INT_INIT_DATAREADY_IN, tb_next_registered_trailer, tb_registered_trailer, @@ -258,7 +263,11 @@ end generate CHECK_BUFFER; else tb_next_state <= SEND_TRAILER; end if; -- Have buffered stuff +----------------------------------------------------------------------- +-- TRAILER +----------------------------------------------------------------------- elsif tb_current_state = SEND_TRAILER then + tb_next_state <= SEND_TRAILER ; INT_REPLY_DATAREADY_OUT <= '1'; INT_REPLY_DATA_OUT(DWORD_POSITION) <= tb_registered_trailer; INT_REPLY_DATA_OUT(TYPE_POSITION) <= TYPE_TRM; @@ -305,6 +314,9 @@ end generate CHECK_BUFFER; next_registered_header <= (others => '0'); next_state <= SEND_SHORT; -- no next data word, waiting for -- falling edge of APL_SEND_IN + next_registered_trailer <= combined_trailer; -- trailer will be + -- constructed with + -- raising edge !! next_INT_INIT_DATAREADY_OUT <= '0'; else -- normal transfer, prepare the header next_registered_header <= combined_header; @@ -317,6 +329,21 @@ end generate CHECK_BUFFER; next_state <= IDLE; end if; -- APL_SEND_IN ------------------------------------------------------------------------------- +-- SEND_SHORT +------------------------------------------------------------------------------- + elsif current_state = SEND_SHORT then + next_state <= SEND_SHORT; + if APL_SEND_IN = '0' then -- terminate the transfer + next_state <= SEND_TRAILER; + next_INT_INIT_DATAREADY_OUT <= '1'; + next_INT_INIT_DATA_OUT(TYPE_POSITION) <= TYPE_TRM; + next_INT_INIT_DATA_OUT(DWORD_POSITION) <= registered_trailer; + else + next_registered_trailer <= combined_trailer; --update trailer when APL_SEND_ + --IN longer then one + --CLK cycle + end if; +------------------------------------------------------------------------------- -- SEND_HEADER ------------------------------------------------------------------------------- elsif current_state = SEND_HEADER then -- 2.43.0