constantRX_SWAP_CLK:std_logic:='0';-- pinswap mask for input clock (0 = no swap (default), 1 = swap). Allows input to be connected the wrong way round to ease PCB routing.
begin
rx_bufg_pll_x1<=rx_bufg_pll_x1_int;
rxioclk<=rxioclk_int;
rx_serdesstrobe<=rx_serdesstrobe_int;
rx_pllout_xs<=rx_pllout_xs_int;
rx_pll_lckd<=rx_pll_lckd_int;
bitslip<=bslip;
iob_clk_in:IBUFDSgenericmap(
DIFF_TERM=>DIFF_TERM)
portmap(
I=>clkin_p,
IB=>clkin_n,
O=>rx_clk_in);
iob_data_in<=rx_clk_inxorRX_SWAP_CLK;-- Invert clock as required
constantRX_SWAP_MASK:std_logic_vector(D-1downto0):=(others=>'0');-- pinswap mask for input bits (0 = no swap (default), 1 = swap). Allows inputs to be connected the wrong way round to ease PCB routing.
constantTX_SWAP_MASK:std_logic_vector(D-1downto0):=(others=>'0');-- pinswap mask for input bits (0 = no swap (default), 1 = swap). Allows inputs to be connected the wrong way round to ease PCB routing.
begin
loop0:foriin0to(D-1)generate
io_clk_out:obufdsportmap(
O=>dataout_p(i),
OB=>dataout_n(i),
I=>tx_data_out(i));
loop1:if(S>4)generate-- Two oserdes are needed
loop2:forjin0to(S-1)generate
-- re-arrange data bits for transmission and invert lines as given by the mask
-- NOTE If pin inversion is required (non-zero SWAP MASK) then inverters will occur in fabric, as there are no inverters in the ISERDES2
-- This can be avoided by doing the inversion (if necessary) in the user logic
constantTX_SWAP_MASK:std_logic_vector(D-1downto0):=(others=>'0');-- pinswap mask for input bits (0 = no swap (default), 1 = swap). Allows inputs to be connected the wrong way round to ease PCB routing.
begin
loop0:foriin0to(D-1)generate
io_clk_out:obufportmap(
O=>dataout(i),
I=>tx_data_out(i));
loop1:if(S>4)generate-- Two oserdes are needed
loop2:forjin0to(S-1)generate
-- re-arrange data bits for transmission and invert lines as given by the mask
-- NOTE If pin inversion is required (non-zero SWAP MASK) then inverters will occur in fabric, as there are no inverters in the ISERDES2
-- This can be avoided by doing the inversion (if necessary) in the user logic