g_fifos:BOOLEAN:=FALSE;-- When TRUE use dp_clk and clock domain crossing FIFO for dp->tx and for rx->dp, when FALSE use rx_clk stream and tx_clk stream
g_tx_fifo_depth:NATURAL:=c_bram_m9k_fifo_depth;-- = 256 * 32b = 1 M9K, because g_data_w=32b, functionally a depth of c_meta_fifo_depth=16 is sufficient to cross the clock domain
g_rx_fifo_depth:NATURAL:=c_bram_m9k_fifo_depth-- = 256 * 32b = 1 M9K, because g_data_w=32b, functionally a depth of c_meta_fifo_depth=16 is sufficient to cross the clock domain
);
PORT(
tb_end:INSTD_LOGIC:='0';-- in simulation stop internal clocks when tb_end='1' to support 'run -all'
tx_fifo_sosi_arr(i)<=tx_sosi_arr(i);-- for tx_fifo_sosi_arr it is needed to select between tx_sosi_arr and dp_tx_sosi_arr
tx_siso_arr(i)<=tx_fifo_siso_arr(i);-- could default connect tx_siso_arr, but for clarity only connect tx_siso_arr when g_fifos = FALSE, else leave it 'X'
rx_sosi_arr(i)<=rx_fifo_sosi_arr(i);-- could default connect rx_sosi_arr, but for clarity only connect rx_sosi_arr when g_fifos = FALSE, else leave it 'X'
rx_fifo_siso_arr(i)<=rx_siso_arr(i);-- for rx_fifo_siso_arr it is needed to select between rx_siso_arr and dp_rx_siso_arr