Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: xgmii_rx_decoder.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 | module xgmii_rx_decoder ( | |
36 | rx_clk, | |
37 | rst, | |
38 | ||
39 | rx_10bdec_in, | |
40 | ||
41 | rx_8bdec_out, | |
42 | special); | |
43 | ||
44 | input rx_clk; // rx clk, 250 MHz | |
45 | input rst; // synchronous active low reset | |
46 | ||
47 | input [9:0] rx_10bdec_in; // receive encoded 10 bit data | |
48 | ||
49 | output [7:0] rx_8bdec_out; // decoded data byte | |
50 | output special; // decoded special characters & errors | |
51 | ||
52 | ||
53 | wire [9:0] rx_10bdec_int; // receive encoded 10 bit data | |
54 | ||
55 | ||
56 | //reg special; // running disparity register | |
57 | ||
58 | reg RDreg; // running disparity register | |
59 | wire noneof6, | |
60 | oneof6, | |
61 | twoof6, | |
62 | threeof6, | |
63 | fourof6, | |
64 | fiveof6, | |
65 | sixof6; //no. of 1#s in data[9:4] | |
66 | wire noneof4, | |
67 | oneof4, | |
68 | twoof4, | |
69 | threeof4, | |
70 | fourof4; //no. of 1#s in data[3:0] | |
71 | wire control; | |
72 | wire pos_disp, RD, newRD; // running disparity signals | |
73 | reg [7:0] deco1_fcn; | |
74 | reg [4:0] deco2_fcn; | |
75 | ||
76 | // decode data | |
77 | ||
78 | assign rx_10bdec_int[9:0] = {rx_10bdec_in[0],rx_10bdec_in[1], rx_10bdec_in[2], | |
79 | rx_10bdec_in[3],rx_10bdec_in[4], rx_10bdec_in[5], | |
80 | rx_10bdec_in[6],rx_10bdec_in[7], rx_10bdec_in[8], | |
81 | rx_10bdec_in[9]}; | |
82 | ||
83 | assign rx_8bdec_out = {deco2_fcn[4:2],deco1_fcn[7:3]}; | |
84 | assign special = deco1_fcn[0]; | |
85 | ||
86 | // Register to hold running disparity | |
87 | ||
88 | always @ (posedge rx_clk) | |
89 | if (rst) | |
90 | RDreg <= 1'b0; | |
91 | else | |
92 | RDreg <= pos_disp; | |
93 | ||
94 | // Running disparity calculator | |
95 | ||
96 | assign noneof4 = ~(rx_10bdec_int[0] | rx_10bdec_int[1] | rx_10bdec_int[2] | rx_10bdec_int[3]); | |
97 | ||
98 | assign fourof4 = (rx_10bdec_int[0] & rx_10bdec_int[1] & rx_10bdec_int[2] & rx_10bdec_int[3]); | |
99 | ||
100 | assign threeof4 = ((rx_10bdec_int[0]^rx_10bdec_int[1]) & (~(rx_10bdec_int[2]^rx_10bdec_int[3]) & | |
101 | (rx_10bdec_int[2]&rx_10bdec_int[3]))) | ((rx_10bdec_int[2]^rx_10bdec_int[3]) & | |
102 | (~(rx_10bdec_int[0]^rx_10bdec_int[1]) & (rx_10bdec_int[0]&rx_10bdec_int[1]))); | |
103 | ||
104 | assign oneof4 = ((~rx_10bdec_int[0]^~rx_10bdec_int[1]) & (~(~rx_10bdec_int[2]^~rx_10bdec_int[3]) & | |
105 | (~rx_10bdec_int[2]&~rx_10bdec_int[3]))) | ((~rx_10bdec_int[2]^~rx_10bdec_int[3]) & | |
106 | (~(~rx_10bdec_int[0]^~rx_10bdec_int[1]) & (~rx_10bdec_int[0]&~rx_10bdec_int[1]))); | |
107 | ||
108 | assign twoof4 = ((rx_10bdec_int[0]^rx_10bdec_int[1]) & (rx_10bdec_int[2]^rx_10bdec_int[3])) | ((rx_10bdec_int[0]&rx_10bdec_int[1]) ^ (rx_10bdec_int[2]&rx_10bdec_int[3])); | |
109 | ||
110 | assign noneof6 = ~(rx_10bdec_int[4] | rx_10bdec_int[5] | rx_10bdec_int[6] | rx_10bdec_int[7] | rx_10bdec_int[8] | rx_10bdec_int[9]); | |
111 | ||
112 | assign sixof6 = (rx_10bdec_int[4] & rx_10bdec_int[5] & rx_10bdec_int[6] & rx_10bdec_int[7] & rx_10bdec_int[8] & rx_10bdec_int[9]); | |
113 | ||
114 | assign fiveof6 = ( (((rx_10bdec_int[4]^rx_10bdec_int[5]) & (~(rx_10bdec_int[6]^rx_10bdec_int[7]) & | |
115 | (rx_10bdec_int[6]&rx_10bdec_int[7]))) | ((rx_10bdec_int[6]^rx_10bdec_int[7]) & | |
116 | (~(rx_10bdec_int[4]^rx_10bdec_int[5]) & (rx_10bdec_int[4]&rx_10bdec_int[5])))) & | |
117 | (rx_10bdec_int[8] & rx_10bdec_int[9]) ) | ((rx_10bdec_int[4] & rx_10bdec_int[5] & | |
118 | rx_10bdec_int[6] & rx_10bdec_int[7]) & (rx_10bdec_int[8] ^ rx_10bdec_int[9])); | |
119 | ||
120 | assign oneof6 = ( (((~rx_10bdec_int[4]^~rx_10bdec_int[5]) & (~(~rx_10bdec_int[6]^~rx_10bdec_int[7]) & | |
121 | (~rx_10bdec_int[6]&~rx_10bdec_int[7]))) | ((~rx_10bdec_int[6]^~rx_10bdec_int[7]) & | |
122 | (~(~rx_10bdec_int[4]^~rx_10bdec_int[5]) & (~rx_10bdec_int[4]&~rx_10bdec_int[5])))) & | |
123 | (~rx_10bdec_int[8] & ~rx_10bdec_int[9]) ) | | |
124 | ((~rx_10bdec_int[4] & ~rx_10bdec_int[5] & ~rx_10bdec_int[6] & ~rx_10bdec_int[7]) & (~rx_10bdec_int[8] ^ ~rx_10bdec_int[9])); | |
125 | ||
126 | assign fourof6 = ( (((rx_10bdec_int[4]^rx_10bdec_int[5]) & (rx_10bdec_int[6]^rx_10bdec_int[7])) | | |
127 | ((rx_10bdec_int[4]&rx_10bdec_int[5]) ^ (rx_10bdec_int[6]&rx_10bdec_int[7]))) & | |
128 | (rx_10bdec_int[8] & rx_10bdec_int[9]) ) | ( (((rx_10bdec_int[4]^rx_10bdec_int[5]) & | |
129 | (~(rx_10bdec_int[6]^rx_10bdec_int[7]) & (rx_10bdec_int[6]&rx_10bdec_int[7]))) | | |
130 | ((rx_10bdec_int[6]^rx_10bdec_int[7]) & (~(rx_10bdec_int[4]^rx_10bdec_int[5]) & | |
131 | (rx_10bdec_int[4]&rx_10bdec_int[5])))) & (rx_10bdec_int[8] ^ rx_10bdec_int[9]) ) | | |
132 | ( (rx_10bdec_int[4] & rx_10bdec_int[5] & rx_10bdec_int[6] & rx_10bdec_int[7]) & | |
133 | (~(rx_10bdec_int[8]|rx_10bdec_int[9])) ); | |
134 | ||
135 | assign twoof6 = ( (((~rx_10bdec_int[4]^~rx_10bdec_int[5]) & (~rx_10bdec_int[6]^~rx_10bdec_int[7])) | | |
136 | ((~rx_10bdec_int[4]&~rx_10bdec_int[5]) ^ (~rx_10bdec_int[6]&~rx_10bdec_int[7]))) & | |
137 | (~rx_10bdec_int[8] & ~rx_10bdec_int[9]) ) | ( (((~rx_10bdec_int[4]^~rx_10bdec_int[5]) & | |
138 | (~(~rx_10bdec_int[6]^~rx_10bdec_int[7]) & (~rx_10bdec_int[6]&~rx_10bdec_int[7]))) | |
139 | | ((~rx_10bdec_int[6]^~rx_10bdec_int[7]) & (~(~rx_10bdec_int[4]^~rx_10bdec_int[5]) & | |
140 | (~rx_10bdec_int[4]&~rx_10bdec_int[5])))) & (~rx_10bdec_int[8] ^ ~rx_10bdec_int[9]) ) | | |
141 | ( (~rx_10bdec_int[4] & ~rx_10bdec_int[5] & ~rx_10bdec_int[6] & ~rx_10bdec_int[7]) & | |
142 | (~(~rx_10bdec_int[8]|~rx_10bdec_int[9])) ); | |
143 | ||
144 | assign threeof6 = ( (((~rx_10bdec_int[4]^~rx_10bdec_int[5]) & (~(~rx_10bdec_int[6]^~rx_10bdec_int[7]) & | |
145 | (~rx_10bdec_int[6]&~rx_10bdec_int[7]))) | ((~rx_10bdec_int[6]^~rx_10bdec_int[7]) & | |
146 | (~(~rx_10bdec_int[4]^~rx_10bdec_int[5]) & (~rx_10bdec_int[4]&~rx_10bdec_int[5])))) & | |
147 | (rx_10bdec_int[8] & rx_10bdec_int[9]) ) | ( (((rx_10bdec_int[4]^rx_10bdec_int[5]) & | |
148 | (rx_10bdec_int[6]^rx_10bdec_int[7])) | | |
149 | ((rx_10bdec_int[4]&rx_10bdec_int[5]) ^ (rx_10bdec_int[6]&rx_10bdec_int[7]))) & | |
150 | (rx_10bdec_int[8] ^ rx_10bdec_int[9]) ) | ( (((rx_10bdec_int[4]^rx_10bdec_int[5]) & | |
151 | (~(rx_10bdec_int[6]^rx_10bdec_int[7]) & (rx_10bdec_int[6]&rx_10bdec_int[7]))) | |
152 | | ((rx_10bdec_int[6]^rx_10bdec_int[7]) & (~(rx_10bdec_int[4]^rx_10bdec_int[5]) & | |
153 | (rx_10bdec_int[6]&rx_10bdec_int[7])))) & ( ~(rx_10bdec_int[8] | rx_10bdec_int[9])) ); | |
154 | ||
155 | assign newRD = ((noneof6 | oneof6 | twoof6) | | |
156 | (threeof6 & (rx_10bdec_int[9:4]==6'b111000))) ? 1'b0 : | |
157 | ((fourof6 | fiveof6 | sixof6) | (threeof6 & | |
158 | (rx_10bdec_int[9:4]==6'b000111))) ? 1'b1 : RDreg; | |
159 | ||
160 | assign pos_disp = ((noneof4 | oneof4) | (twoof4 & | |
161 | (rx_10bdec_int[3:0]==4'b1100))) ? 1'b0 : ((threeof4 | fourof4) | |
162 | | (twoof4 & (rx_10bdec_int[3:0]==4'b0011))) ? 1'b1 : newRD; | |
163 | ||
164 | // 6b5b decode on most significant bits of rx_10bdata | |
165 | // ~RDreg means that you can only get this code if the beginning | |
166 | // running disparity is one. So if zero, error is flagged. | |
167 | // RDreg means that you can only get this code if the beginning | |
168 | // running disparity is zero. So if one, error is flagged. | |
169 | // 1'b0 means that this code can be received whether the | |
170 | // running disparity is zero or one. So no check is done. | |
171 | // | |
172 | // The function output is: | |
173 | // deco1_fcn = {decodata[4:0], dec_err1, rderr, Kchar} | |
174 | ||
175 | always @ (rx_10bdec_int or RDreg) | |
176 | case (rx_10bdec_int[9:4]) //####synopsys parallel_case full_case | |
177 | /* D0 + */ 6'b011000: deco1_fcn = {5'b00000, 1'b0, !RDreg, 1'b0}; | |
178 | /* D0 - */ 6'b100111: deco1_fcn = {5'b00000, 1'b0, RDreg, 1'b0}; | |
179 | /* D1 + */ 6'b100010: deco1_fcn = {5'b00001, 1'b0, !RDreg, 1'b0}; | |
180 | /* D1 - */ 6'b011101: deco1_fcn = {5'b00001, 1'b0, RDreg, 1'b0}; | |
181 | /* D2 + */ 6'b010010: deco1_fcn = {5'b00010, 1'b0, !RDreg, 1'b0}; | |
182 | /* D2 - */ 6'b101101: deco1_fcn = {5'b00010, 1'b0, RDreg, 1'b0}; | |
183 | /* D3 0 */ 6'b110001: deco1_fcn = {5'b00011, 1'b0, 1'b0, 1'b0}; | |
184 | /* D4 + */ 6'b001010: deco1_fcn = {5'b00100, 1'b0, !RDreg, 1'b0}; | |
185 | /* D4 - */ 6'b110101: deco1_fcn = {5'b00100, 1'b0, RDreg, 1'b0}; | |
186 | /* D5 0 */ 6'b101001: deco1_fcn = {5'b00101, 1'b0, 1'b0, 1'b0}; | |
187 | /* D6 0 */ 6'b011001: deco1_fcn = {5'b00110, 1'b0, 1'b0, 1'b0}; | |
188 | /* D7 + */ 6'b000111: deco1_fcn = {5'b00111, 1'b0, !RDreg, 1'b0}; | |
189 | /* D7 - */ 6'b111000: deco1_fcn = {5'b00111, 1'b0, RDreg, 1'b0}; | |
190 | /* D8 + */ 6'b000110: deco1_fcn = {5'b01000, 1'b0, !RDreg, 1'b0}; | |
191 | /* D8 - */ 6'b111001: deco1_fcn = {5'b01000, 1'b0, RDreg, 1'b0}; | |
192 | /* D9 0 */ 6'b100101: deco1_fcn = {5'b01001, 1'b0, 1'b0, 1'b0}; | |
193 | /* D10 0 */ 6'b010101: deco1_fcn = {5'b01010, 1'b0, 1'b0, 1'b0}; | |
194 | /* D11 0 */ 6'b110100: deco1_fcn = {5'b01011, 1'b0, 1'b0, 1'b0}; | |
195 | /* D12 0 */ 6'b001101: deco1_fcn = {5'b01100, 1'b0, 1'b0, 1'b0}; | |
196 | /* D13 0 */ 6'b101100: deco1_fcn = {5'b01101, 1'b0, 1'b0, 1'b0}; | |
197 | /* D14 0 */ 6'b011100: deco1_fcn = {5'b01110, 1'b0, 1'b0, 1'b0}; | |
198 | /* D15 + */ 6'b101000: deco1_fcn = {5'b01111, 1'b0, !RDreg, 1'b0}; | |
199 | /* D15 - */ 6'b010111: deco1_fcn = {5'b01111, 1'b0, RDreg, 1'b0}; | |
200 | /* D16 + */ 6'b100100: deco1_fcn = {5'b10000, 1'b0, !RDreg, 1'b0}; | |
201 | /* D16 - */ 6'b011011: deco1_fcn = {5'b10000, 1'b0, RDreg, 1'b0}; | |
202 | /* D17 0 */ 6'b100011: deco1_fcn = {5'b10001, 1'b0, 1'b0, 1'b0}; | |
203 | /* D18 0 */ 6'b010011: deco1_fcn = {5'b10010, 1'b0, 1'b0, 1'b0}; | |
204 | /* D19 0 */ 6'b110010: deco1_fcn = {5'b10011, 1'b0, 1'b0, 1'b0}; | |
205 | /* D20 0 */ 6'b001011: deco1_fcn = {5'b10100, 1'b0, 1'b0, 1'b0}; | |
206 | /* D21 0 */ 6'b101010: deco1_fcn = {5'b10101, 1'b0, 1'b0, 1'b0}; | |
207 | /* D22 0 */ 6'b011010: deco1_fcn = {5'b10110, 1'b0, 1'b0, 1'b0}; | |
208 | /* D23 + */ 6'b000101: deco1_fcn = {5'b10111, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111)}; | |
209 | /* D23 - */ 6'b111010: deco1_fcn = {5'b10111, 1'b0, RDreg, (rx_10bdec_int[3:0]==4'b1000)}; | |
210 | /* D24 + */ 6'b001100: deco1_fcn = {5'b11000, 1'b0, !RDreg, 1'b0}; | |
211 | /* D24 - */ 6'b110011: deco1_fcn = {5'b11000, 1'b0, RDreg, 1'b0}; | |
212 | /* D25 0 */ 6'b100110: deco1_fcn = {5'b11001, 1'b0, 1'b0, 1'b0}; | |
213 | /* D26 0 */ 6'b010110: deco1_fcn = {5'b11010, 1'b0, 1'b0, 1'b0}; | |
214 | /* D27 + */ 6'b001001: deco1_fcn = {5'b11011, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111)}; | |
215 | /* D27 - */ 6'b110110: deco1_fcn = {5'b11011, 1'b0, RDreg, (rx_10bdec_int[3:0]==4'b1000)}; | |
216 | /* D28 0 */ 6'b001110: deco1_fcn = {5'b11100, 1'b0, 1'b0, 1'b0}; | |
217 | /* D29 + */ 6'b010001: deco1_fcn = {5'b11101, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111)}; | |
218 | /* D29 - */ 6'b101110: deco1_fcn = {5'b11101, 1'b0, RDreg, (rx_10bdec_int[3:0]==4'b1000)}; | |
219 | /* D30 + */ 6'b100001: deco1_fcn = {5'b11110, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111)}; | |
220 | /* D30 - */ 6'b011110: deco1_fcn = {5'b11110, 1'b0, RDreg, (rx_10bdec_int[3:0]==4'b1000)}; | |
221 | /* D31 + */ 6'b010100: deco1_fcn = {5'b11111, 1'b0, !RDreg, 1'b0}; | |
222 | /* D31 - */ 6'b101011: deco1_fcn = {5'b11111, 1'b0, RDreg, 1'b0}; | |
223 | /* K28 + */ 6'b110000: deco1_fcn = {5'b11100, 1'b0, !RDreg, 1'b1}; | |
224 | /* K28 - */ 6'b001111: deco1_fcn = {5'b11100, 1'b0, RDreg, 1'b1}; | |
225 | /* K27.7+*/ 6'b001001: deco1_fcn = {5'b11011, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111) }; | |
226 | /* K27.7-*/ 6'b110110: deco1_fcn = {5'b11011, 1'b0, RDreg, (rx_10bdec_int[3:0]==1000) }; | |
227 | /* K29.7+*/ 6'b010001: deco1_fcn = {5'b11101, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111) }; | |
228 | /* K29.7-*/ 6'b101110: deco1_fcn = {5'b11101, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b1000) }; | |
229 | /* K30.7+*/ 6'b100001: deco1_fcn = {5'b11110, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b0111) }; | |
230 | /* K30.7-*/ 6'b011110: deco1_fcn = {5'b11110, 1'b0, !RDreg, (rx_10bdec_int[3:0]==4'b1000) }; | |
231 | default: deco1_fcn = {5'b00000, 1'b1, 1'b0, 1'b0}; // dec_err1 | |
232 | endcase | |
233 | ||
234 | // 4b3b decode on least significant bits of rx_10bdata | |
235 | // deco2_fcn = {decodata[7:5], dec_err2, rderr2, } | |
236 | ||
237 | always @ (rx_10bdec_int or newRD or deco1_fcn[0]) | |
238 | case (rx_10bdec_int[3:0]) //####synopsys parallel_case full_case | |
239 | /* Dx.0 + */ 4'b0100: deco2_fcn = {3'b000, 1'b0, !newRD}; | |
240 | /* Dx.0 - */ 4'b1011: deco2_fcn = {3'b000, 1'b0, newRD}; | |
241 | /* Dx.1 0 */ 4'b1001: deco2_fcn = {3'b001, deco1_fcn[0], 1'b0}; | |
242 | /* Dx.2 0 */ 4'b0101: deco2_fcn = {3'b010, 1'b0, 1'b0}; | |
243 | /* Dx.3 + */ 4'b0011: deco2_fcn = {3'b011, deco1_fcn[0], !newRD}; | |
244 | /* Dx.3 - */ 4'b1100: deco2_fcn = {3'b011, deco1_fcn[0], newRD}; | |
245 | /* Dx.4 + */ 4'b0010: deco2_fcn = {3'b100, deco1_fcn[0], !newRD}; | |
246 | /* Dx.4 - */ 4'b1101: deco2_fcn = {3'b100, deco1_fcn[0], newRD}; | |
247 | /* Dx.5 0 */ 4'b1010: deco2_fcn = {3'b101, 1'b0, 1'b0}; | |
248 | /* Dx.6 0 */ 4'b0110: deco2_fcn = {3'b110, deco1_fcn[0], 1'b0}; | |
249 | /* Dx.7 + */ 4'b0001: deco2_fcn = {3'b111, deco1_fcn[0], !newRD}; | |
250 | /* Dx.7 - */ 4'b1110: deco2_fcn = {3'b111, deco1_fcn[0], newRD}; | |
251 | /* Ax.7 + */ 4'b1000: deco2_fcn = {3'b111, (rx_10bdec_int[9:4]==6'b110000), !newRD}; | |
252 | /* Ax.7 - */ 4'b0111: deco2_fcn = {3'b111, (rx_10bdec_int[9:4]==6'b001111), newRD}; | |
253 | default: deco2_fcn = {3'b000, 1'b1, 1'b0}; // dec_err2 | |
254 | endcase | |
255 | ||
256 | // decode of special characters | |
257 | ||
258 | ||
259 | /*** | |
260 | assign control = ((rx_10bdec_int[9:0] == 10'b0011111010) | | |
261 | (rx_10bdec_int[9:0] == 10'b1100000101) | | |
262 | (rx_10bdec_int[9:0] == 10'b1101101000) | | |
263 | (rx_10bdec_int[9:0] == 10'b0010010111) | | |
264 | (rx_10bdec_int[9:0] == 10'b1011101000) | | |
265 | (rx_10bdec_int[9:0] == 10'b0100010111) | | |
266 | (rx_10bdec_int[9:0] == 10'b0111101000) | | |
267 | (rx_10bdec_int[9:0] == 10'b1000010111) | | |
268 | (rx_10bdec_int[9:0] == 10'b0011110010) | | |
269 | (rx_10bdec_int[9:0] == 10'b1100001101) | | |
270 | (rx_10bdec_int[9:0] == 10'b0011110011) | | |
271 | (rx_10bdec_int[9:0] == 10'b1100001100)); | |
272 | ***/ | |
273 | ||
274 | //assign special = (rst|control) ? 1'b1:1'b0; | |
275 | ||
276 | ||
277 | /*** | |
278 | always @(rx_10bdec_int ) | |
279 | begin | |
280 | if ((rx_10bdec_int[9:0] == 10'b0011111010)) { | |
281 | special = 1'b1; | |
282 | } else{ | |
283 | special = 1'b0; | |
284 | } | |
285 | end | |
286 | ||
287 | always @(rx_10bdec_int or rst) | |
288 | begin | |
289 | ||
290 | ||
291 | if ( (rst) || (rx_10bdec_int[9:0] == 10'b0011111010) || (rx_10bdec_int[9:0] == 10'b1100000101) || (rx_10bdec_int[9:0] == 10'b1101101000) || (rx_10bdec_int[9:0] == 10'b0010010111) || (rx_10bdec_int[9:0] == 10'b1011101000) || (rx_10bdec_int[9:0] == 10'b0100010111) || (rx_10bdec_int[9:0] == 10'b0111101000) || (rx_10bdec_int[9:0] == 10'b1000010111) || (rx_10bdec_int[9:0] == 10'b0011110010) || (rx_10bdec_int[9:0] == 10'b1100001101) || (rx_10bdec_int[9:0] == 10'b0011110011) || (rx_10bdec_int[9:0] == 10'b1100001100) ) { | |
292 | ||
293 | special = 1'b1; | |
294 | } | |
295 | else { | |
296 | special = 1'b0; | |
297 | } | |
298 | end | |
299 | **/ | |
300 | ||
301 | ||
302 | endmodule // | |
303 |