Line 24... |
Line 24... |
|
|
wire [9:0] w10_txdata;
|
wire [9:0] w10_txdata;
|
wire [9:0] w10_rxdata;
|
wire [9:0] w10_rxdata;
|
wire [9:0] w10_txdatalocal;
|
wire [9:0] w10_txdatalocal;
|
wire [9:0] w10_rxdatalocal;
|
wire [9:0] w10_rxdatalocal;
|
|
wire w_RxKErr,w_RxRdErr;
|
|
wire w_TxClk;
|
|
|
mAlt8b10benc u8b10bEnc(
|
/*mAlt8b10benc u8b10bEnc(
|
.clk (o_CoreClk),
|
.clk (o_CoreClk),
|
.reset_n (~i_XcverDigitalRst),
|
.reset_n (~i_XcverDigitalRst),
|
.idle_ins (~i_TxCodeValid),
|
.idle_ins (~i_TxCodeValid),
|
.kin (i_TxCodeCtrl),
|
.kin (i_TxCodeCtrl),
|
.ena (1'b1),
|
.ena (1'b1),
|
.datain (i8_TxCodeGroup),
|
.datain (i8_TxCodeGroup),
|
.rdin (1'b0),
|
.rdin (1'b0),
|
.rdforce (i_TxForceNegDisp),
|
.rdforce (i_TxForceNegDisp),
|
.kerr (),
|
.kerr (),
|
.dataout (w10_txdatalocal),
|
.dataout (w10_txdatalocal),
|
.valid (),
|
.valid (),
|
.rdout (o_RunningDisparity),
|
.rdout (o_RunningDisparity),
|
.rdcascade ());
|
.rdcascade ());*/
|
|
mEnc8b10bMem u8b10bEnc(
|
mAlt8b10bdec u8b10bDec(
|
.i8_Din (i8_TxCodeGroup), //HGFEDCBA
|
.clk (o_CoreClk),
|
.i_Kin (i_TxCodeCtrl),
|
.reset_n (~i_XcverDigitalRst),
|
.i_ForceDisparity (i_TxForceNegDisp),
|
.idle_del (),
|
.i_Disparity (~i_TxForceNegDisp), //1 Is negative, 0 is positive
|
.ena (1'b1),
|
.o10_Dout (w10_txdata), //abcdeifghj
|
.datain (w10_rxdatalocal),
|
.o_Rd (o_RunningDisparity),
|
.rdforce (1'b0),
|
.o_KErr (),
|
.rdin (1'b0),
|
.i_Clk (o_CoreClk),
|
.valid (w_RxDataValid),
|
.i_ARst_L (~i_XcverDigitalRst));
|
.dataout (o8_RxCodeGroup),
|
|
.kout (o_RxCodeCtrl),
|
/*mAlt8b10bdec u8b10bDec(
|
.kerr (w_RxKErr),
|
.clk (o_CoreClk),
|
.rdcascade (),
|
.reset_n (~i_XcverDigitalRst),
|
.rdout (),
|
.idle_del (),
|
.rderr (w_RxRdErr));
|
.ena (1'b1),
|
|
.datain (w10_rxdatalocal),
|
|
.rdforce (1'b0),
|
|
.rdin (1'b0),
|
|
.valid (w_RxDataValid),
|
|
.dataout (o8_RxCodeGroup),
|
|
.kout (o_RxCodeCtrl),
|
|
.kerr (w_RxKErr),
|
|
.rdcascade (),
|
|
.rdout (),
|
|
.rderr (w_RxRdErr));*/
|
|
|
|
mDec8b10bMem u8b10bDec(
|
|
.o8_Dout (o8_RxCodeGroup), //HGFEDCBA
|
|
.o_Kout (o_RxCodeCtrl),
|
|
.o_DErr (),
|
|
.o_KErr (w_RxKErr),
|
|
.o_DpErr (w_RxRdErr),
|
|
.i_ForceDisparity (1'b0),
|
|
.i_Disparity (1'b0),
|
|
.i10_Din (w10_rxdata), //abcdeifghj
|
|
.o_Rd (),
|
|
.i_Clk (o_CoreClk),
|
|
.i_ARst_L (~i_XcverDigitalRst));
|
|
|
assign o_RxCodeInvalid = w_RxKErr|w_RxRdErr;
|
assign o_RxCodeInvalid = w_RxKErr|w_RxRdErr;
|
assign o_SignalDetect = w_RxDataValid|o_RxCodeCtrl;
|
assign o_SignalDetect = (~o_RxCodeInvalid)|o_RxCodeCtrl;
|
|
|
mAltArriaVlvdsRx ulvdsrx (
|
mAltArriaVlvdsRx ulvdsrx (
|
.rx_channel_data_align (i_RxBitSlip),
|
.rx_channel_data_align (i_RxBitSlip),
|
.rx_in (i_SerRx),
|
.rx_in (i_SerRx),
|
.rx_inclock (i_RefClk125M),
|
.rx_inclock (i_RefClk125M),
|
.rx_out (w10_rxdata),
|
.rx_out (w10_rxdata),
|
.rx_locked (o_PllLocked),
|
.rx_locked (o_PllLocked),
|
.rx_outclock (o_CoreClk));
|
//.rx_outclock (o_CoreClk),
|
|
.rx_divfwdclk (o_CoreClk),
|
|
.pll_areset (i_XcverDigitalRst));
|
|
|
mAltArriaVlvdsTx ulvdstx(
|
mAltArriaVlvdsTx ulvdstx(
|
.tx_in (w10_txdata),
|
.tx_in (w10_txdata),
|
.tx_inclock (i_RefClk125M),
|
.tx_inclock (o_CoreClk),
|
.tx_coreclock (w_TxClk),
|
//.tx_coreclock (w_TxClk),
|
.tx_out (o_SerTx));
|
.tx_out (o_SerTx),
|
|
.pll_areset(i_XcverDigitalRst));
|
|
|
|
|
function [9:0] bitreverse ;
|
function [9:0] bitreverse ;
|
input [9:0] in;
|
input [9:0] in;
|
integer I;
|
integer I;
|
Line 83... |
Line 111... |
for(I=0;I<10;I=I+1)
|
for(I=0;I<10;I=I+1)
|
bitreverse[I]=in[9-I];
|
bitreverse[I]=in[9-I];
|
end
|
end
|
endfunction
|
endfunction
|
|
|
assign w10_txdata = bitreverse(w10_txdatalocal);
|
//assign w10_txdata = bitreverse(w10_txdatalocal);
|
assign w10_rxdatalocal = bitreverse(w10_rxdata);
|
//assign w10_rxdatalocal = bitreverse(w10_rxdata);
|
// mAltRateAdapter uRxAdapter(
|
// mAltRateAdapter uRxAdapter(
|
// .data (w10_txdatalocal),
|
// .data (w10_txdatalocal),
|
// .rdclk (w_TxClk),
|
// .rdclk (w_TxClk),
|
// .rdempty(rdempty),
|
// .rdempty(rdempty),
|
// .rdreq (~rdempty),
|
// .rdreq (~rdempty),
|