diff --git a/applications/compaan/designs/compaan_unb1_dp_offload/tb/python/tc_compaan_unb1_dp_offload_bg_lb_dop17.py b/applications/compaan/designs/compaan_unb1_dp_offload/tb/python/tc_compaan_unb1_dp_offload_bg_lb_dop17.py new file mode 100644 index 0000000000000000000000000000000000000000..50989e0ba8c4918bf1b4c9f124534a0c8e8ddabd --- /dev/null +++ b/applications/compaan/designs/compaan_unb1_dp_offload/tb/python/tc_compaan_unb1_dp_offload_bg_lb_dop17.py @@ -0,0 +1,78 @@ +#! /usr/bin/env python +############################################################################### +# +# Copyright (dC) 2015 +# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> +# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################### + +# Purpose: Stream BG data from FN1 to FN0, forward this data from FN0 to dop17 +# Description: +# . BG outputs blocks of 365 32b words = 1460 bytes; +# . BG uses inter-block gap size of 9*365 words to limit BG output rate to +# 1/10th of max +# . BG theoretical max output rate is 200MHz*32b = 6.4Gbps +# . The above translates to an ethernet data rate of about (6.4Gbps/10) 640Mbps +# (excluding packet overhead). +# Usage: python tc_compaan_unb1_dp_offload_bg_lb.py --unb # --fn 0,1 +# . Use tcpdump to view the received packets. + +from common import * +import test_case +import node_io +import pi_dp_offload_tx_hdr_dat_unb_dp_offload +import pi_diag_block_gen +import pi_eth + +############################################################################### +# Setup +############################################################################### + +tc = test_case.Testcase('TB - ', '') + +c_bg_nof_streams = 1 +c_bg_ram_size = 512 # Only the first 375 words are output + +io = node_io.NodeIO(tc.nodeImages, tc.base_ip) + +c_eth_dst_mac = 0x2286080000 + tc.unbNrs[0]*0x100 +c_eth_dst_ip = 0x0A630000 + tc.unbNrs[0]*0x100 + +eth = pi_eth.PiEth(tc, io) +dpotx_hdr_dat = pi_dp_offload_tx_hdr_dat_unb_dp_offload.PiDpOffloadTxHdrDatUnbDpOffload(tc, io, nof_inst=1) +bg = pi_diag_block_gen.PiDiagBlockGen(tc, io, c_bg_nof_streams, c_bg_ram_size, tc.nodeFn1Nrs ) + +# Enable the UDP port on the 1GbE RX side for stream 0 +eth.write_udp_port_en(0) + +# From BG to LB: set dst MAC and IP of node[1] to MAC and IP of node[0] +dpotx_hdr_dat.write(node_nrs=tc.nodeNrs[1], inst_nrs=tc.gpNumbers, registers=[('eth_dst_mac', c_eth_dst_mac + 0)], regmap=dpotx_hdr_dat.regmap) +dpotx_hdr_dat.write(node_nrs=tc.nodeNrs[1], inst_nrs=tc.gpNumbers, registers=[('ip_dst_ip', c_eth_dst_ip + 0 + 1)], regmap=dpotx_hdr_dat.regmap) + +## From LB to DOP17 +dpotx_hdr_dat.write(node_nrs=tc.nodeNrs[0], inst_nrs=tc.gpNumbers, registers=[('eth_dst_mac', 0x0030482D82A1)], regmap=dpotx_hdr_dat.regmap) +dpotx_hdr_dat.write(node_nrs=tc.nodeNrs[0], inst_nrs=tc.gpNumbers, registers=[('ip_dst_addr', 0x0A6300FE)], regmap=dpotx_hdr_dat.regmap) + +# Enable the blockgenerator +bg.write_enable() + +############################################################################### +# end +############################################################################### +tc.set_section_id('') +tc.append_log(0, '>>> Test Case result: %s' % tc.get_result()) +