Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: xpcs_txio_pcs.v | |
4 | // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved | |
5 | // 4150 Network Circle, Santa Clara, California 95054, U.S.A. | |
6 | // | |
7 | // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
8 | // | |
9 | // This program is free software; you can redistribute it and/or modify | |
10 | // it under the terms of the GNU General Public License as published by | |
11 | // the Free Software Foundation; version 2 of the License. | |
12 | // | |
13 | // This program is distributed in the hope that it will be useful, | |
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | // GNU General Public License for more details. | |
17 | // | |
18 | // You should have received a copy of the GNU General Public License | |
19 | // along with this program; if not, write to the Free Software | |
20 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 | // | |
22 | // For the avoidance of doubt, and except that if any non-GPL license | |
23 | // choice is available it will apply instead, Sun elects to use only | |
24 | // the General Public License version 2 (GPLv2) at this time for any | |
25 | // software where a choice of GPL license versions is made | |
26 | // available with the language indicating that GPLv2 or any later version | |
27 | // may be used, or where a choice of which version of the GPL is applied is | |
28 | // otherwise unspecified. | |
29 | // | |
30 | // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, | |
31 | // CA 95054 USA or visit www.sun.com if you need additional information or | |
32 | // have any questions. | |
33 | // | |
34 | // ========== Copyright Header End ============================================ | |
35 | // **************************************************************** | |
36 | // | |
37 | // Sun Proprietary/Confidential: Internal Use Only | |
38 | // | |
39 | // **************************************************************** | |
40 | // Design: IB Physical Interface Core | |
41 | // Block: IB 8b/10b Encoder | |
42 | // Author: Carlos Castil | |
43 | // | |
44 | // Module: xpcs_txio_pcs | |
45 | // File: xpcs_txio_pcs.v | |
46 | // | |
47 | // Description: This block performs 8b/10b encoding and maintains | |
48 | // a running disparity, as well as special symbol | |
49 | // generation. | |
50 | // | |
51 | // Revision History | |
52 | // ------------------------------------------------------------ | |
53 | // Ver Date Comments | |
54 | // ------------------------------------------------------------ | |
55 | // 1.0 10/5/99 Originally leveraged from GEM | |
56 | // 1.1 10/5/99 modified to support IB | |
57 | // 1.2 10/12/01 modified to support Vega IB | |
58 | // 1.3 11/14/02 modified to support xpcs ieee 802.3 ae | |
59 | // **************************************************************** | |
60 | ||
61 | ||
62 | ||
63 | module xpcs_txio_pcs ( | |
64 | reset, | |
65 | tx_clk, | |
66 | ||
67 | tx_byte, | |
68 | tx_special, | |
69 | ||
70 | tx_symbol); | |
71 | ||
72 | ||
73 | input reset; | |
74 | input tx_clk; // 250 MHz TX clk | |
75 | ||
76 | input [7:0] tx_byte; // incoming data byte or code for the special character | |
77 | input tx_special; // used to select special character generation | |
78 | ||
79 | output [9:0] tx_symbol; // outgoing 10 bits encoded | |
80 | ||
81 | reg [9:0] tx_symbol; | |
82 | reg RDreg; | |
83 | ||
84 | wire [9:0] tx_symbol_pri; | |
85 | wire [9:0] tx_symbol_sp; | |
86 | ||
87 | wire pos_disp_pri; | |
88 | wire pos_disp_sp; | |
89 | ||
90 | // NOTICE: tx_symbol & RDreg need not be reset since they will | |
91 | // be driven with the special code for NULL at reset! | |
92 | ||
93 | // Register 10 bit symbol output | |
94 | ||
95 | always @ (posedge tx_clk) | |
96 | tx_symbol <= tx_special ? tx_symbol_sp : tx_symbol_pri; | |
97 | ||
98 | // Register running disparity | |
99 | ||
100 | always @ (posedge tx_clk) | |
101 | RDreg <= tx_special ? pos_disp_sp : pos_disp_pri; | |
102 | ||
103 | ||
104 | // Encode data byte | |
105 | ||
106 | function [10:0] encode_pri; | |
107 | input reset; | |
108 | input [7:0] tx_byte; | |
109 | input RDreg; | |
110 | reg pos_disp_pri; | |
111 | reg [9:0] tx_symbol_pri; | |
112 | ||
113 | begin | |
114 | if (reset) | |
115 | begin | |
116 | pos_disp_pri = 1'b0; | |
117 | tx_symbol_pri = 10'b0000000000; | |
118 | end | |
119 | else | |
120 | begin | |
121 | pos_disp_pri = 1'b0; | |
122 | tx_symbol_pri = 10'b0000000000; | |
123 | ||
124 | // always @ (tx_byte or RDreg) | |
125 | case (tx_byte[7:0])// synopsys parallel_case full_case infer_mux | |
126 | //if RD-, choose 1st, if RD+ choose 2nd | |
127 | ||
128 | 8'h00: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001110100 : 10'b0110001011), RDreg}; | |
129 | 8'h01: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111010100 : 10'b1000101011), RDreg}; | |
130 | 8'h02: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011010100 : 10'b0100101011), RDreg}; | |
131 | 8'h03: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100011011 : 10'b1100010100), !RDreg}; | |
132 | ||
133 | 8'h04: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101010100 : 10'b0010101011), RDreg}; | |
134 | 8'h05: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010011011 : 10'b1010010100), !RDreg}; | |
135 | 8'h06: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110011011 : 10'b0110010100), !RDreg}; | |
136 | 8'h07: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110001011 : 10'b0001110100), !RDreg}; | |
137 | ||
138 | 8'h08: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110010100 : 10'b0001101011), RDreg}; | |
139 | 8'h09: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001011011 : 10'b1001010100), !RDreg}; | |
140 | 8'h0a: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101011011 : 10'b0101010100), !RDreg}; | |
141 | 8'h0b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101001011 : 10'b1101000100), !RDreg}; | |
142 | ||
143 | 8'h0c: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011011011 : 10'b0011010100), !RDreg}; | |
144 | 8'h0d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011001011 : 10'b1011000100), !RDreg}; | |
145 | 8'h0e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111001011 : 10'b0111000100), !RDreg}; | |
146 | 8'h0f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101110100 : 10'b1010001011), RDreg}; | |
147 | ||
148 | 8'h10: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110110100 : 10'b1001001011), RDreg}; | |
149 | 8'h11: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1000111011 : 10'b1000110100), !RDreg}; | |
150 | 8'h12: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0100111011 : 10'b0100110100), !RDreg}; | |
151 | 8'h13: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100101011 : 10'b1100100100), !RDreg}; | |
152 | ||
153 | 8'h14: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0010111011 : 10'b0010110100), !RDreg}; | |
154 | 8'h15: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010101011 : 10'b1010100100), !RDreg}; | |
155 | 8'h16: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110101011 : 10'b0110100100), !RDreg}; | |
156 | 8'h17: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110100100 : 10'b0001011011), RDreg}; | |
157 | ||
158 | 8'h18: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100110100 : 10'b0011001011), RDreg}; | |
159 | 8'h19: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001101011 : 10'b1001100100), !RDreg}; | |
160 | 8'h1a: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101101011 : 10'b0101100100), !RDreg}; | |
161 | 8'h1b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101100100 : 10'b0010011011), RDreg}; | |
162 | ||
163 | 8'h1c: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011101011 : 10'b0011100100), !RDreg}; | |
164 | 8'h1d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011100100 : 10'b0100011011), RDreg}; | |
165 | 8'h1e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111100100 : 10'b1000011011), RDreg}; | |
166 | 8'h1f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010110100 : 10'b0101001011), RDreg}; | |
167 | ||
168 | 8'h20: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001111001 : 10'b0110001001), !RDreg}; | |
169 | 8'h21: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111011001 : 10'b1000101001), !RDreg}; | |
170 | 8'h22: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011011001 : 10'b0100101001), !RDreg}; | |
171 | 8'h23: {tx_symbol_pri, pos_disp_pri} = {(10'b1100011001), RDreg}; | |
172 | ||
173 | 8'h24: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101011001 : 10'b0010101001), !RDreg}; | |
174 | 8'h25: {tx_symbol_pri, pos_disp_pri} = {(10'b1010011001), RDreg}; | |
175 | 8'h26: {tx_symbol_pri, pos_disp_pri} = {(10'b0110011001), RDreg}; | |
176 | 8'h27: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110001001 : 10'b0001111001), RDreg}; | |
177 | ||
178 | 8'h28: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110011001 : 10'b0001101001), !RDreg}; | |
179 | 8'h29: {tx_symbol_pri, pos_disp_pri} = {(10'b1001011001), RDreg}; | |
180 | 8'h2a: {tx_symbol_pri, pos_disp_pri} = {(10'b0101011001), RDreg}; | |
181 | 8'h2b: {tx_symbol_pri, pos_disp_pri} = {(10'b1101001001), RDreg}; | |
182 | ||
183 | 8'h2c: {tx_symbol_pri, pos_disp_pri} = {(10'b0011011001), RDreg}; | |
184 | 8'h2d: {tx_symbol_pri, pos_disp_pri} = {(10'b1011001001), RDreg}; | |
185 | 8'h2e: {tx_symbol_pri, pos_disp_pri} = {(10'b0111001001), RDreg}; | |
186 | 8'h2f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101111001 : 10'b1010001001), !RDreg}; | |
187 | ||
188 | 8'h30: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110111001 : 10'b1001001001), !RDreg}; | |
189 | 8'h31: {tx_symbol_pri, pos_disp_pri} = {(10'b1000111001), RDreg}; | |
190 | 8'h32: {tx_symbol_pri, pos_disp_pri} = {(10'b0100111001), RDreg}; | |
191 | 8'h33: {tx_symbol_pri, pos_disp_pri} = {(10'b1100101001), RDreg}; | |
192 | ||
193 | 8'h34: {tx_symbol_pri, pos_disp_pri} = {(10'b0010111001), RDreg}; | |
194 | 8'h35: {tx_symbol_pri, pos_disp_pri} = {(10'b1010101001), RDreg}; | |
195 | 8'h36: {tx_symbol_pri, pos_disp_pri} = {(10'b0110101001), RDreg}; | |
196 | 8'h37: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110101001 : 10'b0001011001), !RDreg}; | |
197 | ||
198 | 8'h38: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100111001 : 10'b0011001001), !RDreg}; | |
199 | 8'h39: {tx_symbol_pri, pos_disp_pri} = {(10'b1001101001), RDreg}; | |
200 | 8'h3a: {tx_symbol_pri, pos_disp_pri} = {(10'b0101101001), RDreg}; | |
201 | 8'h3b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101101001 : 10'b0010011001), !RDreg}; | |
202 | ||
203 | 8'h3c: {tx_symbol_pri, pos_disp_pri} = {(10'b0011101001), RDreg}; | |
204 | 8'h3d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011101001 : 10'b0100011001), !RDreg}; | |
205 | 8'h3e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111101001 : 10'b1000011001), !RDreg}; | |
206 | 8'h3f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010111001 : 10'b0101001001), !RDreg}; | |
207 | ||
208 | 8'h40: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001110101 : 10'b0110000101), !RDreg}; | |
209 | 8'h41: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111010101 : 10'b1000100101), !RDreg}; | |
210 | 8'h42: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011010101 : 10'b0100100101), !RDreg}; | |
211 | 8'h43: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100010101 : 10'b1100010101), RDreg}; | |
212 | ||
213 | 8'h44: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101010101 : 10'b0010100101), !RDreg}; | |
214 | 8'h45: {tx_symbol_pri, pos_disp_pri} = {(10'b1010010101), RDreg}; | |
215 | 8'h46: {tx_symbol_pri, pos_disp_pri} = {(10'b0110010101), RDreg}; | |
216 | 8'h47: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110000101 : 10'b0001110101), RDreg}; | |
217 | ||
218 | 8'h48: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110010101 : 10'b0001100101), !RDreg}; | |
219 | 8'h49: {tx_symbol_pri, pos_disp_pri} = {(10'b1001010101), RDreg}; | |
220 | 8'h4a: {tx_symbol_pri, pos_disp_pri} = {(10'b0101010101), RDreg}; | |
221 | 8'h4b: {tx_symbol_pri, pos_disp_pri} = {(10'b1101000101), RDreg}; | |
222 | ||
223 | 8'h4c: {tx_symbol_pri, pos_disp_pri} = {(10'b0011010101), RDreg}; | |
224 | 8'h4d: {tx_symbol_pri, pos_disp_pri} = {(10'b1011000101), RDreg}; | |
225 | 8'h4e: {tx_symbol_pri, pos_disp_pri} = {(10'b0111000101), RDreg}; | |
226 | 8'h4f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101110101 : 10'b1010000101), !RDreg}; | |
227 | ||
228 | 8'h50: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110110101 : 10'b1001000101), !RDreg}; | |
229 | 8'h51: {tx_symbol_pri, pos_disp_pri} = {(10'b1000110101), RDreg}; | |
230 | 8'h52: {tx_symbol_pri, pos_disp_pri} = {(10'b0100110101), RDreg}; | |
231 | 8'h53: {tx_symbol_pri, pos_disp_pri} = {(10'b1100100101), RDreg}; | |
232 | ||
233 | 8'h54: {tx_symbol_pri, pos_disp_pri} = {(10'b0010110101), RDreg}; | |
234 | 8'h55: {tx_symbol_pri, pos_disp_pri} = {(10'b1010100101), RDreg}; | |
235 | 8'h56: {tx_symbol_pri, pos_disp_pri} = {(10'b0110100101), RDreg}; | |
236 | 8'h57: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110100101 : 10'b0001010101), !RDreg}; | |
237 | ||
238 | 8'h58: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100110101 : 10'b0011000101), !RDreg}; | |
239 | 8'h59: {tx_symbol_pri, pos_disp_pri} = {(10'b1001100101), RDreg}; | |
240 | 8'h5a: {tx_symbol_pri, pos_disp_pri} = {(10'b0101100101), RDreg}; | |
241 | 8'h5b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101100101 : 10'b0010010101), !RDreg}; | |
242 | ||
243 | 8'h5c: {tx_symbol_pri, pos_disp_pri} = {(10'b0011100101), RDreg}; | |
244 | 8'h5d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011100101 : 10'b0100010101), !RDreg}; | |
245 | 8'h5e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111100101 : 10'b1000010101), !RDreg}; | |
246 | 8'h5f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010110101 : 10'b0101000101), !RDreg}; | |
247 | ||
248 | 8'h60: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001110011 : 10'b0110001100), !RDreg}; | |
249 | 8'h61: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111010011 : 10'b1000101100), !RDreg}; | |
250 | 8'h62: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011010011 : 10'b0100101100), !RDreg}; | |
251 | 8'h63: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100011100 : 10'b1100010011), RDreg}; | |
252 | ||
253 | 8'h64: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101010011 : 10'b0010101100), !RDreg}; | |
254 | 8'h65: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010011100 : 10'b1010010011), RDreg}; | |
255 | 8'h66: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110011100 : 10'b0110010011), RDreg}; | |
256 | 8'h67: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110001100 : 10'b0001110011), RDreg}; | |
257 | ||
258 | 8'h68: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110010011 : 10'b0001101100), !RDreg}; | |
259 | 8'h69: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001011100 : 10'b1001010011), RDreg}; | |
260 | 8'h6a: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101011100 : 10'b0101010011), RDreg}; | |
261 | 8'h6b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101001100 : 10'b1101000011), RDreg}; | |
262 | ||
263 | 8'h6c: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011011100 : 10'b0011010011), RDreg}; | |
264 | 8'h6d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011001100 : 10'b1011000011), RDreg}; | |
265 | 8'h6e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111001100 : 10'b0111000011), RDreg}; | |
266 | 8'h6f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101110011 : 10'b1010001100), !RDreg}; | |
267 | ||
268 | 8'h70: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110110011 : 10'b1001001100), !RDreg}; | |
269 | 8'h71: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1000111100 : 10'b1000110011), RDreg}; | |
270 | 8'h72: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0100111100 : 10'b0100110011), RDreg}; | |
271 | 8'h73: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100101100 : 10'b1100100011), RDreg}; | |
272 | ||
273 | 8'h74: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0010111100 : 10'b0010110011), RDreg}; | |
274 | 8'h75: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010101100 : 10'b1010100011), RDreg}; | |
275 | 8'h76: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110101100 : 10'b0110100011), RDreg}; | |
276 | 8'h77: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110100011 : 10'b0001011100), !RDreg}; | |
277 | ||
278 | 8'h78: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100110011 : 10'b0011001100), !RDreg}; | |
279 | 8'h79: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001101100 : 10'b1001100011), RDreg}; | |
280 | 8'h7a: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101101100 : 10'b0101100011), RDreg}; | |
281 | 8'h7b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101100011 : 10'b0010011100), !RDreg}; | |
282 | ||
283 | 8'h7c: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011101100 : 10'b0011100011), RDreg}; | |
284 | 8'h7d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011100011 : 10'b0100011100), !RDreg}; | |
285 | 8'h7e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111100011 : 10'b1000011100), !RDreg}; | |
286 | 8'h7f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010110011 : 10'b0101001100), !RDreg}; | |
287 | ||
288 | 8'h80: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001110010 : 10'b0110001101), RDreg}; | |
289 | 8'h81: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111010010 : 10'b1000101101), RDreg}; | |
290 | 8'h82: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011010010 : 10'b0100101101), RDreg}; | |
291 | 8'h83: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100011101 : 10'b1100010010), !RDreg}; | |
292 | ||
293 | 8'h84: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101010010 : 10'b0010101101), RDreg}; | |
294 | 8'h85: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010011101 : 10'b1010010010), !RDreg}; | |
295 | 8'h86: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110011101 : 10'b0110010010), !RDreg}; | |
296 | 8'h87: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110001101 : 10'b0001110010), !RDreg}; | |
297 | ||
298 | 8'h88: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110010010 : 10'b0001101101), RDreg}; | |
299 | 8'h89: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001011101 : 10'b1001010010), !RDreg}; | |
300 | 8'h8a: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101011101 : 10'b0101010010), !RDreg}; | |
301 | 8'h8b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101001101 : 10'b1101000010), !RDreg}; | |
302 | ||
303 | 8'h8c: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011011101 : 10'b0011010010), !RDreg}; | |
304 | 8'h8d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011001101 : 10'b1011000010), !RDreg}; | |
305 | 8'h8e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111001101 : 10'b0111000010), !RDreg}; | |
306 | 8'h8f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101110010 : 10'b1010001101), RDreg}; | |
307 | ||
308 | 8'h90: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110110010 : 10'b1001001101), RDreg}; | |
309 | 8'h91: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1000111101 : 10'b1000110010), !RDreg}; | |
310 | 8'h92: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0100111101 : 10'b0100110010), !RDreg}; | |
311 | 8'h93: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100101101 : 10'b1100100010), !RDreg}; | |
312 | ||
313 | 8'h94: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0010111101 : 10'b0010110010), !RDreg}; | |
314 | 8'h95: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010101101 : 10'b1010100010), !RDreg}; | |
315 | 8'h96: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110101101 : 10'b0110100010), !RDreg}; | |
316 | 8'h97: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110100010 : 10'b0001011101), RDreg}; | |
317 | ||
318 | 8'h98: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100110010 : 10'b0011001101), RDreg}; | |
319 | 8'h99: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001101101 : 10'b1001100010), !RDreg}; | |
320 | 8'h9a: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101101101 : 10'b0101100010), !RDreg}; | |
321 | 8'h9b: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101100010 : 10'b0010011101), RDreg}; | |
322 | ||
323 | 8'h9c: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011101101 : 10'b0011100010), !RDreg}; | |
324 | 8'h9d: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011100010 : 10'b0100011101), RDreg}; | |
325 | 8'h9e: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111100010 : 10'b1000011101), RDreg}; | |
326 | 8'h9f: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010110010 : 10'b0101001101), RDreg}; | |
327 | ||
328 | 8'ha0: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001111010 : 10'b0110001010), !RDreg}; | |
329 | 8'ha1: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111011010 : 10'b1000101010), !RDreg}; | |
330 | 8'ha2: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011011010 : 10'b0100101010), !RDreg}; | |
331 | 8'ha3: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100011010 : 10'b1100011010), RDreg}; | |
332 | ||
333 | 8'ha4: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101011010 : 10'b0010101010), !RDreg}; | |
334 | 8'ha5: {tx_symbol_pri, pos_disp_pri} = {(10'b1010011010), RDreg}; | |
335 | 8'ha6: {tx_symbol_pri, pos_disp_pri} = {(10'b0110011010), RDreg}; | |
336 | 8'ha7: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110001010 : 10'b0001111010), RDreg}; | |
337 | ||
338 | 8'ha8: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110011010 : 10'b0001101010), !RDreg}; | |
339 | 8'ha9: {tx_symbol_pri, pos_disp_pri} = {(10'b1001011010), RDreg}; | |
340 | 8'haa: {tx_symbol_pri, pos_disp_pri} = {(10'b0101011010), RDreg}; | |
341 | 8'hab: {tx_symbol_pri, pos_disp_pri} = {(10'b1101001010), RDreg}; | |
342 | ||
343 | 8'hac: {tx_symbol_pri, pos_disp_pri} = {(10'b0011011010), RDreg}; | |
344 | 8'had: {tx_symbol_pri, pos_disp_pri} = {(10'b1011001010), RDreg}; | |
345 | 8'hae: {tx_symbol_pri, pos_disp_pri} = {(10'b0111001010), RDreg}; | |
346 | 8'haf: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101111010 : 10'b1010001010), !RDreg}; | |
347 | ||
348 | 8'hb0: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110111010 : 10'b1001001010), !RDreg}; | |
349 | 8'hb1: {tx_symbol_pri, pos_disp_pri} = {(10'b1000111010), RDreg}; | |
350 | 8'hb2: {tx_symbol_pri, pos_disp_pri} = {(10'b0100111010), RDreg}; | |
351 | 8'hb3: {tx_symbol_pri, pos_disp_pri} = {(10'b1100101010), RDreg}; | |
352 | ||
353 | 8'hb4: {tx_symbol_pri, pos_disp_pri} = {(10'b0010111010), RDreg}; | |
354 | 8'hb5: {tx_symbol_pri, pos_disp_pri} = {(10'b1010101010), RDreg}; | |
355 | 8'hb6: {tx_symbol_pri, pos_disp_pri} = {(10'b0110101010), RDreg}; | |
356 | 8'hb7: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110101010 : 10'b0001011010), !RDreg}; | |
357 | ||
358 | 8'hb8: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100111010 : 10'b0011001010), !RDreg}; | |
359 | 8'hb9: {tx_symbol_pri, pos_disp_pri} = {(10'b1001101010), RDreg}; | |
360 | 8'hba: {tx_symbol_pri, pos_disp_pri} = {(10'b0101101010), RDreg}; | |
361 | 8'hbb: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101101010 : 10'b0010011010), !RDreg}; | |
362 | ||
363 | 8'hbc: {tx_symbol_pri, pos_disp_pri} = {(10'b0011101010), RDreg}; | |
364 | 8'hbd: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011101010 : 10'b0100011010), !RDreg}; | |
365 | 8'hbe: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111101010 : 10'b1000011010), !RDreg}; | |
366 | 8'hbf: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010111010 : 10'b0101001010), !RDreg}; | |
367 | ||
368 | 8'hc0: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001110110 : 10'b0110000110), !RDreg}; | |
369 | 8'hc1: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111010110 : 10'b1000100110), !RDreg}; | |
370 | 8'hc2: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011010110 : 10'b0100100110), !RDreg}; | |
371 | 8'hc3: {tx_symbol_pri, pos_disp_pri} = {(10'b1100010110), RDreg}; | |
372 | ||
373 | 8'hc4: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101010110 : 10'b0010100110), !RDreg}; | |
374 | 8'hc5: {tx_symbol_pri, pos_disp_pri} = {(10'b1010010110), RDreg}; | |
375 | 8'hc6: {tx_symbol_pri, pos_disp_pri} = {(10'b0110010110), RDreg}; | |
376 | 8'hc7: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110000110 : 10'b0001110110), RDreg}; | |
377 | ||
378 | 8'hc8: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110010110 : 10'b0001100110), !RDreg}; | |
379 | 8'hc9: {tx_symbol_pri, pos_disp_pri} = {(10'b1001010110), RDreg}; | |
380 | 8'hca: {tx_symbol_pri, pos_disp_pri} = {(10'b0101010110), RDreg}; | |
381 | 8'hcb: {tx_symbol_pri, pos_disp_pri} = {(10'b1101000110), RDreg}; | |
382 | ||
383 | 8'hcc: {tx_symbol_pri, pos_disp_pri} = {(10'b0011010110), RDreg}; | |
384 | 8'hcd: {tx_symbol_pri, pos_disp_pri} = {(10'b1011000110), RDreg}; | |
385 | 8'hce: {tx_symbol_pri, pos_disp_pri} = {(10'b0111000110), RDreg}; | |
386 | 8'hcf: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101110110 : 10'b1010000110), !RDreg}; | |
387 | ||
388 | 8'hd0: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110110110 : 10'b1001000110), !RDreg}; | |
389 | 8'hd1: {tx_symbol_pri, pos_disp_pri} = {(10'b1000110110), RDreg}; | |
390 | 8'hd2: {tx_symbol_pri, pos_disp_pri} = {(10'b0100110110), RDreg}; | |
391 | 8'hd3: {tx_symbol_pri, pos_disp_pri} = {(10'b1100100110), RDreg}; | |
392 | ||
393 | 8'hd4: {tx_symbol_pri, pos_disp_pri} = {(10'b0010110110), RDreg}; | |
394 | 8'hd5: {tx_symbol_pri, pos_disp_pri} = {(10'b1010100110), RDreg}; | |
395 | 8'hd6: {tx_symbol_pri, pos_disp_pri} = {(10'b0110100110), RDreg}; | |
396 | 8'hd7: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110100110 : 10'b0001010110), !RDreg}; | |
397 | ||
398 | 8'hd8: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100110110 : 10'b0011000110), !RDreg}; | |
399 | 8'hd9: {tx_symbol_pri, pos_disp_pri} = {(10'b1001100110), RDreg}; | |
400 | 8'hda: {tx_symbol_pri, pos_disp_pri} = {(10'b0101100110), RDreg}; | |
401 | 8'hdb: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101100110 : 10'b0010010110), !RDreg}; | |
402 | ||
403 | 8'hdc: {tx_symbol_pri, pos_disp_pri} = {(10'b0011100110), RDreg}; | |
404 | 8'hdd: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011100110 : 10'b0100010110), !RDreg}; | |
405 | 8'hde: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111100110 : 10'b1000010110), !RDreg}; | |
406 | 8'hdf: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010110110 : 10'b0101000110), !RDreg}; | |
407 | ||
408 | 8'he0: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001110001 : 10'b0110001110), RDreg}; | |
409 | 8'he1: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111010001 : 10'b1000101110), RDreg}; | |
410 | 8'he2: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011010001 : 10'b0100101110), RDreg}; | |
411 | 8'he3: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100011110 : 10'b1100010001), !RDreg}; | |
412 | ||
413 | 8'he4: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101010001 : 10'b0010101110), RDreg}; | |
414 | 8'he5: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010011110 : 10'b1010010001), !RDreg}; | |
415 | 8'he6: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110011110 : 10'b0110010001), !RDreg}; | |
416 | 8'he7: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110001110 : 10'b0001110001), !RDreg}; | |
417 | ||
418 | 8'he8: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110010001 : 10'b0001101110), RDreg}; | |
419 | 8'he9: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001011110 : 10'b1001010001), !RDreg}; | |
420 | 8'hea: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101011110 : 10'b0101010001), !RDreg}; | |
421 | 8'heb: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101001110 : 10'b1101001000), !RDreg}; | |
422 | ||
423 | 8'hec: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011011110 : 10'b0011010001), !RDreg}; | |
424 | 8'hed: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011001110 : 10'b1011001000), !RDreg}; | |
425 | 8'hee: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111001110 : 10'b0111001000), !RDreg}; | |
426 | 8'hef: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101110001 : 10'b1010001110), RDreg}; | |
427 | ||
428 | 8'hf0: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110110001 : 10'b1001001110), RDreg}; | |
429 | 8'hf1: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1000110111 : 10'b1000110001), !RDreg}; | |
430 | 8'hf2: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0100110111 : 10'b0100110001), !RDreg}; | |
431 | 8'hf3: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100101110 : 10'b1100100001), !RDreg}; | |
432 | ||
433 | 8'hf4: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0010110111 : 10'b0010110001), !RDreg}; | |
434 | 8'hf5: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010101110 : 10'b1010100001), !RDreg}; | |
435 | 8'hf6: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0110101110 : 10'b0110100001), !RDreg}; | |
436 | 8'hf7: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1110100001 : 10'b0001011110), RDreg}; | |
437 | ||
438 | 8'hf8: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1100110001 : 10'b0011001110), RDreg}; | |
439 | 8'hf9: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1001101110 : 10'b1001100001), !RDreg}; | |
440 | 8'hfa: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0101101110 : 10'b0101100001), !RDreg}; | |
441 | 8'hfb: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1101100001 : 10'b0010011110), RDreg}; | |
442 | ||
443 | 8'hfc: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0011101110 : 10'b0011100001), !RDreg}; | |
444 | 8'hfd: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1011100001 : 10'b0100011110), RDreg}; | |
445 | 8'hfe: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b0111100001 : 10'b1000011110), RDreg}; | |
446 | 8'hff: {tx_symbol_pri, pos_disp_pri} = {(!RDreg ? 10'b1010110001 : 10'b0101001110), RDreg}; | |
447 | // endcase | |
448 | ||
449 | default : // Drive NULL | |
450 | {tx_symbol_pri, pos_disp_pri} = {(10'b0000000000), 1'b0}; | |
451 | ||
452 | endcase | |
453 | ||
454 | end // else | |
455 | ||
456 | encode_pri = {tx_symbol_pri, pos_disp_pri}; | |
457 | ||
458 | end // function | |
459 | ||
460 | endfunction | |
461 | ||
462 | ||
463 | assign {tx_symbol_pri, pos_disp_pri} = encode_pri(reset, tx_byte, RDreg); | |
464 | ||
465 | ||
466 | // Encode Control Symbols | |
467 | ||
468 | function [10:0] encode_sp; | |
469 | input reset; | |
470 | input [7:0] tx_byte; | |
471 | input RDreg; | |
472 | reg pos_disp_sp; | |
473 | reg [9:0] tx_symbol_sp; | |
474 | ||
475 | begin | |
476 | if (reset) | |
477 | begin | |
478 | pos_disp_sp = 1'b0; | |
479 | tx_symbol_sp = 10'b0000000000; | |
480 | end | |
481 | else | |
482 | begin | |
483 | pos_disp_sp = 1'b0; | |
484 | tx_symbol_sp = 10'b0000000000; | |
485 | ||
486 | ||
487 | // always @ (tx_byte or RDreg) | |
488 | case (tx_byte[7:0]) //synopsys full_case parallel_case infer_mux | |
489 | //if RD-, choose 1st, if RD+ choose 2nd | |
490 | ||
491 | // IB Required Symbols | |
492 | ||
493 | `XPCS_ENC_COM : // K28.5 - COM (Comma, character boundary alignment symbol) | |
494 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011111010 : 10'b1100000101), !RDreg}; | |
495 | `XPCS_ENC_SDP : // K27.7 - SDP (Start of data packet delimiter) | |
496 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b1101101000 : 10'b0010010111), RDreg}; | |
497 | `XPCS_ENC_SLP : // K28.2 - SLP (Start of link packet delimiter) | |
498 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011110101 : 10'b1100001010), !RDreg}; | |
499 | `XPCS_ENC_EGP : // K29.7 - EGP (End of good packet delimiter) | |
500 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b1011101000 : 10'b0100010111), RDreg}; | |
501 | `XPCS_ENC_EBP : // K30.7 - EBP (End of bad packet delimiter) | |
502 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0111101000 : 10'b1000010111), RDreg}; | |
503 | `XPCS_ENC_PAD : // K23.7 - PAD (Packet padding symbol) | |
504 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b1110101000 : 10'b0001010111), RDreg}; | |
505 | `XPCS_ENC_SKP : // K28.0 - SKP (Skip symbol) | |
506 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011110100 : 10'b1100001011), RDreg}; | |
507 | `XPCS_ENC_ALG : // K28.3 - ALG (Alignment symbol) | |
508 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011110011 : 10'b1100001100), !RDreg}; | |
509 | `XPCS_ENC_SEQ : // K28.4 - SEQ (Sequence symbol) | |
510 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011110010 : 10'b1100001101), RDreg}; | |
511 | ||
512 | ||
513 | // Reserved Symbols - Not Needed | |
514 | ||
515 | /* | |
516 | `XPCS_ENC_RS1 : // K28.1 - Reserved Symbol #1 | |
517 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011111001 : 10'b1100000110), !RDreg}; | |
518 | `XPCS_ENC_RS4 : // K28.6 - Reserved Symbol #4 | |
519 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011110110 : 10'b1100001001), !RDreg}; | |
520 | `XPCS_ENC_RS5 : // K28.7 - Reserved Symbol #5 | |
521 | {tx_symbol_sp, pos_disp_sp} = {(!RDreg ? 10'b0011111000 : 10'b1100000111), RDreg}; | |
522 | */ | |
523 | ||
524 | // Default Case | |
525 | ||
526 | default : // Drive NULL | |
527 | {tx_symbol_sp, pos_disp_sp} = {(10'b0000000000), 1'b0}; | |
528 | ||
529 | endcase | |
530 | ||
531 | end // else | |
532 | ||
533 | encode_sp = {tx_symbol_sp, pos_disp_sp}; | |
534 | ||
535 | end // function | |
536 | ||
537 | endfunction | |
538 | ||
539 | ||
540 | assign {tx_symbol_sp , pos_disp_sp } = encode_sp(reset, tx_byte, RDreg); | |
541 | ||
542 | ||
543 | endmodule |