]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
added lvds test bench, Ingo
authorhadeshyp <hadeshyp>
Fri, 2 Mar 2007 13:44:24 +0000 (13:44 +0000)
committerhadeshyp <hadeshyp>
Fri, 2 Mar 2007 13:44:24 +0000 (13:44 +0000)
testbench/lvds_chain_testsim.tcl [new file with mode: 0644]
testbench/settings_lvds_chain.sav [new file with mode: 0644]
testbench/trb_net_active_api_testbench_beh.prj [new file with mode: 0644]
testbench/trb_net_lvds_chain_testbench.vhd [new file with mode: 0644]
testbench/trb_net_lvds_chain_testbench_beh.prj [new file with mode: 0644]
trb_net_med_13bit_slow.vhd

diff --git a/testbench/lvds_chain_testsim.tcl b/testbench/lvds_chain_testsim.tcl
new file mode 100644 (file)
index 0000000..d81c1e5
--- /dev/null
@@ -0,0 +1,17 @@
+vcd dumpfile vcdfile.vcd
+vcd dumpvars lvds
+vcd dumpvars -m /APL1/
+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 /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/ACTIVE_API/
+vcd dumpvars -m /LVDS1/
+vcd dumpvars -m /LVDS2/
+run 10000 ns
+quit
\ No newline at end of file
diff --git a/testbench/settings_lvds_chain.sav b/testbench/settings_lvds_chain.sav
new file mode 100644 (file)
index 0000000..12ced52
--- /dev/null
@@ -0,0 +1,98 @@
+[size] 1272 936
+[pos] -1 -1
+*-29.799541 160100000 -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_lvds_chain_testbench.APL1.apl_write_out
+trb_net_lvds_chain_testbench.APL1.apl_fifo_full_in
+@22
+#apl_data_out[47:0] trb_net_lvds_chain_testbench.APL1.apl_data_out[47] trb_net_lvds_chain_testbench.APL1.apl_data_out[46] trb_net_lvds_chain_testbench.APL1.apl_data_out[45] trb_net_lvds_chain_testbench.APL1.apl_data_out[44] trb_net_lvds_chain_testbench.APL1.apl_data_out[43] trb_net_lvds_chain_testbench.APL1.apl_data_out[42] trb_net_lvds_chain_testbench.APL1.apl_data_out[41] trb_net_lvds_chain_testbench.APL1.apl_data_out[40] trb_net_lvds_chain_testbench.APL1.apl_data_out[39] trb_net_lvds_chain_testbench.APL1.apl_data_out[38] trb_net_lvds_chain_testbench.APL1.apl_data_out[37] trb_net_lvds_chain_testbench.APL1.apl_data_out[36] trb_net_lvds_chain_testbench.APL1.apl_data_out[35] trb_net_lvds_chain_testbench.APL1.apl_data_out[34] trb_net_lvds_chain_testbench.APL1.apl_data_out[33] trb_net_lvds_chain_testbench.APL1.apl_data_out[32] trb_net_lvds_chain_testbench.APL1.apl_data_out[31] trb_net_lvds_chain_testbench.APL1.apl_data_out[30] trb_net_lvds_chain_testbench.APL1.apl_data_out[29] trb_net_lvds_chain_testbench.APL1.apl_data_out[28] trb_net_lvds_chain_testbench.APL1.apl_data_out[27] trb_net_lvds_chain_testbench.APL1.apl_data_out[26] trb_net_lvds_chain_testbench.APL1.apl_data_out[25] trb_net_lvds_chain_testbench.APL1.apl_data_out[24] trb_net_lvds_chain_testbench.APL1.apl_data_out[23] trb_net_lvds_chain_testbench.APL1.apl_data_out[22] trb_net_lvds_chain_testbench.APL1.apl_data_out[21] trb_net_lvds_chain_testbench.APL1.apl_data_out[20] trb_net_lvds_chain_testbench.APL1.apl_data_out[19] trb_net_lvds_chain_testbench.APL1.apl_data_out[18] trb_net_lvds_chain_testbench.APL1.apl_data_out[17] trb_net_lvds_chain_testbench.APL1.apl_data_out[16] trb_net_lvds_chain_testbench.APL1.apl_data_out[15] trb_net_lvds_chain_testbench.APL1.apl_data_out[14] trb_net_lvds_chain_testbench.APL1.apl_data_out[13] trb_net_lvds_chain_testbench.APL1.apl_data_out[12] trb_net_lvds_chain_testbench.APL1.apl_data_out[11] trb_net_lvds_chain_testbench.APL1.apl_data_out[10] trb_net_lvds_chain_testbench.APL1.apl_data_out[9] trb_net_lvds_chain_testbench.APL1.apl_data_out[8] trb_net_lvds_chain_testbench.APL1.apl_data_out[7] trb_net_lvds_chain_testbench.APL1.apl_data_out[6] trb_net_lvds_chain_testbench.APL1.apl_data_out[5] trb_net_lvds_chain_testbench.APL1.apl_data_out[4] trb_net_lvds_chain_testbench.APL1.apl_data_out[3] trb_net_lvds_chain_testbench.APL1.apl_data_out[2] trb_net_lvds_chain_testbench.APL1.apl_data_out[1] trb_net_lvds_chain_testbench.APL1.apl_data_out[0]
+@28
+trb_net_lvds_chain_testbench.APL1.apl_send_out
+@22
+#apl_data_in[47:0] trb_net_lvds_chain_testbench.APL1.apl_data_in[47] trb_net_lvds_chain_testbench.APL1.apl_data_in[46] trb_net_lvds_chain_testbench.APL1.apl_data_in[45] trb_net_lvds_chain_testbench.APL1.apl_data_in[44] trb_net_lvds_chain_testbench.APL1.apl_data_in[43] trb_net_lvds_chain_testbench.APL1.apl_data_in[42] trb_net_lvds_chain_testbench.APL1.apl_data_in[41] trb_net_lvds_chain_testbench.APL1.apl_data_in[40] trb_net_lvds_chain_testbench.APL1.apl_data_in[39] trb_net_lvds_chain_testbench.APL1.apl_data_in[38] trb_net_lvds_chain_testbench.APL1.apl_data_in[37] trb_net_lvds_chain_testbench.APL1.apl_data_in[36] trb_net_lvds_chain_testbench.APL1.apl_data_in[35] trb_net_lvds_chain_testbench.APL1.apl_data_in[34] trb_net_lvds_chain_testbench.APL1.apl_data_in[33] trb_net_lvds_chain_testbench.APL1.apl_data_in[32] trb_net_lvds_chain_testbench.APL1.apl_data_in[31] trb_net_lvds_chain_testbench.APL1.apl_data_in[30] trb_net_lvds_chain_testbench.APL1.apl_data_in[29] trb_net_lvds_chain_testbench.APL1.apl_data_in[28] trb_net_lvds_chain_testbench.APL1.apl_data_in[27] trb_net_lvds_chain_testbench.APL1.apl_data_in[26] trb_net_lvds_chain_testbench.APL1.apl_data_in[25] trb_net_lvds_chain_testbench.APL1.apl_data_in[24] trb_net_lvds_chain_testbench.APL1.apl_data_in[23] trb_net_lvds_chain_testbench.APL1.apl_data_in[22] trb_net_lvds_chain_testbench.APL1.apl_data_in[21] trb_net_lvds_chain_testbench.APL1.apl_data_in[20] trb_net_lvds_chain_testbench.APL1.apl_data_in[19] trb_net_lvds_chain_testbench.APL1.apl_data_in[18] trb_net_lvds_chain_testbench.APL1.apl_data_in[17] trb_net_lvds_chain_testbench.APL1.apl_data_in[16] trb_net_lvds_chain_testbench.APL1.apl_data_in[15] trb_net_lvds_chain_testbench.APL1.apl_data_in[14] trb_net_lvds_chain_testbench.APL1.apl_data_in[13] trb_net_lvds_chain_testbench.APL1.apl_data_in[12] trb_net_lvds_chain_testbench.APL1.apl_data_in[11] trb_net_lvds_chain_testbench.APL1.apl_data_in[10] trb_net_lvds_chain_testbench.APL1.apl_data_in[9] trb_net_lvds_chain_testbench.APL1.apl_data_in[8] trb_net_lvds_chain_testbench.APL1.apl_data_in[7] trb_net_lvds_chain_testbench.APL1.apl_data_in[6] trb_net_lvds_chain_testbench.APL1.apl_data_in[5] trb_net_lvds_chain_testbench.APL1.apl_data_in[4] trb_net_lvds_chain_testbench.APL1.apl_data_in[3] trb_net_lvds_chain_testbench.APL1.apl_data_in[2] trb_net_lvds_chain_testbench.APL1.apl_data_in[1] trb_net_lvds_chain_testbench.APL1.apl_data_in[0]
+@28
+#apl_typ_in[2:0] trb_net_lvds_chain_testbench.APL1.apl_typ_in[2] trb_net_lvds_chain_testbench.APL1.apl_typ_in[1] trb_net_lvds_chain_testbench.APL1.apl_typ_in[0]
+trb_net_lvds_chain_testbench.APL1.apl_dataready_in
+trb_net_lvds_chain_testbench.API1.ACTIVE_API.apl_dataready_out
+@22
+#apl_seqnr_in[7:0] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[7] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[6] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[5] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[4] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[3] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[2] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[1] trb_net_lvds_chain_testbench.APL1.apl_seqnr_in[0]
+@200
+-API
+@28
+trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_dataready_out
+trb_net_lvds_chain_testbench.API1.ACTIVE_API.int_init_read_in
+@22
+#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]
+@28
+trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_read
+@22
+#fifo_to_int_data_out[47:0] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[47] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[46] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[45] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[44] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[43] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[42] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[41] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[40] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[39] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[38] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[37] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[36] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[35] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[34] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[33] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[32] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[31] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[30] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[29] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[28] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[27] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[26] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[25] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[24] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[23] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[22] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[21] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[20] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[19] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[18] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[17] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[16] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[15] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[14] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[13] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[12] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[11] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[10] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[9] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[8] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[7] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[6] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[5] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[4] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[3] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[2] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_data_out[1] trb_net_lvds_chain_testbench.API1.ACTIVE_API.fifo_to_int_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]
+@200
+-OBUF
+@28
+trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_dataready_out
+@22
+#med_data_out[50:0] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[50] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[49] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[48] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[47] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[46] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[45] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[44] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[43] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[42] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[41] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[40] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[39] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[38] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[37] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[36] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[35] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[34] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[33] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[32] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[31] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[30] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[29] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[28] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[27] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[26] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[25] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[24] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[23] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[22] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[21] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[20] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[19] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[18] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[17] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[16] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[15] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[14] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[13] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[12] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[11] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[10] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[9] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[8] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[7] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[6] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[5] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[4] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[3] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[2] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[1] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_data_out[0]
+@28
+trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.med_read_in
+@22
+#ctrl_buffer[31:0] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[31] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[30] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[29] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[28] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[27] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[26] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[25] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[24] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[23] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[22] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[21] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[20] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[19] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[18] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[17] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[16] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[15] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[14] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[13] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[12] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[11] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[10] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[9] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[8] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[7] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[6] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[5] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[4] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[3] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[2] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[1] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.ctrl_buffer[0]
+@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]
+@22
+#stat_locked[15:0] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[15] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[14] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[13] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[12] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[11] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[10] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[9] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[8] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[7] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[6] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[5] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[4] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[3] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[2] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[1] trb_net_lvds_chain_testbench.API1.IOBUF.INITOBUF.stat_locked[0]
+@200
+-
+-LVDS
+@22
+#int_data_in[55:0] trb_net_lvds_chain_testbench.LVDS1.int_data_in[55] trb_net_lvds_chain_testbench.LVDS1.int_data_in[54] trb_net_lvds_chain_testbench.LVDS1.int_data_in[53] trb_net_lvds_chain_testbench.LVDS1.int_data_in[52] trb_net_lvds_chain_testbench.LVDS1.int_data_in[51] trb_net_lvds_chain_testbench.LVDS1.int_data_in[50] trb_net_lvds_chain_testbench.LVDS1.int_data_in[49] trb_net_lvds_chain_testbench.LVDS1.int_data_in[48] trb_net_lvds_chain_testbench.LVDS1.int_data_in[47] trb_net_lvds_chain_testbench.LVDS1.int_data_in[46] trb_net_lvds_chain_testbench.LVDS1.int_data_in[45] trb_net_lvds_chain_testbench.LVDS1.int_data_in[44] trb_net_lvds_chain_testbench.LVDS1.int_data_in[43] trb_net_lvds_chain_testbench.LVDS1.int_data_in[42] trb_net_lvds_chain_testbench.LVDS1.int_data_in[41] trb_net_lvds_chain_testbench.LVDS1.int_data_in[40] trb_net_lvds_chain_testbench.LVDS1.int_data_in[39] trb_net_lvds_chain_testbench.LVDS1.int_data_in[38] trb_net_lvds_chain_testbench.LVDS1.int_data_in[37] trb_net_lvds_chain_testbench.LVDS1.int_data_in[36] trb_net_lvds_chain_testbench.LVDS1.int_data_in[35] trb_net_lvds_chain_testbench.LVDS1.int_data_in[34] trb_net_lvds_chain_testbench.LVDS1.int_data_in[33] trb_net_lvds_chain_testbench.LVDS1.int_data_in[32] trb_net_lvds_chain_testbench.LVDS1.int_data_in[31] trb_net_lvds_chain_testbench.LVDS1.int_data_in[30] trb_net_lvds_chain_testbench.LVDS1.int_data_in[29] trb_net_lvds_chain_testbench.LVDS1.int_data_in[28] trb_net_lvds_chain_testbench.LVDS1.int_data_in[27] trb_net_lvds_chain_testbench.LVDS1.int_data_in[26] trb_net_lvds_chain_testbench.LVDS1.int_data_in[25] trb_net_lvds_chain_testbench.LVDS1.int_data_in[24] trb_net_lvds_chain_testbench.LVDS1.int_data_in[23] trb_net_lvds_chain_testbench.LVDS1.int_data_in[22] trb_net_lvds_chain_testbench.LVDS1.int_data_in[21] trb_net_lvds_chain_testbench.LVDS1.int_data_in[20] trb_net_lvds_chain_testbench.LVDS1.int_data_in[19] trb_net_lvds_chain_testbench.LVDS1.int_data_in[18] trb_net_lvds_chain_testbench.LVDS1.int_data_in[17] trb_net_lvds_chain_testbench.LVDS1.int_data_in[16] trb_net_lvds_chain_testbench.LVDS1.int_data_in[15] trb_net_lvds_chain_testbench.LVDS1.int_data_in[14] trb_net_lvds_chain_testbench.LVDS1.int_data_in[13] trb_net_lvds_chain_testbench.LVDS1.int_data_in[12] trb_net_lvds_chain_testbench.LVDS1.int_data_in[11] trb_net_lvds_chain_testbench.LVDS1.int_data_in[10] trb_net_lvds_chain_testbench.LVDS1.int_data_in[9] trb_net_lvds_chain_testbench.LVDS1.int_data_in[8] trb_net_lvds_chain_testbench.LVDS1.int_data_in[7] trb_net_lvds_chain_testbench.LVDS1.int_data_in[6] trb_net_lvds_chain_testbench.LVDS1.int_data_in[5] trb_net_lvds_chain_testbench.LVDS1.int_data_in[4] trb_net_lvds_chain_testbench.LVDS1.int_data_in[3] trb_net_lvds_chain_testbench.LVDS1.int_data_in[2] trb_net_lvds_chain_testbench.LVDS1.int_data_in[1] trb_net_lvds_chain_testbench.LVDS1.int_data_in[0]
+@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.LVDS1.med_transmission_clk_out
+trb_net_lvds_chain_testbench.LVDS1.med_carrier_out
+@200
+-
+-LVDS (rec)
+@22
+#med_data_in[12:0] trb_net_lvds_chain_testbench.LVDS2.med_data_in[12] trb_net_lvds_chain_testbench.LVDS2.med_data_in[11] trb_net_lvds_chain_testbench.LVDS2.med_data_in[10] trb_net_lvds_chain_testbench.LVDS2.med_data_in[9] trb_net_lvds_chain_testbench.LVDS2.med_data_in[8] trb_net_lvds_chain_testbench.LVDS2.med_data_in[7] trb_net_lvds_chain_testbench.LVDS2.med_data_in[6] trb_net_lvds_chain_testbench.LVDS2.med_data_in[5] trb_net_lvds_chain_testbench.LVDS2.med_data_in[4] trb_net_lvds_chain_testbench.LVDS2.med_data_in[3] trb_net_lvds_chain_testbench.LVDS2.med_data_in[2] trb_net_lvds_chain_testbench.LVDS2.med_data_in[1] trb_net_lvds_chain_testbench.LVDS2.med_data_in[0]
+@28
+trb_net_lvds_chain_testbench.LVDS2.med_transmission_clk_in
+trb_net_lvds_chain_testbench.LVDS2.med_carrier_in
+@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]
+@29
+trb_net_lvds_chain_testbench.LVDS2.int_read_in
+@28
+trb_net_lvds_chain_testbench.LVDS2.int_dataready_out
+@200
+-
+-IBUF (Rec)
+@22
+#stat_locked[15:0] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[15] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[14] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[13] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[12] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[11] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[10] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[9] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[8] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[7] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[6] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[5] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[4] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[3] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[2] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[1] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_locked[0]
+@28
+trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_read_in
+@22
+#fifo_data_out[50:0] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[50] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[49] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[48] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[47] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[46] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[45] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[44] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[43] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[42] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[41] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[40] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[39] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[38] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[37] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[36] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[35] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[34] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[33] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[32] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[31] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[30] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[29] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[28] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[27] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[26] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[25] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[24] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[23] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[22] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[21] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[20] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[19] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[18] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[17] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[16] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[15] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[14] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[13] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[12] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[11] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[10] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[9] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[8] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[7] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[6] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[5] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[4] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[3] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[2] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[1] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.fifo_data_out[0]
+#int_data_out[50:0] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[50] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[49] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[48] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[47] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[46] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[45] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[44] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[43] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[42] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[41] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[40] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[39] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[38] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[37] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[36] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[35] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[34] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[33] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[32] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[31] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[30] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[29] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[28] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[27] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[26] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[25] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[24] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[23] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[22] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[21] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[20] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[19] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[18] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[17] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[16] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[15] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[14] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[13] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[12] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[11] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[10] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[9] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[8] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[7] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[6] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[5] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[4] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[3] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[2] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[1] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.int_data_out[0]
+@28
+trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.reg_eob_out
+@22
+#stat_buffer[31:0] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[31] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[30] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[29] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[28] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[27] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[26] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[25] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[24] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[23] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[22] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[21] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[20] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[19] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[18] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[17] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[16] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[15] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[14] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[13] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[12] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[11] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[10] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[9] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[8] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[7] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[6] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[5] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[4] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[3] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[2] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[1] trb_net_lvds_chain_testbench.API2.IOBUF.INITIBUF.stat_buffer[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
+@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]
+@28
+trb_net_lvds_chain_testbench.API1.ACTIVE_API.INIT_SBUF.next_got_overflow
diff --git a/testbench/trb_net_active_api_testbench_beh.prj b/testbench/trb_net_active_api_testbench_beh.prj
new file mode 100644 (file)
index 0000000..5b8c3b6
--- /dev/null
@@ -0,0 +1,6 @@
+vhdl work "../trb_net_std.vhd"
+vhdl work "../trb_net_fifo.vhd"
+vhdl work "../xilinx/trb_net_fifo_arch.vhd"
+vhdl work "../xilinx/shift_lut_x16.vhd"
+vhdl work "../trb_net_active_api.vhd"
+vhdl work "trb_net_active_api_testbench.vhd"
diff --git a/testbench/trb_net_lvds_chain_testbench.vhd b/testbench/trb_net_lvds_chain_testbench.vhd
new file mode 100644 (file)
index 0000000..60b8046
--- /dev/null
@@ -0,0 +1,521 @@
+library ieee;
+
+use ieee.std_logic_1164.all;
+USE ieee.std_logic_signed.ALL;
+USE ieee.std_logic_arith.ALL;
+
+USE std.textio.ALL;
+USE ieee.std_logic_textio.ALL;
+
+entity trb_net_lvds_chain_testbench is
+
+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 reset : std_logic := '1';
+
+component trb_net_med_13bit_slow is
+generic( 
+  TRANSMISSION_CLOCK_DIVIDER: integer := 1 
+  );
+
+
+  port(
+    --  Misc
+    CLK    : in std_logic;      
+    RESET  : in std_logic;    
+    CLK_EN : in std_logic;
+    -- Internal direction port (MII)
+    -- do not change this interface!!! 
+    -- 1st part: from the medium to the internal logic (trbnet)
+    INT_DATAREADY_OUT: out STD_LOGIC;  --Data word is reconstructed from media
+                                       --and ready to be read out (the IOBUF MUST read)
+    INT_DATA_OUT:      out STD_LOGIC_VECTOR (55 downto 0); -- Data word
+    INT_READ_IN:       in  STD_LOGIC; 
+    INT_ERROR_OUT:     out STD_LOGIC_VECTOR (2 downto 0);  -- Status bits
+    -- 2nd part: from the internal logic (trbnet) to the medium
+    INT_DATAREADY_IN:  in  STD_LOGIC; -- Data word is offered for the Media 
+    INT_DATA_IN:       in  STD_LOGIC_VECTOR (55 downto 0); -- Data word
+    INT_READ_OUT:      out STD_LOGIC; -- offered word is read
+    INT_ERROR_IN:      in  STD_LOGIC_VECTOR (2 downto 0);  -- Status bits
+    -- (end do not change this interface!!!) 
+
+    
+    --  Media direction port
+    -- in this case for the cable => 32 lines in total
+    MED_DATA_OUT:             out STD_LOGIC_VECTOR (12 downto 0); -- Data word 
+                          --(incl. debugging errorbits)
+    MED_TRANSMISSION_CLK_OUT: out STD_LOGIC;
+    MED_CARRIER_OUT:          out STD_LOGIC;
+    MED_PARITY_OUT:           out STD_LOGIC;
+    MED_DATA_IN:              in  STD_LOGIC_VECTOR (12 downto 0); -- Data word
+    MED_TRANSMISSION_CLK_IN:  in  STD_LOGIC;
+    MED_CARRIER_IN:           in  STD_LOGIC;
+    MED_PARITY_IN:            in  STD_LOGIC;
+
+    -- Status and control port => this never can hurt
+    STAT: out STD_LOGIC_VECTOR (31 downto 0);
+              --STAT(0): Busy reading from media
+              --STAT(1): Busy writing to media
+              --STAT(31 downto 24): Datain(63 downto 56
+    CTRL: in  STD_LOGIC_VECTOR (31 downto 0)   
+              --CTRL(24..31) -> lvds-data(63 downto 56) via lvds 
+                     --once for each packet
+              --CTRL(16..18) -> debugbits updated every CLK 
+                                           --lvds(12 downto 10)(10bit-version only)
+              --CTRL(0..5) -> lvds-data(69 downto 64) (10bit-version only)
+    );
+end component;
+component trb_net_active_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;
+             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;
+signal apl_short_transfer_apl1: STD_LOGIC;
+signal apl_dtype_apl1:          STD_LOGIC_VECTOR (3 downto 0);
+signal apl_error_pattern_apl1:  STD_LOGIC_VECTOR (31 downto 0);
+signal apl_send_apl1:           STD_LOGIC;
+signal apl_target_adress_apl1:  STD_LOGIC_VECTOR (15 downto 0);
+signal apl_data_in_apl1:        STD_LOGIC_VECTOR (47 downto 0); 
+signal apl_typ_apl1:            STD_LOGIC_VECTOR (2 downto 0);
+signal apl_dataready_apl1:      STD_LOGIC;
+signal apl_read_apl1:           STD_LOGIC;
+signal apl_run_apl1:            STD_LOGIC;
+signal apl_seqnr_apl1:          STD_LOGIC_VECTOR (7 downto 0);
+
+signal apl_data_out_apl2:       STD_LOGIC_VECTOR (47 downto 0);
+signal apl_write_apl2:          STD_LOGIC;
+signal apl_fifo_full_apl2:      STD_LOGIC;
+signal apl_short_transfer_apl2: STD_LOGIC;
+signal apl_dtype_apl2:          STD_LOGIC_VECTOR (3 downto 0);
+signal apl_error_pattern_apl2:  STD_LOGIC_VECTOR (31 downto 0);
+signal apl_send_apl2:           STD_LOGIC;
+signal apl_target_adress_apl2:  STD_LOGIC_VECTOR (15 downto 0);
+signal apl_data_in_apl2:        STD_LOGIC_VECTOR (47 downto 0); 
+signal apl_typ_apl2:            STD_LOGIC_VECTOR (2 downto 0);
+signal apl_dataready_apl2:      STD_LOGIC;
+signal apl_read_apl2:           STD_LOGIC;
+signal apl_run_apl2:            STD_LOGIC;
+signal apl_seqnr_apl2:          STD_LOGIC_VECTOR (7 downto 0);
+
+
+signal MED_DATAREADY_1_to_2_api1: STD_LOGIC;
+signal MED_DATAREADY_1_to_2_api2: STD_LOGIC;
+signal MED_DATA_1_to_2_api1:      STD_LOGIC_VECTOR (51 downto 0);
+signal MED_DATA_1_to_2_api1_m:      STD_LOGIC_VECTOR (55 downto 0);
+signal MED_DATA_1_to_2_api2:      STD_LOGIC_VECTOR (51 downto 0);
+signal MED_DATA_1_to_2_api2_m:      STD_LOGIC_VECTOR (55 downto 0);
+signal MED_READ_1_to_2_api1:      STD_LOGIC;
+signal MED_READ_1_to_2_api2:      STD_LOGIC;
+signal MED_DATAREADY_2_to_1_api1: STD_LOGIC;
+signal MED_DATAREADY_2_to_1_api2: STD_LOGIC;
+signal MED_DATA_2_to_1_api1:      STD_LOGIC_VECTOR (51 downto 0);
+signal MED_DATA_2_to_1_api1_m:      STD_LOGIC_VECTOR (55 downto 0);
+signal MED_DATA_2_to_1_api2:      STD_LOGIC_VECTOR (51 downto 0);
+signal MED_DATA_2_to_1_api2_m:      STD_LOGIC_VECTOR (55 downto 0);
+signal MED_READ_2_to_1_api1:      STD_LOGIC;
+signal MED_READ_2_to_1_api2:      STD_LOGIC;
+
+signal lvds: std_logic_vector(31 downto 0) := (others => '0');
+
+signal ctrl: std_logic_vector(31 downto 0) := (others => '0');
+
+begin
+
+
+  clk <= not clk after 5ns;
+  
+  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
+  MED_DATA_2_to_1_api1 <= MED_DATA_2_to_1_api1_m(51 downto 0);
+  
+  MED_DATA_2_to_1_api2_m(51 downto 0) <= MED_DATA_2_to_1_api2;
+  MED_DATA_1_to_2_api2 <= MED_DATA_1_to_2_api2_m(51 downto 0);
+  MED_DATA_2_to_1_api2_m(55 downto 52) <= "0000";  --set CID to 0
+  
+                           
+  DO_RESET : process
+  begin
+    reset <= '1';
+    wait for 30ns;
+    reset <= '0';
+    ctrl(8 downto 0) <= "100000000";  --only fixed
+--    ctrl(8 downto 0) <= "111111111";  --only rr
+--    ctrl(8 downto 0) <= "101010101";  --mixed
+    wait for 20ns;
+    ctrl(8 downto 0) <= "000000000";
+    wait;
+  end process DO_RESET;
+
+-------------------------------------------------------------------------------
+--  the 2 APLs
+-------------------------------------------------------------------------------
+
+APL1: trb_net_dummy_apl
+    generic map (
+      TARGET_ADDRESS => x"0002",
+--      TARGET_ADDRESS => x"000f",
+      PREFILL_LENGTH => 0,
+--      TRANSFER_LENGTH => 4)
+      TRANSFER_LENGTH => 16)
+    port map (
+      CLK             => clk,
+      RESET           => reset,
+      CLK_EN          => '1',
+
+      -- APL Transmitter port
+      APL_DATA_OUT           => apl_data_out_apl1,
+      APL_WRITE_OUT          => apl_write_apl1,
+      APL_FIFO_FULL_IN       => apl_fifo_full_apl1,
+      APL_SHORT_TRANSFER_OUT => apl_short_transfer_apl1,
+      APL_DTYPE_OUT          => apl_dtype_apl1,
+      APL_ERROR_PATTERN_OUT  => apl_error_pattern_apl1,
+      APL_SEND_OUT           => apl_send_apl1,
+      APL_TARGET_ADDRESS_OUT => apl_target_adress_apl1,
+
+      -- Receiver port
+      APL_DATA_IN      => apl_data_in_apl1,
+      APL_TYP_IN       => apl_typ_apl1,
+      APL_DATAREADY_IN => apl_dataready_apl1,
+      APL_READ_OUT     => apl_read_apl1,
+    
+      -- APL Control port
+      APL_RUN_IN   => apl_run_apl1,
+      APL_SEQNR_IN => apl_seqnr_apl1
+      );
+  
+APL2: trb_net_dummy_apl
+    generic map (
+      TARGET_ADDRESS => x"0001",
+      PREFILL_LENGTH => 0,
+--      TRANSFER_LENGTH => 2)
+      TRANSFER_LENGTH => 8)
+    port map (
+      CLK             => clk,
+      RESET           => reset,
+      CLK_EN          => '1',
+
+      -- APL Transmitter port
+      APL_DATA_OUT           => apl_data_out_apl2,
+      APL_WRITE_OUT          => apl_write_apl2,
+      APL_FIFO_FULL_IN       => apl_fifo_full_apl2,
+      APL_SHORT_TRANSFER_OUT => apl_short_transfer_apl2,
+      APL_DTYPE_OUT          => apl_dtype_apl2,
+      APL_ERROR_PATTERN_OUT  => apl_error_pattern_apl2,
+      APL_SEND_OUT           => apl_send_apl2,
+      APL_TARGET_ADDRESS_OUT => apl_target_adress_apl2,
+
+      -- Receiver port
+      APL_DATA_IN      => apl_data_in_apl2,
+      APL_TYP_IN       => apl_typ_apl2,
+      APL_DATAREADY_IN => apl_dataready_apl2,
+      APL_READ_OUT     => apl_read_apl2,
+    
+      -- APL Control port
+      APL_RUN_IN   => apl_run_apl2,
+      APL_SEQNR_IN => apl_seqnr_apl2
+      );
+
+-------------------------------------------------------------------------------
+-- the 2 APIs
+-------------------------------------------------------------------------------  
+
+API1: trb_net_active_apimbuf
+    generic map (
+      FIFO_TERM_BUFFER_DEPTH => 3)
+    port map (
+      CLK             => clk,
+      RESET           => reset,
+      CLK_EN          => '1',
+      
+      -- APL Transmitter port
+      APL_DATA_IN           => apl_data_out_apl1,
+      APL_WRITE_IN          => apl_write_apl1,
+      APL_FIFO_FULL_OUT     => apl_fifo_full_apl1,
+      APL_SHORT_TRANSFER_IN => apl_short_transfer_apl1,
+      APL_DTYPE_IN          => apl_dtype_apl1,
+      APL_ERROR_PATTERN_IN  => apl_error_pattern_apl1,
+      APL_SEND_IN           => apl_send_apl1,
+      APL_TARGET_ADDRESS_IN => apl_target_adress_apl1,
+
+      -- Receiver port
+      APL_DATA_OUT      => apl_data_in_apl1,
+      APL_TYP_OUT       => apl_typ_apl1,
+      APL_DATAREADY_OUT => apl_dataready_apl1,
+      APL_READ_IN       => apl_read_apl1,
+    
+      -- APL Control port
+      APL_RUN_OUT   => apl_run_apl1,
+      APL_SEQNR_OUT => apl_seqnr_apl1,
+      APL_MY_ADDRESS_IN => x"0001",
+    
+      MED_DATAREADY_OUT => MED_DATAREADY_1_to_2_api1,
+      MED_DATA_OUT      => MED_DATA_1_to_2_api1,
+      MED_READ_IN       => MED_READ_1_to_2_api1,
+      MED_ERROR_IN => (others => '0'),
+      MED_DATAREADY_IN  => MED_DATAREADY_2_to_1_api1,
+      MED_DATA_IN       => MED_DATA_2_to_1_api1,
+      MED_READ_OUT      => MED_READ_2_to_1_api1,
+    
+      CTRL_LOCKED     => (others => '0'),
+      CTRL_GEN        => (others => '0'),
+
+      STAT_CTRL_INIT_BUFFER     => (others => '0'),
+      STAT_CTRL_REPLY_BUFFER     => (others => '0'),
+      MPLEX_CTRL => ctrl
+      );
+
+API2: trb_net_active_apimbuf
+    generic map (
+      FIFO_TERM_BUFFER_DEPTH => 3)
+    port map (
+      CLK             => clk,
+      RESET           => reset,
+      CLK_EN          => '1',
+      
+      -- APL Transmitter port
+      APL_DATA_IN           => apl_data_out_apl2,
+      APL_WRITE_IN          => apl_write_apl2,
+      APL_FIFO_FULL_OUT     => apl_fifo_full_apl2,
+      APL_SHORT_TRANSFER_IN => apl_short_transfer_apl2,
+      APL_DTYPE_IN          => apl_dtype_apl2,
+      APL_ERROR_PATTERN_IN  => apl_error_pattern_apl2,
+      APL_SEND_IN           => apl_send_apl2,
+      APL_TARGET_ADDRESS_IN => apl_target_adress_apl2,
+
+      -- Receiver port
+      APL_DATA_OUT      => apl_data_in_apl2,
+      APL_TYP_OUT       => apl_typ_apl2,
+      APL_DATAREADY_OUT => apl_dataready_apl2,
+      APL_READ_IN       => apl_read_apl2,
+    
+      -- APL Control port
+      APL_RUN_OUT   => apl_run_apl2,
+      APL_SEQNR_OUT => apl_seqnr_apl2,
+      APL_MY_ADDRESS_IN => x"0002",
+      
+      MED_DATAREADY_OUT => MED_DATAREADY_2_to_1_api2,
+      MED_DATA_OUT      => MED_DATA_2_to_1_api2,
+      MED_READ_IN       => MED_READ_2_to_1_api2,
+      MED_ERROR_IN => (others => '0'),
+      MED_DATAREADY_IN  => MED_DATAREADY_1_to_2_api2,
+      MED_DATA_IN       => MED_DATA_1_to_2_api2,
+      MED_READ_OUT      => MED_READ_1_to_2_api2,
+    
+     
+      CTRL_LOCKED     => (others => '0'),
+      CTRL_GEN        => (others => '0'),
+
+      STAT_CTRL_INIT_BUFFER     => (others => '0'),
+      STAT_CTRL_REPLY_BUFFER     => (others => '0'),
+      MPLEX_CTRL => ctrl
+      );
+
+-------------------------------------------------------------------------------
+-- 2 LVDS slow media
+-------------------------------------------------------------------------------
+
+LVDS1: trb_net_med_13bit_slow
+  generic map( 
+    TRANSMISSION_CLOCK_DIVIDER => 4
+  )
+  port map(
+    --  Misc
+    CLK                => clk,
+    RESET              => reset,
+    CLK_EN             => '1',
+
+    INT_DATAREADY_OUT => MED_DATAREADY_2_to_1_api1,
+    INT_DATA_OUT      => MED_DATA_2_to_1_api1_m,
+    INT_READ_IN       => MED_READ_2_to_1_api1,
+--    INT_ERROR_OUT
+
+    INT_DATAREADY_IN  => MED_DATAREADY_1_to_2_api1,
+    INT_DATA_IN       => MED_DATA_1_to_2_api1_m,
+    INT_READ_OUT      => MED_READ_1_to_2_api1,
+    INT_ERROR_IN      => "000",
+    
+    --  Media direction port
+    -- in this case for the cable => 32 lines in total
+    MED_DATA_OUT             => lvds(12 downto 0),
+    MED_TRANSMISSION_CLK_OUT => lvds(13),
+    MED_CARRIER_OUT          => lvds(14),
+    MED_PARITY_OUT           => lvds(15),
+    MED_DATA_IN              => lvds(28 downto 16),
+    MED_TRANSMISSION_CLK_IN  => lvds(29),
+    MED_CARRIER_IN           => lvds(30),
+    MED_PARITY_IN            => lvds(31),
+
+    -- Status and control port => this never can hurt
+--    STAT
+              --STAT(0): Busy reading from media
+              --STAT(1): Busy writing to media
+              --STAT(31 downto 24): Datain(63 downto 56
+    CTRL => x"00000000"
+              --CTRL(24..31) -> lvds-data(63 downto 56) via lvds 
+                     --once for each packet
+              --CTRL(16..18) -> debugbits updated every CLK 
+                                           --lvds(12 downto 10)(10bit-version only)
+              --CTRL(0..5) -> lvds-data(69 downto 64) (10bit-version only)
+    );
+  
+LVDS2: trb_net_med_13bit_slow
+  generic map( 
+    TRANSMISSION_CLOCK_DIVIDER => 4
+  )
+  port map(
+    --  Misc
+    CLK                => clk,
+    RESET              => reset,
+    CLK_EN             => '1',
+
+    INT_DATAREADY_OUT => MED_DATAREADY_1_to_2_api2,
+    INT_DATA_OUT      => MED_DATA_1_to_2_api2_m,
+    INT_READ_IN       => MED_READ_1_to_2_api2,
+--    INT_ERROR_OUT
+
+    INT_DATAREADY_IN  => MED_DATAREADY_2_to_1_api2,
+    INT_DATA_IN       => MED_DATA_2_to_1_api2_m,
+    INT_READ_OUT      => MED_READ_2_to_1_api2,
+    INT_ERROR_IN      => "000",
+    
+    --  Media direction port
+    -- in this case for the cable => 32 lines in total
+    MED_DATA_OUT             => lvds(28 downto 16),
+    MED_TRANSMISSION_CLK_OUT => lvds(29),
+    MED_CARRIER_OUT          => lvds(30),
+    MED_PARITY_OUT           => lvds(31),
+    MED_DATA_IN              => lvds(12 downto 0),
+    MED_TRANSMISSION_CLK_IN  => lvds(13),
+    MED_CARRIER_IN           => lvds(14),
+    MED_PARITY_IN            => lvds(15),
+
+    -- Status and control port => this never can hurt
+--    STAT
+              --STAT(0): Busy reading from media
+              --STAT(1): Busy writing to media
+              --STAT(31 downto 24): Datain(63 downto 56
+    CTRL => x"00000000"
+              --CTRL(24..31) -> lvds-data(63 downto 56) via lvds 
+                     --once for each packet
+              --CTRL(16..18) -> debugbits updated every CLK 
+                                           --lvds(12 downto 10)(10bit-version only)
+              --CTRL(0..5) -> lvds-data(69 downto 64) (10bit-version only)
+    );
+  
+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
+
+-- trb_net_lvds_chain_testbench -tclbatch lvds_chain_testsim.tcl
+
+-- ntrace select -o on -m / -l this
+-- ntrace start
+-- run 1000 ns
+-- quit
+
+-- isimwave isimwavedata.xwv
+-- gtkwave vcdfile.vcd settings_lvds_chain.sav &
diff --git a/testbench/trb_net_lvds_chain_testbench_beh.prj b/testbench/trb_net_lvds_chain_testbench_beh.prj
new file mode 100644 (file)
index 0000000..b120cda
--- /dev/null
@@ -0,0 +1,14 @@
+vhdl work "../trb_net_std.vhd"
+vhdl work "../trb_net_fifo.vhd"
+vhdl work "../xilinx/trb_net_fifo_arch.vhd"
+vhdl work "../xilinx/shift_lut_x16.vhd"
+vhdl work "../trb_net_sbuf.vhd"
+vhdl work "../trb_net_ibuf.vhd"
+vhdl work "../trb_net_obuf.vhd"
+vhdl work "../trb_net_iobuf.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_med_13bit_slow.vhd"
+vhdl work "trb_net_dummy_apl.vhd"
+vhdl work "trb_net_lvds_chain_testbench.vhd"
index 94ca17db1c075f2d305fbc0b923824ad8cecb150..bab65a7b4dc5f21914d63db2aa54464b0accbd32 100755 (executable)
@@ -65,9 +65,9 @@ generic(
                                            --lvds(12 downto 10)(10bit-version only)
               --CTRL(0..5) -> lvds-data(69 downto 64) (10bit-version only)
     );
-end lvdshadcom;
+end trb_net_med_13bit_slow;
 
-architecture Behavioral of trb_net_med_13bit_slow is
+architecture trb_net_med_13bit_slow_arch of trb_net_med_13bit_slow is
   signal INT2MED_state, next_INT2MED_state : std_logic_vector (3 downto 0); 
   signal MED2INT_state, next_MED2INT_state:  std_logic_vector(3 downto 0);
 
@@ -531,5 +531,5 @@ MED2INT_fsm_reg: process(CLK,RESET)
   end process;
 
 
-end Behavioral;
+end trb_net_med_13bit_slow_arch;