From: hadeshyp Date: Mon, 22 Jan 2007 14:34:36 +0000 (+0000) Subject: Complete transfer via APIBUF is working, Ingo X-Git-Tag: oldGBE~768 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=ea535a8104c873c9605d39826283f8292c8e68a4;p=trbnet.git Complete transfer via APIBUF is working, Ingo --- diff --git a/testbench/apl_apibuf_testsim.tcl b/testbench/apl_apibuf_testsim.tcl index 2db27cc..52c240b 100644 --- a/testbench/apl_apibuf_testsim.tcl +++ b/testbench/apl_apibuf_testsim.tcl @@ -6,5 +6,5 @@ vcd dumpvars -m /API1/IOBUF/ vcd dumpvars -m /API1/IOBUF/INITOBUF/ vcd dumpvars -m /API1/IOBUF/REPLYIBUF/ vcd dumpvars -m /API2/IOBUF/INITIBUF/ -run 1000 ns +run 5000 ns quit \ No newline at end of file diff --git a/testbench/settings_aplbuf.sav b/testbench/settings_aplbuf.sav index d3e162a..1bf6158 100644 --- a/testbench/settings_aplbuf.sav +++ b/testbench/settings_aplbuf.sav @@ -1,13 +1,20 @@ [size] 1272 937 [pos] -1 -1 -*-25.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 -@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.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 +@200 +-DUMMY_APL @28 trb_net_dummy_apl_apibuf_testbench.APL1.apl_write_out 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 +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 trb_net_dummy_apl_apibuf_testbench.API1.ACTIVE_API.int_init_dataready_out trb_net_dummy_apl_apibuf_testbench.API1.ACTIVE_API.int_init_read_in @@ -16,21 +23,28 @@ trb_net_dummy_apl_apibuf_testbench.API1.ACTIVE_API.int_init_read_in @28 trb_net_dummy_apl_apibuf_testbench.API1.ACTIVE_API.fifo_to_int_read @200 -- +-IOBUF +@22 +#stat_locked[31:0] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[31] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[30] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[29] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[28] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[27] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[26] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[25] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[24] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[23] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[22] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[21] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[20] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[19] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[18] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[17] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[16] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[15] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[14] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[13] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[12] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[11] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[10] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[9] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[8] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[7] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[6] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[5] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[4] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[3] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[2] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[1] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.stat_locked[0] +@200 +-OBUF @28 trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_dataready_out @22 #med_data_out[50:0] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[50] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[49] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[48] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[47] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[46] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[45] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[44] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[43] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[42] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[41] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[40] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[39] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[38] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[37] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[36] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[35] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[34] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[33] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[32] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[31] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[30] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[29] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[28] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[27] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[26] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[25] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[24] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[23] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[22] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[21] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[20] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[19] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[18] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[17] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[16] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[15] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[14] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[13] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[12] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[11] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[10] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[9] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[8] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[7] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[6] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[5] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[4] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[3] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[2] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[1] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_data_out[0] @28 trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.med_read_in +@22 +#ctrl_buffer[31:0] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[31] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[30] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[29] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[28] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[27] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[26] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[25] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[24] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[23] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[22] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[21] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[20] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[19] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[18] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[17] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[16] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[15] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[14] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[13] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[12] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[11] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[10] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[9] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[8] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[7] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[6] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[5] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[4] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[3] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[2] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[1] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[0] +@28 +#transmitted_buffers[1:0] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.transmitted_buffers[1] trb_net_dummy_apl_apibuf_testbench.API1.IOBUF.INITOBUF.transmitted_buffers[0] +@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] @28 -trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_empty -trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_write -trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_read trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.int_read_in @22 #fifo_data_out[50:0] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[50] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[49] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[48] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[47] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[46] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[45] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[44] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[43] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[42] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[41] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[40] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[39] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[38] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[37] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[36] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[35] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[34] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[33] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[32] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[31] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[30] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[29] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[28] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[27] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[26] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[25] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[24] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[23] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[22] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[21] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[20] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[19] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[18] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[17] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[16] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[15] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[14] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[13] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[12] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[11] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[10] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[9] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[8] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[7] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[6] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[5] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[4] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[3] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[2] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[1] trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.fifo_data_out[0] @@ -38,3 +52,5 @@ trb_net_dummy_apl_apibuf_testbench.API2.IOBUF.INITIBUF.int_read_in @28 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] diff --git a/trb_net_active_api.vhd b/trb_net_active_api.vhd index a4fe10c..00fb3b0 100644 --- a/trb_net_active_api.vhd +++ b/trb_net_active_api.vhd @@ -406,6 +406,7 @@ end generate CHECK_BUFFER; else -- but keep the old content next_INT_INIT_DATA_OUT <= reg_INT_INIT_DATA_OUT; + next_INT_INIT_DATAREADY_OUT <= reg_INT_INIT_DATAREADY_OUT; end if; ------------------------------------------------------------------------------- -- SEND_TRAILER diff --git a/trb_net_ibuf.vhd b/trb_net_ibuf.vhd index 99c3a39..3b7985f 100644 --- a/trb_net_ibuf.vhd +++ b/trb_net_ibuf.vhd @@ -121,7 +121,8 @@ signal next_rec_buffer_size_out, current_rec_buffer_size_out if MED_DATA_IN(F1_POSITION) = F1_CHECK_ACK then next_rec_buffer_size_out <= MED_DATA_IN(BUFFER_SIZE_POSITION); end if; - elsif fifo_full = '0' and is_locked = '0' then + -- elsif fifo_full = '0' and is_locked = '0' then + elsif fifo_full = '0' then -- still ACKs may come even when locked fifo_write <= '1'; next_read_out <= '1'; elsif fifo_full = '1' then @@ -132,7 +133,7 @@ signal next_rec_buffer_size_out, current_rec_buffer_size_out next_error_state <= GOT_UNDEFINED_ERROR; end if; -- end TYPE end if; -- end MED_DATAREADY_IN - if fifo_full = '0' and is_locked = '0' then + if fifo_full = '0' then -- and is_locked = '0' then next_read_out <= '1'; end if; end process; @@ -275,7 +276,7 @@ reg_locked: process(CLK) -- make STAT_BUFFER - STAT_BUFFER(3 downto 0) <= fifo_depth(4 downto 1); --divide by 2, since 2 + STAT_BUFFER(3 downto 0) <= (fifo_depth(3 downto 0)-1); --divide by 2, since 2 --buffers have to be stored STAT_BUFFER(7 downto 4) <= current_rec_buffer_size_out; STAT_BUFFER(8) <= reg_eob_out; diff --git a/trb_net_iobuf.vhd b/trb_net_iobuf.vhd index f043f8c..9474e67 100644 --- a/trb_net_iobuf.vhd +++ b/trb_net_iobuf.vhd @@ -247,10 +247,18 @@ architecture trb_net_iobuf_arch of trb_net_iobuf is -- build the CTRL register of the OBUFs INITOBUF_ctrl_buffer(9 downto 0) <= INITIBUF_stat_buffer(9 downto 0); + INITOBUF_ctrl_buffer(31 downto 10) <= (others => '0'); REPLYOBUF_ctrl_buffer(9 downto 0) <= REPLYIBUF_stat_buffer(9 downto 0); + REPLYOBUF_ctrl_buffer(31 downto 10) <= (others => '0'); + + STAT_LOCKED(0) <= INIT_IS_LOCKED; + STAT_LOCKED(1) <= REPLY_IS_LOCKED; + STAT_LOCKED(31 downto 2) <= (others => '0'); -- comb part of the locking control -comb_locked : process (INIT_IS_LOCKED, REPLY_IS_LOCKED, INITIBUF_stat_locked, REPLYOBUF_stat_locked, REPLYIBUF_stat_locked, INITOBUF_stat_locked, CTRL_LOCKED) +comb_locked : process (INIT_IS_LOCKED, REPLY_IS_LOCKED, INITIBUF_stat_locked, + REPLYOBUF_stat_locked, REPLYIBUF_stat_locked, + INITOBUF_stat_locked, CTRL_LOCKED) begin -- process next_INIT_IS_LOCKED <= INIT_IS_LOCKED; @@ -259,30 +267,44 @@ comb_locked : process (INIT_IS_LOCKED, REPLY_IS_LOCKED, INITIBUF_stat_locked, RE REPLYIBUF_ctrl_locked <= (others => '0'); INITOBUF_ctrl_locked <= (others => '0'); INITIBUF_ctrl_locked <= (others => '0'); - if INITIBUF_stat_locked(0) = '1' then - next_INIT_IS_LOCKED <= '1'; - elsif REPLYOBUF_stat_locked(0) = '1' or CTRL_LOCKED(0) = '1' then - next_INIT_IS_LOCKED <= '0'; - end if; + + if REPLY_IS_LOCKED = '1' then + -- listen to INITOBUF + if INITOBUF_stat_locked(0) = '1' or CTRL_LOCKED(1) = '1' then + next_REPLY_IS_LOCKED <= '0'; + REPLYIBUF_ctrl_locked(0) <= '1'; + else + next_REPLY_IS_LOCKED <= '1'; + end if; + else + -- listen to REPLYIBUF itself + if REPLYIBUF_stat_locked(0) = '1' then + next_REPLY_IS_LOCKED <= '1'; + INITOBUF_ctrl_locked(0) <= '1'; + else + next_REPLY_IS_LOCKED <= '0'; + end if; + end if; - if REPLYIBUF_stat_locked(0) = '1' then - next_REPLY_IS_LOCKED <= '1'; - elsif INITOBUF_stat_locked(0) = '1' or CTRL_LOCKED(1) = '1' then - next_REPLY_IS_LOCKED <= '0'; - end if; + if INIT_IS_LOCKED = '1' then + -- listen to REPLYOBUF + if REPLYOBUF_stat_locked(0) = '1' or CTRL_LOCKED(0) = '1' then + next_INIT_IS_LOCKED <= '0'; + INITIBUF_ctrl_locked(0) <= '1'; + else + next_INIT_IS_LOCKED <= '1'; + end if; + else + -- listen to INITIBUF itself + if INITIBUF_stat_locked(0) = '1' then + next_INIT_IS_LOCKED <= '1'; + REPLYOBUF_ctrl_locked(0) <= '1'; + else + next_INIT_IS_LOCKED <= '0'; + + end if; + end if; - if INIT_IS_LOCKED = '0' and next_INIT_IS_LOCKED = '1' then - REPLYOBUF_ctrl_locked(0) <= '1'; - end if; - if INIT_IS_LOCKED = '1' and next_INIT_IS_LOCKED = '0' then - INITIBUF_ctrl_locked(0) <= '1'; - end if; - if REPLY_IS_LOCKED = '0' and next_REPLY_IS_LOCKED = '1' then - INITOBUF_ctrl_locked(0) <= '1'; - end if; - if REPLY_IS_LOCKED = '1' and next_REPLY_IS_LOCKED = '0' then - REPLYIBUF_ctrl_locked(0) <= '1'; - end if; end process; reg_locked: process(CLK) @@ -290,7 +312,7 @@ comb_locked : process (INIT_IS_LOCKED, REPLY_IS_LOCKED, INITIBUF_stat_locked, RE if rising_edge(CLK) then if RESET = '1' then INIT_IS_LOCKED <= '0'; - REPLY_IS_LOCKED <= '0'; + REPLY_IS_LOCKED <= '1'; elsif CLK_EN = '1' then INIT_IS_LOCKED <= next_INIT_IS_LOCKED; REPLY_IS_LOCKED <= next_REPLY_IS_LOCKED; diff --git a/trb_net_obuf.vhd b/trb_net_obuf.vhd index 941654f..2d0122c 100644 --- a/trb_net_obuf.vhd +++ b/trb_net_obuf.vhd @@ -229,12 +229,13 @@ architecture trb_net_obuf_arch of trb_net_obuf is got_locked <= is_locked; if MED_READ_IN = '1' then - - if current_output_buffer(TYPE_POSITION) = TYPE_TRM then - if release_locked = '0' then - got_locked <= '1'; - end if; - end if; + if current_output_buffer(TYPE_POSITION) = TYPE_TRM and release_locked = '0' then + got_locked <= '1'; + elsif release_locked = '1' then + got_locked <= '0'; + end if; + elsif release_locked = '1' then + got_locked <= '0'; end if; -- MED_READ_IN end process; @@ -248,11 +249,8 @@ architecture trb_net_obuf_arch of trb_net_obuf is if RESET = '1' then is_locked <= '0'; elsif CLK_EN = '1' then - if release_locked = '1' then - is_locked <= '0'; - else - is_locked <= got_locked; - end if; + is_locked <= got_locked; + else is_locked <= is_locked; end if;