From: hadeshyp Date: Mon, 7 Jan 2008 16:40:06 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: oldGBE~648 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=434c0d2d7b6fd7848ffe28d6147b966a5d9c2b81;p=trbnet.git *** empty log message *** --- diff --git a/optical_link/hub.vhd b/optical_link/hub.vhd index 3eb41b0..785b786 100644 --- a/optical_link/hub.vhd +++ b/optical_link/hub.vhd @@ -570,7 +570,7 @@ begin MED_DATAREADY_OUT => OPT_DATA_VALID_OUT,--data_valid_in_i, MED_DATA_OUT => OPT_DATA_OUT,--txd_i, MED_PACKET_NUM_OUT => open, - MED_READ_IN => "11", + MED_READ_IN => (others => '1'), MED_DATAREADY_IN => OPT_DATA_VALID_IN,--data_valid_out_i, MED_DATA_IN => OPT_DATA_IN,--rxd_synch_i, MED_PACKET_NUM_IN => med_packet_num_in_i, diff --git a/testbench/command.txt b/testbench/command.txt index 90035b9..0e089a4 100644 --- a/testbench/command.txt +++ b/testbench/command.txt @@ -13,11 +13,11 @@ SE_TR 1 004 SE_TR 1 005 SE_TR 1 006 SE_TR 1 007 -SE_TR 1 008 -SE_TR 1 009 -SE_TR 1 010 -SE_TR 1 011 -SE_TR 1 012 +SE_TR 1 008 +SE_TR 1 009 +SE_TR 1 010 +SE_TR 1 011 +SE_TR 1 012 WAIT_ WAIT_ WAIT_ @@ -46,89 +46,89 @@ WAIT_ WAIT_ SE_TR 2 005 WAIT_ -SE_TR 2 006 -SE_TR 2 007 -SE_TR 1 014 -SE_TR 2 008 -WAIT_ -SE_TR 2 009 -WAIT_ -SE_TR 2 010 -WAIT_ -SE_TR 2 011 -WAIT_ -SE_TR 2 012 -SE_TR 2 013 -SE_TR 1 015 -SE_TR 1 016 -SE_TR 1 017 -SE_TR 1 018 -WAIT_ -SE_TR 1 019 -WAIT_ -SE_TR 1 020 -SE_TR 1 021 -SE_TR 1 022 -SE_TR 1 023 -SE_TR 1 024 -SE_TR 1 025 -SE_TR 1 026 -SE_TR 1 027 -SE_TR 1 028 -SE_TR 2 014 -WAIT_ -SE_TR 2 015 -WAIT_ -SE_TR 2 016 -WAIT_ -SE_TR 2 017 -WAIT_ -SE_TR 2 018 -WAIT_ -SE_TR 2 019 -WAIT_ -WAIT_ -WAIT_ -SE_TR 2 020 -WAIT_ -WAIT_ -WAIT_ -SE_TR 2 021 -WAIT_ -SE_TR 2 022 -WAIT_ -WAIT_ -SE_TR 2 023 -WAIT_ -SE_TR 2 024 -WAIT_ -SE_TR 2 025 -WAIT_ -SE_TR 2 026 -WAIT_ -SE_TR 2 027 -WAIT_ -SE_TR 2 028 -WAIT_ -SE_TR 2 029 -SE_TR 2 030 -WAIT_ -SE_TR 2 031 -WAIT_ -SE_TR 2 032 -WAIT_ -SE_TR 2 033 -WAIT_ -SE_TR 2 034 -WAIT_ -SE_TR 2 035 -SE_TR 1 029 -SE_TR 1 030 -SE_TR 1 031 -SE_TR 1 032 -SE_TR 1 033 -SE_TR 1 034 -SE_TR 1 035 +SE_TR 2 006 +SE_TR 2 007 +SE_TR 1 014 +SE_TR 2 008 +WAIT_ +SE_TR 2 009 +WAIT_ +SE_TR 2 010 +WAIT_ +SE_TR 2 011 +WAIT_ +SE_TR 2 012 +SE_TR 2 013 +SE_TR 1 015 +SE_TR 1 016 +SE_TR 1 017 +SE_TR 1 018 +WAIT_ +SE_TR 1 019 +WAIT_ +SE_TR 1 020 +SE_TR 1 021 +SE_TR 1 022 +SE_TR 1 023 +SE_TR 1 024 +SE_TR 1 025 +SE_TR 1 026 +SE_TR 1 027 +SE_TR 1 028 +SE_TR 2 014 +WAIT_ +SE_TR 2 015 +WAIT_ +SE_TR 2 016 +WAIT_ +SE_TR 2 017 +WAIT_ +SE_TR 2 018 +WAIT_ +SE_TR 2 019 +WAIT_ +WAIT_ +WAIT_ +SE_TR 2 020 +WAIT_ +WAIT_ +WAIT_ +SE_TR 2 021 +WAIT_ +SE_TR 2 022 +WAIT_ +WAIT_ +SE_TR 2 023 +WAIT_ +SE_TR 2 024 +WAIT_ +SE_TR 2 025 +WAIT_ +SE_TR 2 026 +WAIT_ +SE_TR 2 027 +WAIT_ +SE_TR 2 028 +WAIT_ +SE_TR 2 029 +SE_TR 2 030 +WAIT_ +SE_TR 2 031 +WAIT_ +SE_TR 2 032 +WAIT_ +SE_TR 2 033 +WAIT_ +SE_TR 2 034 +WAIT_ +SE_TR 2 035 +SE_TR 1 029 +SE_TR 1 030 +SE_TR 1 031 +SE_TR 1 032 +SE_TR 1 033 +SE_TR 1 034 +SE_TR 1 035 WAIT_ WAIT_ SE_TR 2 036 diff --git a/testbench/lvds_chain_testsim.tcl b/testbench/lvds_chain_testsim.tcl index f4fdf47..a650eb4 100644 --- a/testbench/lvds_chain_testsim.tcl +++ b/testbench/lvds_chain_testsim.tcl @@ -1,18 +1,18 @@ vcd dumpfile vcdfile.vcd #vcd dumpvars lvds vcd dumpvars -m /APL1/ +vcd dumpvars -m /APL2/ vcd dumpvars -m /API1/MPLEX/ -vcd dumpvars -m /API1/ACTIVE_API/ -vcd dumpvars -m /API1/ACTIVE_API/INIT_SBUF/ -vcd dumpvars -m /API1/ACTIVE_API/FIFO_TO_INT/ +vcd dumpvars -m /API2/PASSIVE_API/PASSIVE_API/ +vcd dumpvars -m /API1/ACTIVE_API/ACTIVE_API/ 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/IOBUF/INITOBUF/ vcd dumpvars -m /API2/IOBUF/REPLYOBUF/ -vcd dumpvars -m /API2/ACTIVE_API/ +vcd dumpvars -m /API2/PASSIVE_API/ vcd dumpvars -m /LVDS1/ vcd dumpvars -m /LVDS2/ -run 10000 ns +run 30000 ns quit \ No newline at end of file diff --git a/testbench/settings_lvds_chain.sav b/testbench/settings_lvds_chain.sav index 9ca7525..a0424fa 100644 --- a/testbench/settings_lvds_chain.sav +++ b/testbench/settings_lvds_chain.sav @@ -1,6 +1,6 @@ [size] 1272 936 [pos] -1 -1 -*-25.799541 915000000 -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 +*-30.996199 5050000000 -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 @@ -27,17 +27,6 @@ trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_read_in #int_init_data_out[50:0] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[50] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[49] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[48] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[47] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[46] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[45] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[44] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[43] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[42] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[41] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[40] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[39] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[38] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[37] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[36] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[35] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[34] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[33] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[32] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[31] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[30] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[29] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[28] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[27] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[26] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[25] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[24] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[23] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[22] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[21] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[20] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[19] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[18] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[17] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[16] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[15] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[14] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[13] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[12] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[11] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[10] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[9] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[8] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[7] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[6] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[5] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[4] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[3] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[2] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[1] trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_data_out[0] @200 -INITSBUF -@28 -trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_dataready_in -trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_read_in -@22 -#comb_data_in[50:0] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[50] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[49] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[48] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[47] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[46] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[45] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[44] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[43] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[42] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[41] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[40] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[39] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[38] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[37] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[36] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[35] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[34] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[33] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[32] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[31] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[30] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[29] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[28] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[27] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[26] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[25] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[24] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[23] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[22] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[21] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[20] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[19] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[18] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[17] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[16] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[15] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[14] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[13] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[12] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[11] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[10] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[9] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[8] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[7] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[6] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[5] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[4] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[3] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[2] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[1] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.comb_data_in[0] -@28 -trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.move_b2_buffer -trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.move_b1_buffer -@22 -#syn_data_out[50:0] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[50] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[49] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[48] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[47] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[46] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[45] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[44] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[43] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[42] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[41] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[40] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[39] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[38] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[37] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[36] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[35] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[34] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[33] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[32] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[31] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[30] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[29] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[28] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[27] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[26] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[25] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[24] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[23] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[22] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[21] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[20] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[19] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[18] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[17] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[16] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[15] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[14] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[13] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[12] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[11] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[10] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[9] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[8] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[7] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[6] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[5] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[4] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[3] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[2] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[1] trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.syn_data_out[0] -@200 -IOBUF @22 #stat_locked[31:0] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[31] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[30] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[29] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[28] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[27] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[26] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[25] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[24] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[23] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[22] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[21] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[20] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[19] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[18] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[17] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[16] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[15] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[14] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[13] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[12] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[11] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[10] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[9] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[8] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[7] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[6] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[5] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[4] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[3] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[2] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[1] trb_net_lvds_chain_testbench.API1.IOBUF.stat_locked[0] @@ -54,9 +43,6 @@ trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_read_in @28 #transmitted_buffers[1:0] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.transmitted_buffers[1] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.transmitted_buffers[0] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.sent_eob -@29 -trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.sent_ack -@28 trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.send_ack_in trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.reg_send_ack_in trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.sbuf_free @@ -81,7 +67,20 @@ trb_net_lvds_chain_testbench.API1.MPLEX.mux_enable @28 trb_net_lvds_chain_testbench.LVDS1.int_read_out trb_net_lvds_chain_testbench.LVDS1.int_dataready_in -#med_data_out[12:0] trb_net_lvds_chain_testbench.LVDS1.med_data_out[12] trb_net_lvds_chain_testbench.LVDS1.med_data_out[11] trb_net_lvds_chain_testbench.LVDS1.med_data_out[10] trb_net_lvds_chain_testbench.LVDS1.med_data_out[9] trb_net_lvds_chain_testbench.LVDS1.med_data_out[8] trb_net_lvds_chain_testbench.LVDS1.med_data_out[7] trb_net_lvds_chain_testbench.LVDS1.med_data_out[6] trb_net_lvds_chain_testbench.LVDS1.med_data_out[5] trb_net_lvds_chain_testbench.LVDS1.med_data_out[4] trb_net_lvds_chain_testbench.LVDS1.med_data_out[3] trb_net_lvds_chain_testbench.LVDS1.med_data_out[2] trb_net_lvds_chain_testbench.LVDS1.med_data_out[1] trb_net_lvds_chain_testbench.LVDS1.med_data_out[0] +trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.sent_ack +trb_net_lvds_chain_testbench.LVDS1.med_data_out[12] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[11] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[10] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[9] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[8] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[7] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[6] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[5] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[4] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[3] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[2] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[1] +trb_net_lvds_chain_testbench.LVDS1.med_data_out[0] trb_net_lvds_chain_testbench.LVDS1.med_transmission_clk_out trb_net_lvds_chain_testbench.LVDS1.med_carrier_out @200 @@ -92,10 +91,35 @@ trb_net_lvds_chain_testbench.LVDS2.int_read_in trb_net_lvds_chain_testbench.LVDS2.int_dataready_out @22 #int_data_out[55:0] trb_net_lvds_chain_testbench.LVDS2.int_data_out[55] trb_net_lvds_chain_testbench.LVDS2.int_data_out[54] trb_net_lvds_chain_testbench.LVDS2.int_data_out[53] trb_net_lvds_chain_testbench.LVDS2.int_data_out[52] trb_net_lvds_chain_testbench.LVDS2.int_data_out[51] trb_net_lvds_chain_testbench.LVDS2.int_data_out[50] trb_net_lvds_chain_testbench.LVDS2.int_data_out[49] trb_net_lvds_chain_testbench.LVDS2.int_data_out[48] trb_net_lvds_chain_testbench.LVDS2.int_data_out[47] trb_net_lvds_chain_testbench.LVDS2.int_data_out[46] trb_net_lvds_chain_testbench.LVDS2.int_data_out[45] trb_net_lvds_chain_testbench.LVDS2.int_data_out[44] trb_net_lvds_chain_testbench.LVDS2.int_data_out[43] trb_net_lvds_chain_testbench.LVDS2.int_data_out[42] trb_net_lvds_chain_testbench.LVDS2.int_data_out[41] trb_net_lvds_chain_testbench.LVDS2.int_data_out[40] trb_net_lvds_chain_testbench.LVDS2.int_data_out[39] trb_net_lvds_chain_testbench.LVDS2.int_data_out[38] trb_net_lvds_chain_testbench.LVDS2.int_data_out[37] trb_net_lvds_chain_testbench.LVDS2.int_data_out[36] trb_net_lvds_chain_testbench.LVDS2.int_data_out[35] trb_net_lvds_chain_testbench.LVDS2.int_data_out[34] trb_net_lvds_chain_testbench.LVDS2.int_data_out[33] trb_net_lvds_chain_testbench.LVDS2.int_data_out[32] trb_net_lvds_chain_testbench.LVDS2.int_data_out[31] trb_net_lvds_chain_testbench.LVDS2.int_data_out[30] trb_net_lvds_chain_testbench.LVDS2.int_data_out[29] trb_net_lvds_chain_testbench.LVDS2.int_data_out[28] trb_net_lvds_chain_testbench.LVDS2.int_data_out[27] trb_net_lvds_chain_testbench.LVDS2.int_data_out[26] trb_net_lvds_chain_testbench.LVDS2.int_data_out[25] trb_net_lvds_chain_testbench.LVDS2.int_data_out[24] trb_net_lvds_chain_testbench.LVDS2.int_data_out[23] trb_net_lvds_chain_testbench.LVDS2.int_data_out[22] trb_net_lvds_chain_testbench.LVDS2.int_data_out[21] trb_net_lvds_chain_testbench.LVDS2.int_data_out[20] trb_net_lvds_chain_testbench.LVDS2.int_data_out[19] trb_net_lvds_chain_testbench.LVDS2.int_data_out[18] trb_net_lvds_chain_testbench.LVDS2.int_data_out[17] trb_net_lvds_chain_testbench.LVDS2.int_data_out[16] trb_net_lvds_chain_testbench.LVDS2.int_data_out[15] trb_net_lvds_chain_testbench.LVDS2.int_data_out[14] trb_net_lvds_chain_testbench.LVDS2.int_data_out[13] trb_net_lvds_chain_testbench.LVDS2.int_data_out[12] trb_net_lvds_chain_testbench.LVDS2.int_data_out[11] trb_net_lvds_chain_testbench.LVDS2.int_data_out[10] trb_net_lvds_chain_testbench.LVDS2.int_data_out[9] trb_net_lvds_chain_testbench.LVDS2.int_data_out[8] trb_net_lvds_chain_testbench.LVDS2.int_data_out[7] trb_net_lvds_chain_testbench.LVDS2.int_data_out[6] trb_net_lvds_chain_testbench.LVDS2.int_data_out[5] trb_net_lvds_chain_testbench.LVDS2.int_data_out[4] trb_net_lvds_chain_testbench.LVDS2.int_data_out[3] trb_net_lvds_chain_testbench.LVDS2.int_data_out[2] trb_net_lvds_chain_testbench.LVDS2.int_data_out[1] trb_net_lvds_chain_testbench.LVDS2.int_data_out[0] +@28 +trb_net_lvds_chain_testbench.LVDS2.med_data_out[12] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[11] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[10] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[9] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[8] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[7] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[6] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[5] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[4] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[3] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[2] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[1] +trb_net_lvds_chain_testbench.LVDS2.med_data_out[0] @200 -API (bounce) -@28 -trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_dataready_out -trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_read_in +- +-APL2 @22 -#int_reply_data_out[50:0] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[50] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[49] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[48] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[47] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[46] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[45] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[44] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[43] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[42] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[41] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[40] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[39] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[38] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[37] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[36] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[35] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[34] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[33] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[32] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[31] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[30] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[29] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[28] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[27] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[26] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[25] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[24] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[23] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[22] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[21] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[20] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[19] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[18] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[17] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[16] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[15] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[14] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[13] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[12] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[11] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[10] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[9] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[8] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[7] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[6] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[5] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[4] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[3] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[2] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[1] trb_net_lvds_chain_testbench.API2.ACTIVE_API.int_reply_data_out[0] +#apl_data_in[47:0] trb_net_lvds_chain_testbench.APL2.apl_data_in[47] trb_net_lvds_chain_testbench.APL2.apl_data_in[46] trb_net_lvds_chain_testbench.APL2.apl_data_in[45] trb_net_lvds_chain_testbench.APL2.apl_data_in[44] trb_net_lvds_chain_testbench.APL2.apl_data_in[43] trb_net_lvds_chain_testbench.APL2.apl_data_in[42] trb_net_lvds_chain_testbench.APL2.apl_data_in[41] trb_net_lvds_chain_testbench.APL2.apl_data_in[40] trb_net_lvds_chain_testbench.APL2.apl_data_in[39] trb_net_lvds_chain_testbench.APL2.apl_data_in[38] trb_net_lvds_chain_testbench.APL2.apl_data_in[37] trb_net_lvds_chain_testbench.APL2.apl_data_in[36] trb_net_lvds_chain_testbench.APL2.apl_data_in[35] trb_net_lvds_chain_testbench.APL2.apl_data_in[34] trb_net_lvds_chain_testbench.APL2.apl_data_in[33] trb_net_lvds_chain_testbench.APL2.apl_data_in[32] trb_net_lvds_chain_testbench.APL2.apl_data_in[31] trb_net_lvds_chain_testbench.APL2.apl_data_in[30] trb_net_lvds_chain_testbench.APL2.apl_data_in[29] trb_net_lvds_chain_testbench.APL2.apl_data_in[28] trb_net_lvds_chain_testbench.APL2.apl_data_in[27] trb_net_lvds_chain_testbench.APL2.apl_data_in[26] trb_net_lvds_chain_testbench.APL2.apl_data_in[25] trb_net_lvds_chain_testbench.APL2.apl_data_in[24] trb_net_lvds_chain_testbench.APL2.apl_data_in[23] trb_net_lvds_chain_testbench.APL2.apl_data_in[22] trb_net_lvds_chain_testbench.APL2.apl_data_in[21] trb_net_lvds_chain_testbench.APL2.apl_data_in[20] trb_net_lvds_chain_testbench.APL2.apl_data_in[19] trb_net_lvds_chain_testbench.APL2.apl_data_in[18] trb_net_lvds_chain_testbench.APL2.apl_data_in[17] trb_net_lvds_chain_testbench.APL2.apl_data_in[16] trb_net_lvds_chain_testbench.APL2.apl_data_in[15] trb_net_lvds_chain_testbench.APL2.apl_data_in[14] trb_net_lvds_chain_testbench.APL2.apl_data_in[13] trb_net_lvds_chain_testbench.APL2.apl_data_in[12] trb_net_lvds_chain_testbench.APL2.apl_data_in[11] trb_net_lvds_chain_testbench.APL2.apl_data_in[10] trb_net_lvds_chain_testbench.APL2.apl_data_in[9] trb_net_lvds_chain_testbench.APL2.apl_data_in[8] trb_net_lvds_chain_testbench.APL2.apl_data_in[7] trb_net_lvds_chain_testbench.APL2.apl_data_in[6] trb_net_lvds_chain_testbench.APL2.apl_data_in[5] trb_net_lvds_chain_testbench.APL2.apl_data_in[4] trb_net_lvds_chain_testbench.APL2.apl_data_in[3] trb_net_lvds_chain_testbench.APL2.apl_data_in[2] trb_net_lvds_chain_testbench.APL2.apl_data_in[1] trb_net_lvds_chain_testbench.APL2.apl_data_in[0] +@23 +#apl_typ_in[2:0] trb_net_lvds_chain_testbench.APL2.apl_typ_in[2] trb_net_lvds_chain_testbench.APL2.apl_typ_in[1] trb_net_lvds_chain_testbench.APL2.apl_typ_in[0] +@29 +trb_net_lvds_chain_testbench.APL2.apl_dataready_in +trb_net_lvds_chain_testbench.APL2.apl_send_out +trb_net_lvds_chain_testbench.APL2.apl_write_out +trb_net_lvds_chain_testbench.APL2.apl_run_in +@28 +#state_bits[1:0] trb_net_lvds_chain_testbench.APL2.state_bits[1] trb_net_lvds_chain_testbench.APL2.state_bits[0] +#next_state_bits[1:0] trb_net_lvds_chain_testbench.APL2.next_state_bits[1] trb_net_lvds_chain_testbench.APL2.next_state_bits[0] +@200 +- diff --git a/testbench/trb_net_lvds_chain_testbench.vhd b/testbench/trb_net_lvds_chain_testbench.vhd index e2a6f3a..c73d3e2 100644 --- a/testbench/trb_net_lvds_chain_testbench.vhd +++ b/testbench/trb_net_lvds_chain_testbench.vhd @@ -14,7 +14,7 @@ end trb_net_lvds_chain_testbench; architecture trb_net_lvds_chain_testbench_arch of trb_net_lvds_chain_testbench is signal clk : std_logic := '0'; - signal clk2 : std_logic := '0'; + signal clk2 : std_logic := '1'; signal reset : std_logic := '1'; component trb_net_med_13bit_slow is @@ -137,6 +137,73 @@ component trb_net_active_apimbuf is END component; +component trb_net_passive_apimbuf is + + generic (INIT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), if + -- the initibuf + REPLY_DEPTH : integer := 3; -- or the replyibuf + FIFO_TO_INT_DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1), + -- for the direction to + -- internal world + FIFO_TO_APL_DEPTH : integer := 3; -- direction to application + FIFO_TERM_BUFFER_DEPTH : integer := 0 -- fifo for auto-answering of + -- the master path, if set to 0 + -- no buffer is used at all + ); + + port( + -- Misc + CLK : in std_logic; + RESET : in std_logic; + CLK_EN : in std_logic; + -- Media direction port + MED_DATAREADY_OUT: out STD_LOGIC; --Data word ready to be read out + --by the media (via the TrbNetIOMultiplexer) + MED_DATA_OUT: out STD_LOGIC_VECTOR (51 downto 0); -- Data word + MED_READ_IN: in STD_LOGIC; -- Media is reading + + MED_DATAREADY_IN: in STD_LOGIC; -- Data word is offered by the Media + -- (the IOBUF MUST read) + MED_DATA_IN: in STD_LOGIC_VECTOR (51 downto 0); -- Data word + MED_READ_OUT: out STD_LOGIC; -- buffer reads a word from media + MED_ERROR_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Status bits + + -- APL Transmitter port + APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" + APL_WRITE_IN: in STD_LOGIC; -- Data word is valid and should be transmitted + APL_FIFO_FULL_OUT: out STD_LOGIC; -- Stop transfer, the fifo is full + APL_SHORT_TRANSFER_IN: in STD_LOGIC; -- + APL_DTYPE_IN: in STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr + APL_ERROR_PATTERN_IN: in STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr + APL_SEND_IN: in STD_LOGIC; -- Release sending of the data + APL_TARGET_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- Address of + -- the target (only for active APIs) + + -- Receiver port + APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" + APL_TYP_OUT: out STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM + APL_DATAREADY_OUT: out STD_LOGIC; -- Data word is valid and might be read out + APL_READ_IN: in STD_LOGIC; -- Read data word + + -- APL Control port + APL_RUN_OUT: out STD_LOGIC; -- Data transfer is running + APL_MY_ADDRESS_IN: in STD_LOGIC_VECTOR (15 downto 0); -- My own address (temporary solution!!!) + APL_SEQNR_OUT: out STD_LOGIC_VECTOR (7 downto 0); + + -- Status and control port => just coming from the iobuf for debugging + STAT_GEN: out STD_LOGIC_VECTOR (31 downto 0); -- General Status + STAT_LOCKED: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control + STAT_INIT_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- Status of the handshake and buffer control + STAT_REPLY_BUFFER: out STD_LOGIC_VECTOR (31 downto 0); -- General Status + CTRL_GEN: in STD_LOGIC_VECTOR (31 downto 0); + CTRL_LOCKED: in STD_LOGIC_VECTOR (31 downto 0); + STAT_CTRL_INIT_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); + STAT_CTRL_REPLY_BUFFER: in STD_LOGIC_VECTOR (31 downto 0); + MPLEX_CTRL: in STD_LOGIC_VECTOR (31 downto 0) + ); +END component; + + component trb_net_dummy_apl generic (TARGET_ADDRESS : STD_LOGIC_VECTOR (15 downto 0) := x"ffff"; PREFILL_LENGTH : integer := 3; @@ -172,6 +239,40 @@ component trb_net_dummy_apl END component; +component trb_net_dummy_passive_apl + generic (TARGET_ADDRESS : STD_LOGIC_VECTOR (15 downto 0) := x"ffff"; + PREFILL_LENGTH : integer := 3; + TRANSFER_LENGTH : integer := 6); -- length of dummy data + + port( + -- Misc + CLK : in std_logic; + RESET : in std_logic; + CLK_EN : in std_logic; + + -- APL Transmitter port + APL_DATA_OUT: out STD_LOGIC_VECTOR (47 downto 0); -- Data word "application to network" + APL_WRITE_OUT: out STD_LOGIC; -- Data word is valid and should be transmitted + APL_FIFO_FULL_IN: in STD_LOGIC; -- Stop transfer, the fifo is full + APL_SHORT_TRANSFER_OUT: out STD_LOGIC; -- + APL_DTYPE_OUT: out STD_LOGIC_VECTOR (3 downto 0); -- see NewTriggerBusNetworkDescr + APL_ERROR_PATTERN_OUT: out STD_LOGIC_VECTOR (31 downto 0); -- see NewTriggerBusNetworkDescr + APL_SEND_OUT: out STD_LOGIC; -- Release sending of the data + APL_TARGET_ADDRESS_OUT: out STD_LOGIC_VECTOR (15 downto 0); -- Address of + -- the target (only for active APIs) + + -- Receiver port + APL_DATA_IN: in STD_LOGIC_VECTOR (47 downto 0); -- Data word "network to application" + APL_TYP_IN: in STD_LOGIC_VECTOR (2 downto 0); -- Which kind of data word: DAT, HDR or TRM + APL_DATAREADY_IN: in STD_LOGIC; -- Data word is valid and might be read out + APL_READ_OUT: out STD_LOGIC; -- Read data word + + -- APL Control port + APL_RUN_IN: in STD_LOGIC; -- Data transfer is running + APL_SEQNR_IN: in STD_LOGIC_VECTOR (7 downto 0) + ); +END component; + signal apl_data_out_apl1: STD_LOGIC_VECTOR (47 downto 0); signal apl_write_apl1: STD_LOGIC; signal apl_fifo_full_apl1: STD_LOGIC; @@ -227,8 +328,8 @@ signal ctrl: std_logic_vector(31 downto 0) := (others => '0'); begin - clk <= not clk after 5ns; - clk2 <= not clk2 after 5.1ns; + clk <= not clk after 15.15ns; + clk2 <= not clk2 after 15.00ns; MED_DATA_1_to_2_api1_m(51 downto 0) <= MED_DATA_1_to_2_api1; MED_DATA_1_to_2_api1_m(55 downto 52) <= "0000"; --set CID to 0 @@ -242,7 +343,7 @@ begin DO_RESET : process begin reset <= '1'; - wait for 30ns; + wait for 300ns; reset <= '0'; ctrl(8 downto 0) <= "100000000"; --only fixed -- ctrl(8 downto 0) <= "111111111"; --only rr @@ -260,8 +361,8 @@ APL1: trb_net_dummy_apl generic map ( TARGET_ADDRESS => x"0002", -- TARGET_ADDRESS => x"000f", - PREFILL_LENGTH => 0, - TRANSFER_LENGTH => 4) + PREFILL_LENGTH => 3, + TRANSFER_LENGTH => 6) -- TRANSFER_LENGTH => 16) port map ( CLK => clk, @@ -289,14 +390,14 @@ APL1: trb_net_dummy_apl APL_SEQNR_IN => apl_seqnr_apl1 ); -APL2: trb_net_dummy_apl +APL2: trb_net_dummy_passive_apl generic map ( TARGET_ADDRESS => x"0001", PREFILL_LENGTH => 0, -- TRANSFER_LENGTH => 2) TRANSFER_LENGTH => 8) port map ( - CLK => clk2, + CLK => clk, RESET => reset, CLK_EN => '1', @@ -370,11 +471,11 @@ API1: trb_net_active_apimbuf MPLEX_CTRL => ctrl ); -API2: trb_net_active_apimbuf +API2: trb_net_passive_apimbuf generic map ( FIFO_TERM_BUFFER_DEPTH => 3) port map ( - CLK => clk2, + CLK => clk, RESET => reset, CLK_EN => '1', @@ -422,7 +523,7 @@ API2: trb_net_active_apimbuf LVDS1: trb_net_med_13bit_slow generic map( - TRANSMISSION_CLOCK_DIVIDER => 2 + TRANSMISSION_CLOCK_DIVIDER => 4 ) port map( -- Misc @@ -466,11 +567,11 @@ LVDS1: trb_net_med_13bit_slow LVDS2: trb_net_med_13bit_slow generic map( - TRANSMISSION_CLOCK_DIVIDER => 2 + TRANSMISSION_CLOCK_DIVIDER => 4 ) port map( -- Misc - CLK => clk2, + CLK => clk, RESET => reset, CLK_EN => '1', @@ -510,9 +611,9 @@ LVDS2: trb_net_med_13bit_slow end trb_net_lvds_chain_testbench_arch; --- fuse -prj trb_net_lvds_chain_testbench_beh.prj -top trb_net_lvds_chain_testbench -o trb_net_lvds_chain_testbench +-- fuse -prj ise/trb_net_lvds_chain_testbench_beh.prj -top trb_net_lvds_chain_testbench -o trb_net_lvds_chain_testbench --- trb_net_lvds_chain_testbench -tclbatch lvds_chain_testsim.tcl +-- trb_net_lvds_chain_testbench -tclbatch trbnetendpoint_testbench.tcl -- ntrace select -o on -m / -l this -- ntrace start diff --git a/testbench/trb_net_lvds_chain_testbench_beh.prj b/testbench/trb_net_lvds_chain_testbench_beh.prj index fa937d6..db80bd5 100644 --- a/testbench/trb_net_lvds_chain_testbench_beh.prj +++ b/testbench/trb_net_lvds_chain_testbench_beh.prj @@ -10,9 +10,13 @@ vhdl work "../trb_net_priority_encoder.vhd" vhdl work "../trb_net_priority_arbiter.vhd" vhdl work "../trb_net_pattern_gen.vhd" vhdl work "../trb_net_io_multiplexer.vhd" +vhdl work "../trb_net_term.vhd" +vhdl work "../trb_net_base_api.vhd" vhdl work "../trb_net_active_api.vhd" -vhdl work "../trb_net_active_apibuf.vhd" vhdl work "../trb_net_active_apimbuf.vhd" +vhdl work "../trb_net_passive_api.vhd" +vhdl work "../trb_net_passive_apimbuf.vhd" vhdl work "../trb_net_med_13bit_slow.vhd" vhdl work "trb_net_dummy_apl.vhd" +vhdl work "trb_net_dummy_passive_apl.vhd" vhdl work "trb_net_lvds_chain_testbench.vhd" diff --git a/trb_net16_endpoint_0_trg_1_api.vhd b/trb_net16_endpoint_0_trg_1_api.vhd index 53944bc..e592841 100644 --- a/trb_net16_endpoint_0_trg_1_api.vhd +++ b/trb_net16_endpoint_0_trg_1_api.vhd @@ -19,12 +19,12 @@ entity trb_net16_endpoint_0_trg_1_api is FIFO_TO_INT_DEPTH : integer range 0 to 6 := c_FIFO_SMALL; FIFO_TO_APL_DEPTH : integer range 0 to 6 := c_FIFO_SMALL; SBUF_VERSION : integer range 0 to 1 := c_SBUF_FULL; - MUX_SECURE_MODE : integer range 0 to 1 := c_SECURE_MODE; + MUX_SECURE_MODE : integer range 0 to 1 := c_NON_SECURE_MODE; IBUF_SECURE_MODE : integer range 0 to 1 := c_SECURE_MODE; - OBUF_DATA_COUNT_WIDTH : integer range 0 to 1 := std_DATA_COUNT_WIDTH; + OBUF_DATA_COUNT_WIDTH : integer range 0 to 7 := std_DATA_COUNT_WIDTH; INIT_CAN_SEND_DATA : integer range 0 to 1 := c_YES; REPLY_CAN_SEND_DATA : integer range 0 to 1 := c_YES; - DAT_CHANNEL : integer range 0 to 3 := c_SLOW_CONTROL_CHANNEL + DAT_CHANNEL : integer range 0 to 3 := c_SLOW_CTRL_CHANNEL ); port( diff --git a/trb_net16_hub_base.vhd b/trb_net16_hub_base.vhd index 060520c..27af05e 100644 --- a/trb_net16_hub_base.vhd +++ b/trb_net16_hub_base.vhd @@ -15,7 +15,7 @@ entity trb_net16_hub_base is HUB_CTRL_CHANNELNUM : integer range 0 to 3 := 0;--c_SLOW_CTRL_CHANNEL; HUB_CTRL_DEPTH : integer range 0 to 6 := c_FIFO_SMALL; HUB_CTRL_REG_ADDR_WIDTH : integer range 1 to 7 := 4; - HUB_USED_CHANNELS : hub_channel_config_t := (c_YES,c_NO,c_YES,c_YES); + HUB_USED_CHANNELS : hub_channel_config_t := (c_YES,c_YES,c_YES,c_YES); IBUF_SECURE_MODE : integer range 0 to 1 := c_NO; --media interfaces MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := 12; diff --git a/trb_net16_io_multiplexer.vhd b/trb_net16_io_multiplexer.vhd index 5c1805e..d4887c3 100644 --- a/trb_net16_io_multiplexer.vhd +++ b/trb_net16_io_multiplexer.vhd @@ -243,7 +243,7 @@ ARBITER: trb_net_priority_arbiter CTRL => CTRL ); - arbiter_CLK_EN <= CLK_EN and not endpoint_locked; + arbiter_CLK_EN <= CLK_EN and not next_endpoint_locked; -- we have to care to read four packets from every endpoint process(current_mux_buffer, mux_read, endpoint_locked, current_mux_packet_number) diff --git a/trb_net16_med_tlk.vhd b/trb_net16_med_tlk.vhd index 912c322..d2a22c5 100644 --- a/trb_net16_med_tlk.vhd +++ b/trb_net16_med_tlk.vhd @@ -57,6 +57,7 @@ architecture trb_net16_med_tlk_arch of trb_net16_med_tlk is signal fifo_din_a : std_logic_vector(17 downto 0); signal fifo_dout_a : std_logic_vector(17 downto 0); + signal fifo_wr_en_a : std_logic; signal fifo_rd_en_a : std_logic; signal fifo_empty_a : std_logic; signal fifo_full_a : std_logic; @@ -82,7 +83,7 @@ begin STAT(31 downto 14) <= (others => '0'); TLK_TX_ER <= '0'; - TLK_ENABLE <= not RESET; + TLK_ENABLE <= '1'; TLK_LCKREFN <= '1'; TLK_PRBSEN <= '0'; TLK_LOOPEN <= '0'; @@ -98,7 +99,7 @@ begin read_clock_in => CLK, write_clock_in => TLK_RX_CLK, read_enable_in => fifo_rd_en_a, - write_enable_in => TLK_RX_DV, + write_enable_in => fifo_wr_en_a, fifo_gsr_in => fifo_reset, write_data_in => fifo_din_a, read_data_out => fifo_dout_a, @@ -107,6 +108,7 @@ begin fifostatus_out => fifo_status_a ); + fifo_wr_en_a <= TLK_RX_DV and not TLK_RX_ER; fifo_din_a <= '0' & TLK_RX_ER & TLK_RXD; fifo_rd_en_a <= not fifo_empty_a; fifo_reset <= RESET; diff --git a/trb_net16_sbuf.vhd b/trb_net16_sbuf.vhd index 2663850..a694d3a 100644 --- a/trb_net16_sbuf.vhd +++ b/trb_net16_sbuf.vhd @@ -22,7 +22,7 @@ USE IEEE.STD_LOGIC_UNSIGNED.ALL; library work; use work.trb_net_std.all; -use work.trb_net_cfg.all; + entity trb_net16_sbuf is generic ( diff --git a/trb_net16_term.vhd b/trb_net16_term.vhd index 57bbe04..a530da5 100644 --- a/trb_net16_term.vhd +++ b/trb_net16_term.vhd @@ -106,7 +106,8 @@ begin next_INT_DATA_OUT <= buf_INT_DATA_OUT; next_transfer_counter <= transfer_counter; - if (reg_APL_GOT_TRM = '1' and APL_RELEASE_TRM = '1') or send_trm = '1' or USE_APL_PORT = 0 then + if (reg_APL_GOT_TRM = '1' and (APL_RELEASE_TRM = '1' or USE_APL_PORT = 0)) or send_trm = '1' then +-- if (reg_APL_GOT_TRM = '1' and (APL_RELEASE_TRM = '1' )) or send_trm = '1' or 0 = 0 then --next_transfer_counter is used for transmission! if transfer_counter = "10" and INT_READ_IN = '1' then next_send_trm <= '0'; @@ -197,9 +198,11 @@ begin if rising_edge(CLK) then if RESET = '1' then send_trm <= '0'; + reg_APL_GOT_TRM <= '0'; reg_APL_SEQNR_OUT <= (others => '0'); else send_trm <= next_send_trm; + reg_APL_GOT_TRM <= next_APL_GOT_TRM; reg_APL_SEQNR_OUT <= next_APL_SEQNR_OUT; end if; end if; @@ -210,10 +213,8 @@ begin begin if rising_edge(CLK) then if RESET = '1' then - reg_APL_GOT_TRM <= '0'; reg_APL_DTYPE_OUT <= (others => '0'); else - reg_APL_GOT_TRM <= next_APL_GOT_TRM; reg_APL_DTYPE_OUT <= next_APL_DTYPE_OUT; end if; end if; diff --git a/trb_net_sbuf.vhd b/trb_net_sbuf.vhd index 8ba832b..3e55e15 100644 --- a/trb_net_sbuf.vhd +++ b/trb_net_sbuf.vhd @@ -19,7 +19,6 @@ USE IEEE.STD_LOGIC_UNSIGNED.ALL; library work; use work.trb_net_std.all; -use work.trb_net_cfg.all; entity trb_net_sbuf is generic ( diff --git a/trb_net_std.vhd b/trb_net_std.vhd index 5fc7b9f..ed971cd 100644 --- a/trb_net_std.vhd +++ b/trb_net_std.vhd @@ -14,7 +14,7 @@ package trb_net_std is constant c_DATA_WIDTH : integer := 16; constant c_NUM_WIDTH : integer := 2; - constant c_MUX_WIDTH : integer := 1; + constant c_MUX_WIDTH : integer := 3; constant c_USE_ACKNOWLEDGE : channel_config_t := (1,1,1,1); constant c_FORCE_REPLY : channel_config_t := (1,1,1,1); constant c_USE_REPLY_CHANNEL : channel_config_t := (1,1,1,1); @@ -32,7 +32,7 @@ package trb_net_std is constant std_USE_REPLY_CHANNEL: integer := 1; constant std_FIFO_DEPTH : integer := 1; constant std_DATA_COUNT_WIDTH : integer := 5; --max 7 - constant std_TERM_SECURE_MODE : integer := 0; + constant std_TERM_SECURE_MODE : integer := 0; constant std_MUX_SECURE_MODE : integer := 0; constant std_FORCE_REPLY : integer := 1;