OpenCores
URL https://opencores.org/ocsvn/sgmii/sgmii/trunk

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [src/] [mAltGX/] [mAltA5GXlvds.v] - Blame information for rev 15

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 jefflieu
 
2
 
3
module mAltA5GXlvds (
4
        input   i_SerRx,
5
        output  o_SerTx,
6
 
7
        input   i_RefClk125M,
8
        output  o_CoreClk,
9
        input   i_GxBPwrDwn,
10
        input   i_XcverDigitalRst,
11
    output      o_PllLocked,
12
 
13
        output o_SignalDetect,
14
        output [7:0] o8_RxCodeGroup,
15
        output  o_RxCodeInvalid,
16
        output  o_RxCodeCtrl,
17
        input   i_RxBitSlip,
18
 
19
        input [7:0] i8_TxCodeGroup,
20
        input   i_TxCodeValid,
21
        input   i_TxCodeCtrl,
22
        input   i_TxForceNegDisp,
23
    output      o_RunningDisparity);
24
 
25
        wire [9:0]       w10_txdata;
26
        wire [9:0]       w10_rxdata;
27
        wire [9:0]       w10_txdatalocal;
28
        wire [9:0]       w10_rxdatalocal;
29 15 jefflieu
        wire w_RxKErr,w_RxRdErr;
30
        wire w_TxClk;
31 13 jefflieu
 
32 15 jefflieu
        /*mAlt8b10benc u8b10bEnc(
33 13 jefflieu
        .clk                    (o_CoreClk),
34
        .reset_n                (~i_XcverDigitalRst),
35
        .idle_ins               (~i_TxCodeValid),
36
        .kin                    (i_TxCodeCtrl),
37
        .ena                    (1'b1),
38
        .datain                 (i8_TxCodeGroup),
39
        .rdin                   (1'b0),
40
        .rdforce                (i_TxForceNegDisp),
41
        .kerr                   (),
42
        .dataout                (w10_txdatalocal),
43
        .valid                  (),
44
        .rdout                  (o_RunningDisparity),
45 15 jefflieu
        .rdcascade              ());*/
46
        mEnc8b10bMem u8b10bEnc(
47
        .i8_Din                         (i8_TxCodeGroup),               //HGFEDCBA
48
        .i_Kin                          (i_TxCodeCtrl),
49
        .i_ForceDisparity       (i_TxForceNegDisp),
50
        .i_Disparity            (~i_TxForceNegDisp),            //1 Is negative, 0 is positive  
51
        .o10_Dout                       (w10_txdata),   //abcdeifghj
52
        .o_Rd                           (o_RunningDisparity),
53
        .o_KErr                         (),
54
        .i_Clk                          (o_CoreClk),
55
        .i_ARst_L                       (~i_XcverDigitalRst));
56 13 jefflieu
 
57 15 jefflieu
        /*mAlt8b10bdec  u8b10bDec(
58 13 jefflieu
        .clk                    (o_CoreClk),
59
        .reset_n                (~i_XcverDigitalRst),
60
        .idle_del               (),
61
        .ena                    (1'b1),
62
        .datain                 (w10_rxdatalocal),
63
        .rdforce                (1'b0),
64
        .rdin                   (1'b0),
65
        .valid                  (w_RxDataValid),
66
        .dataout                (o8_RxCodeGroup),
67
        .kout                   (o_RxCodeCtrl),
68
        .kerr                   (w_RxKErr),
69
        .rdcascade              (),
70
        .rdout                  (),
71 15 jefflieu
        .rderr                  (w_RxRdErr));*/
72 13 jefflieu
 
73 15 jefflieu
        mDec8b10bMem u8b10bDec(
74
        .o8_Dout                        (o8_RxCodeGroup),               //HGFEDCBA
75
        .o_Kout                         (o_RxCodeCtrl),
76
        .o_DErr                         (),
77
        .o_KErr                         (w_RxKErr),
78
        .o_DpErr                        (w_RxRdErr),
79
        .i_ForceDisparity       (1'b0),
80
        .i_Disparity            (1'b0),
81
        .i10_Din                        (w10_rxdata),   //abcdeifghj
82
        .o_Rd                           (),
83
        .i_Clk                          (o_CoreClk),
84
        .i_ARst_L                       (~i_XcverDigitalRst));
85
 
86 13 jefflieu
        assign o_RxCodeInvalid = w_RxKErr|w_RxRdErr;
87 15 jefflieu
        assign o_SignalDetect = (~o_RxCodeInvalid)|o_RxCodeCtrl;
88 13 jefflieu
 
89
        mAltArriaVlvdsRx ulvdsrx (
90
        .rx_channel_data_align (i_RxBitSlip),
91
        .rx_in                  (i_SerRx),
92
        .rx_inclock             (i_RefClk125M),
93
        .rx_out                 (w10_rxdata),
94
        .rx_locked              (o_PllLocked),
95 15 jefflieu
        //.rx_outclock  (o_CoreClk),
96
        .rx_divfwdclk   (o_CoreClk),
97
        .pll_areset             (i_XcverDigitalRst));
98 13 jefflieu
 
99
        mAltArriaVlvdsTx ulvdstx(
100
        .tx_in                  (w10_txdata),
101 15 jefflieu
        .tx_inclock             (o_CoreClk),
102
        //.tx_coreclock (w_TxClk),
103
        .tx_out                 (o_SerTx),
104
        .pll_areset(i_XcverDigitalRst));
105 13 jefflieu
 
106
 
107
        function [9:0] bitreverse ;
108
                input [9:0] in;
109
                integer I;
110
                begin
111
                        for(I=0;I<10;I=I+1)
112
                                bitreverse[I]=in[9-I];
113
                end
114
        endfunction
115
 
116 15 jefflieu
        //assign w10_txdata = bitreverse(w10_txdatalocal);
117
        //assign w10_rxdatalocal = bitreverse(w10_rxdata);
118 13 jefflieu
        // mAltRateAdapter uRxAdapter(
119
        // .data        (w10_txdatalocal),
120
        // .rdclk       (w_TxClk),
121
        // .rdempty(rdempty),
122
        // .rdreq       (~rdempty),
123
        // .wrclk       (o_CoreClk),
124
        // .wrreq       (1'b1),
125
        // .q(w10_txdata));
126
 
127
 
128
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.