1 |
22 |
sfielding |
VERSION=1.15
|
2 |
|
|
HEADER
|
3 |
|
|
FILE="processRxBit.asf"
|
4 |
|
|
FID=4094ffa4
|
5 |
|
|
LANGUAGE=VERILOG
|
6 |
|
|
ENTITY="processRxBit"
|
7 |
|
|
FRAMES=ON
|
8 |
|
|
FREEOID=258
|
9 |
|
|
"LIBRARIES=//////////////////////////////////////////////////////////////////////\n//// ////\n//// processrxbit\n//// ////\n//// This file is part of the usbhostslave opencores effort.\n//// http://www.opencores.org/cores/usbhostslave/ ////\n//// ////\n//// Module Description: ////\n//// \n//// ////\n//// To Do: ////\n//// \n//// ////\n//// Author(s): ////\n//// - Steve Fielding, sfielding@base2designs.com ////\n//// ////\n//////////////////////////////////////////////////////////////////////\n//// ////\n//// Copyright (C) 2004 Steve Fielding and OPENCORES.ORG ////\n//// ////\n//// This source file may be used and distributed without ////\n//// restriction provided that this copyright statement is not ////\n//// removed from the file and that any derivative work contains ////\n//// the original copyright notice and the associated disclaimer. ////\n//// ////\n//// This source file is free software; you can redistribute it ////\n//// and/or modify it under the terms of the GNU Lesser General ////\n//// Public License as published by the Free Software Foundation; ////\n//// either version 2.1 of the License, or (at your option) any ////\n//// later version. ////\n//// ////\n//// This source is distributed in the hope that it will be ////\n//// useful, but WITHOUT ANY WARRANTY; without even the implied ////\n//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////\n//// PURPOSE. See the GNU Lesser General Public License for more ////\n//// details. ////\n//// ////\n//// You should have received a copy of the GNU Lesser General ////\n//// Public License along with this source; if not, download it ////\n//// from http://www.opencores.org/lgpl.shtml ////\n//// ////\n//////////////////////////////////////////////////////////////////////\n//\n`include \"timescale.v\"\n`include \"usbSerialInterfaceEngine_h.v\"\n\n"
|
10 |
|
|
END
|
11 |
|
|
BUNDLES
|
12 |
|
|
B T "Declarations" 0,0,255 0 0 1 255,255,255 0 3333 0 0000 1 "Arial" 0
|
13 |
|
|
B T "Conditions" 0,0,0 0 0 0 255,255,255 0 3333 0 0110 1 "Arial" 0
|
14 |
|
|
B F "States" 0,0,0 0 0 1 0,255,0 1 3527 1480 0000 0 "Arial" 0
|
15 |
|
|
B T "Actions" 0,0,0 0 0 1 255,255,255 0 3333 0 0000 1 "Arial" 0
|
16 |
|
|
B T "Labels" 0,0,0 0 0 0 0,0,0 0 3333 0 0000 1 "Arial" 0
|
17 |
|
|
B L "Transitions" 0,0,0 0 0 1 0,0,0 1 3527 1480 0000 0 "Arial" 0
|
18 |
|
|
B F "Ports" 0,0,0 0 0 1 0,255,255 1 3527 1480 0000 0 "Arial" 0
|
19 |
|
|
B L "Errors" 255,0,0 0 3 1 255,255,255 1 3527 1480 0000 0 "Arial" 0
|
20 |
|
|
B T "State Labels" 0,0,0 0 0 0 0,0,0 0 3333 0 0000 1 "Arial" 4
|
21 |
|
|
B F "Current State" 255,255,0 0 0 1 255,255,0 1 3527 1480 0000 0 "Arial" 0
|
22 |
|
|
B T "Comments" 157,157,157 0 0 1 255,255,255 0 3333 0 0000 0 "Arial" 0
|
23 |
|
|
B L "Info" 0,255,0 0 3 1 255,255,255 1 3527 1480 0000 0 "Arial" 0
|
24 |
|
|
B F "Junction" 0,0,0 0 0 1 255,0,0 1 3527 1480 0000 0 "Arial" 0
|
25 |
|
|
B F "Initial State Indicator" 0,0,0 0 0 1 240,140,40 1 3527 1480 0000 0 "Arial" 0
|
26 |
|
|
END
|
27 |
|
|
INSTHEADER 1
|
28 |
|
|
PAGE 12700,12700 215900,279400
|
29 |
|
|
UPPERLEFT 0,0
|
30 |
|
|
GRID=OFF
|
31 |
|
|
GRIDSIZE 5000,5000 10000,10000
|
32 |
|
|
END
|
33 |
|
|
INSTHEADER 16
|
34 |
|
|
PAGE 12700,12700 215900,279400
|
35 |
|
|
UPPERLEFT 0,0
|
36 |
|
|
GRID=OFF
|
37 |
|
|
GRIDSIZE 0,0 10000,10000
|
38 |
|
|
END
|
39 |
|
|
INSTHEADER 24
|
40 |
|
|
PAGE 12700,12700 215900,279400
|
41 |
|
|
UPPERLEFT 0,0
|
42 |
|
|
GRID=OFF
|
43 |
|
|
GRIDSIZE 0,0 10000,10000
|
44 |
|
|
END
|
45 |
|
|
INSTHEADER 33
|
46 |
|
|
PAGE 12700,12700 215900,279400
|
47 |
|
|
UPPERLEFT 0,0
|
48 |
|
|
GRID=OFF
|
49 |
|
|
GRIDSIZE 0,0 10000,10000
|
50 |
|
|
END
|
51 |
|
|
INSTHEADER 42
|
52 |
|
|
PAGE 12700,12700 215900,279400
|
53 |
|
|
UPPERLEFT 0,0
|
54 |
|
|
GRID=OFF
|
55 |
|
|
GRIDSIZE 0,0 10000,10000
|
56 |
|
|
END
|
57 |
|
|
INSTHEADER 97
|
58 |
|
|
PAGE 12700,12700 215900,279400
|
59 |
|
|
UPPERLEFT 0,0
|
60 |
|
|
GRID=OFF
|
61 |
|
|
GRIDSIZE 0,0 10000,10000
|
62 |
|
|
END
|
63 |
|
|
INSTHEADER 113
|
64 |
|
|
PAGE 12700,12700 215900,279400
|
65 |
|
|
UPPERLEFT 0,0
|
66 |
|
|
GRID=OFF
|
67 |
|
|
GRIDSIZE 0,0 10000,10000
|
68 |
|
|
END
|
69 |
|
|
INSTHEADER 115
|
70 |
|
|
PAGE 12700,12700 215900,279400
|
71 |
|
|
UPPERLEFT 0,0
|
72 |
|
|
GRID=OFF
|
73 |
|
|
GRIDSIZE 0,0 10000,10000
|
74 |
|
|
END
|
75 |
|
|
INSTHEADER 213
|
76 |
|
|
PAGE 12700,12700 215900,279400
|
77 |
|
|
UPPERLEFT 0,0
|
78 |
|
|
GRID=OFF
|
79 |
|
|
GRIDSIZE 0,0 10000,10000
|
80 |
|
|
END
|
81 |
|
|
INSTHEADER 219
|
82 |
|
|
PAGE 12700,12700 215900,279400
|
83 |
|
|
UPPERLEFT 0,0
|
84 |
|
|
GRID=OFF
|
85 |
|
|
GRIDSIZE 0,0 10000,10000
|
86 |
|
|
END
|
87 |
|
|
INSTHEADER 227
|
88 |
|
|
PAGE 12700,12700 215900,279400
|
89 |
|
|
UPPERLEFT 0,0
|
90 |
|
|
GRID=OFF
|
91 |
|
|
GRIDSIZE 0,0 10000,10000
|
92 |
|
|
END
|
93 |
|
|
OBJECTS
|
94 |
|
|
L 7 6 0 TEXT "Labels" | 23239,210942 1 0 0 "prRxBit"
|
95 |
|
|
F 6 0 671089152 185 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,221539
|
96 |
|
|
G 1 0 0 TEXT 0,0,0 0 0 0 255,255,255 0 3527 1480 0000 0 "Arial" 0 | 94226,265828 1 0 0 "Module: processRxBit"
|
97 |
|
|
L 8 9 0 TEXT "State Labels" | 42238,183458 1 0 0 "START\n/0/"
|
98 |
|
|
S 9 6 0 ELLIPSE "States" | 42238,183458 6500 6500
|
99 |
|
|
I 12 6 0 Builtin Reset | 22728,190398
|
100 |
|
|
W 13 6 0 12 9 BEZIER "Transitions" | 22728,190398 27224,190134 31822,186104 35786,184244
|
101 |
|
|
L 15 16 0 TEXT "State Labels" | 116068,123104 1 0 0 "IDLE"
|
102 |
|
|
S 16 6 4100 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 116068,123104 6500 6500
|
103 |
|
|
H 17 16 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
104 |
|
|
S 18 17 8192 ELLIPSE "States" | 99337,112266 6500 6500
|
105 |
|
|
L 19 18 0 TEXT "State Labels" | 99337,112266 1 0 0 "FIRST_BIT\n/1/"
|
106 |
|
|
I 20 17 0 Builtin Entry | 56736,212076
|
107 |
|
|
I 21 17 0 Builtin Exit | 146563,24238
|
108 |
|
|
W 23 17 0 18 21 BEZIER "Transitions" | 103975,107713 107885,100636 103154,45547 143864,24443
|
109 |
|
|
S 24 6 12292 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 116801,94499 6500 6500
|
110 |
|
|
L 25 24 0 TEXT "State Labels" | 116801,94499 1 0 0 "DATA_RX"
|
111 |
|
|
H 32 24 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15330,15700 199830,263700
|
112 |
|
|
H 41 33 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
113 |
|
|
S 33 6 16388 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 118212,64680 6500 6500
|
114 |
|
|
L 34 33 0 TEXT "State Labels" | 118212,64680 1 0 0 "RES_RX"
|
115 |
|
|
W 35 41 0 40 37 BEZIER "Transitions" | 111741,134422 116780,127404 121695,118778 126735,111760
|
116 |
|
|
W 36 41 0 38 40 BEZIER "Transitions" | 90251,167640 94982,160656 99574,152064 104305,145080
|
117 |
|
|
I 37 41 0 Builtin Exit | 129540,111760
|
118 |
|
|
I 38 41 0 Builtin Entry | 86360,167640
|
119 |
|
|
L 39 40 0 TEXT "State Labels" | 107950,139700 1 0 0 "CHK\n/9/"
|
120 |
|
|
S 40 41 65536 ELLIPSE "States" | 107950,139700 6500 6500
|
121 |
|
|
S 42 6 20484 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 119820,36808 6500 6500
|
122 |
|
|
L 43 42 0 TEXT "State Labels" | 119820,36808 1 0 0 "RES_END"
|
123 |
|
|
H 50 42 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
124 |
|
|
W 51 6 0 213 16 BEZIER "Transitions" | 42388,154240 42522,148478 41966,137442 42502,133556\
|
125 |
|
|
43038,129670 44914,125650 53423,124511 61932,123372\
|
126 |
|
|
93489,123426 109569,123158
|
127 |
|
|
W 52 6 0 213 24 BEZIER "Transitions" | 42699,154238 43235,140704 42636,114126 43641,106354\
|
128 |
|
|
44646,98582 47594,94562 55902,93624 64210,92686\
|
129 |
|
|
94494,92954 102132,93021 109770,93088 110325,93078\
|
130 |
|
|
110459,93078
|
131 |
|
|
W 53 6 0 213 33 BEZIER "Transitions" | 42645,154234 43047,131722 42770,88800 43976,77142\
|
132 |
|
|
45182,65484 49202,63876 57711,63474 66220,63072\
|
133 |
|
|
96236,63072 103807,63072 111378,63072 111758,63165\
|
134 |
|
|
111892,63165
|
135 |
|
|
W 54 6 0 213 42 BEZIER "Transitions" | 42671,154227 43609,125551 43842,70308 45115,54764\
|
136 |
|
|
46388,39220 49604,34396 58247,33391 66890,32386\
|
137 |
|
|
97657,35973 113335,36375
|
138 |
|
|
C 55 51 0 TEXT "Conditions" | 46862,121215 1 0 0 "RXBitStMachCurrState == `IDLE_BIT_ST"
|
139 |
|
|
C 56 52 0 TEXT "Conditions" | 48456,87658 1 0 0 "RXBitStMachCurrState == `DATA_RECEIVE_BIT_ST"
|
140 |
|
|
C 57 53 0 TEXT "Conditions" | 50070,58068 1 0 0 "RXBitStMachCurrState == `WAIT_RESUME_ST"
|
141 |
|
|
C 58 54 0 TEXT "Conditions" | 37965,30092 1 0 0 "RXBitStMachCurrState == `RESUME_END_WAIT_ST"
|
142 |
|
|
L 62 63 0 TEXT "State Labels" | 113723,160148 1 0 0 "WAIT_BITS\n/2/"
|
143 |
|
|
S 63 6 24576 ELLIPSE "States" | 113456,158815 6500 6500
|
144 |
|
|
W 64 6 0 9 63 BEZIER "Transitions" | 48724,183047 60291,181433 96001,163180 107568,161566
|
145 |
|
|
W 65 6 0 63 213 BEZIER "Transitions" | 107011,157978 95175,155961 57808,160629 45972,158612
|
146 |
|
|
C 66 65 0 TEXT "Conditions" | 64836,155511 1 0 0 "processRxBitsWEn == 1'b1"
|
147 |
|
|
W 67 6 0 219 63 BEZIER "Transitions" | 168098,86660 172418,87740 183648,91372 185943,95422\
|
148 |
|
|
188238,99472 188778,113512 186145,122422 183513,131332\
|
149 |
|
|
167904,143587 159264,149864 150624,156142 133542,158851\
|
150 |
|
|
125779,159931 118017,161011 123617,159646 119837,160051
|
151 |
|
|
W 68 6 0 16 219 BEZIER "Transitions" | 121312,119265 131167,111435 152206,96104 162061,88274
|
152 |
|
|
W 69 6 0 24 219 BEZIER "Transitions" | 123174,93221 132840,90845 152243,88111 161207,86437
|
153 |
|
|
W 71 6 0 33 219 BEZIER "Transitions" | 124072,67490 133252,71405 152285,80632 161465,84547
|
154 |
|
|
W 72 6 0 42 219 BEZIER "Transitions" | 124182,41625 133497,51750 153075,73168 162390,83293
|
155 |
|
|
A 73 18 4 TEXT "Actions" | 114133,117894 1 0 0 "processRxByteWEn <= 1'b0;\nRXBitStMachCurrState <= `DATA_RECEIVE_BIT_ST;\nRXSameBitCount <= 4'h0; \nRXBitCount <= 4'h1;\noldRXBits <= RxBits;\n//zero is always the first RZ data bit of a new packet\nRXByte <= 8'h00;"
|
156 |
|
|
L 74 75 0 TEXT "State Labels" | 77268,176778 1 0 0 "CHK_KBIT\n/3/"
|
157 |
|
|
S 75 17 28672 ELLIPSE "States" | 77268,176778 6500 6500
|
158 |
|
|
W 76 17 4096 241 18 BEZIER "Transitions" | 152390,172884 131374,171355 101683,127861 94565,116677
|
159 |
|
|
A 78 65 16 TEXT "Actions" | 57414,163918 1 0 0 "RxBits <= RxBitsIn;\nprocessRxBitRdy <= 1'b0;"
|
160 |
|
|
A 95 91 16 TEXT "Actions" | 81602,214284 1 0 0 "RxDataOut <= 8'h00; //redundant data\nRxCtrlOut <= `DATA_STOP; //end of packet\nprocessRxByteWEn <= 1'b1;"
|
161 |
|
|
W 94 32 0 85 89 BEZIER "Transitions" | 41504,245373 45564,238486 43946,239209 48006,232322
|
162 |
|
|
W 91 32 4096 246 83 BEZIER "Transitions" | 118511,229192 108252,217383 97992,205574 87733,193765
|
163 |
|
|
L 90 89 0 TEXT "State Labels" | 51785,227035 1 0 0 "CHK_SE0\n/5/"
|
164 |
|
|
S 89 32 36864 ELLIPSE "States" | 51785,227035 6500 6500
|
165 |
|
|
A 88 83 4 TEXT "Actions" | 104179,197041 1 0 0 "processRxByteWEn <= 1'b0;\nRXBitStMachCurrState <= `IDLE_BIT_ST;"
|
166 |
|
|
I 86 32 0 Builtin Exit | 178157,29567
|
167 |
|
|
I 85 32 0 Builtin Entry | 37613,245373
|
168 |
|
|
L 84 83 0 TEXT "State Labels" | 82467,189957 1 0 0 "LAST_BIT\n/4/"
|
169 |
|
|
S 83 32 32768 ELLIPSE "States" | 82467,189957 6500 6500
|
170 |
|
|
W 82 17 8194 75 21 BEZIER "Transitions" | 74719,170800 72243,162260 51221,151750 45574,140719\
|
171 |
|
|
39928,129688 39788,80170 47763,75675 55738,71180\
|
172 |
|
|
102436,61038 148189,26024
|
173 |
|
|
W 81 17 0 20 75 BEZIER "Transitions" | 60627,212076 64687,205189 69782,189186 73842,182299
|
174 |
|
|
A 80 76 16 TEXT "Actions" | 95824,146799 1 0 0 "RxDataOut <= 8'h00; //redundant data\nRxCtrlOut <= `DATA_START; //start of packet\nprocessRxByteWEn <= 1'b1;"
|
175 |
|
|
W 111 32 0 97 227 BEZIER "Transitions" | 66477,135648 66678,131226 66890,120750 67091,116328
|
176 |
|
|
W 108 101 0 102 106 BEZIER "Transitions" | 122599,92427 127505,85589 132688,76607 137595,69768
|
177 |
|
|
W 107 101 0 105 102 BEZIER "Transitions" | 101111,125648 105710,118844 110572,109896 115171,103091
|
178 |
|
|
I 106 101 0 Builtin Exit | 140400,69768
|
179 |
|
|
I 105 101 0 Builtin Entry | 97220,125648
|
180 |
|
|
L 103 102 0 TEXT "State Labels" | 118810,97708 1 0 0 "DESTUFF\n/6/"
|
181 |
|
|
S 102 101 45056 ELLIPSE "States" | 118810,97708 6500 6500
|
182 |
|
|
H 101 97 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
183 |
|
|
A 99 89 4 TEXT "Actions" | 56907,247297 1 0 0 "bitStuffError <= 1'b0;"
|
184 |
|
|
W 98 32 8194 89 97 BEZIER "Transitions" | 49942,220803 46756,202617 58189,166563 64651,148377
|
185 |
|
|
S 97 32 40964 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 66418,142124 6500 6500
|
186 |
|
|
L 96 97 0 TEXT "State Labels" | 66418,142124 1 0 0 "DATA"
|
187 |
|
|
H 122 113 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
188 |
|
|
C 121 118 0 TEXT "Conditions" | 90285,92809 1 0 0 "bitStuffError == 1'b1"
|
189 |
|
|
C 120 117 0 TEXT "Conditions" | 17125,90667 1 0 0 "RXBitCount == 4'h8 & bitStuffError == 1'b0"
|
190 |
|
|
W 119 32 8195 227 86 BEZIER "Transitions" | 70866,112476 88554,110332 126022,106808 138752,96624\
|
191 |
|
|
151482,86440 167580,47791 175352,29567
|
192 |
|
|
W 118 32 8194 227 115 BEZIER "Transitions" | 69923,110435 79839,101323 101636,81685 111552,72573
|
193 |
|
|
W 117 32 8193 227 113 BEZIER "Transitions" | 65361,109992 60269,101550 49374,82448 44282,74006
|
194 |
|
|
W 116 32 0 83 86 BEZIER "Transitions" | 88704,188128 110546,183706 152420,173406 164480,164897\
|
195 |
|
|
176540,156388 181096,131196 181431,113977 181766,96758\
|
196 |
|
|
182570,51409 180962,29567
|
197 |
|
|
S 115 32 53252 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 116374,68216 6500 6500
|
198 |
|
|
L 114 115 0 TEXT "State Labels" | 116374,68216 1 0 0 "ERROR"
|
199 |
|
|
S 113 32 49156 ELLIPSE 0,0,0 0 0 1 0,255,255 1 | 41334,68216 6500 6500
|
200 |
|
|
L 112 113 0 TEXT "State Labels" | 41334,68216 1 0 0 "BYTE"
|
201 |
|
|
L 143 142 0 TEXT "State Labels" | 68810,217727 1 0 0 "WAIT_RDY\n/8/"
|
202 |
|
|
S 142 122 61440 ELLIPSE "States" | 68810,217727 6500 6500
|
203 |
|
|
A 141 136 4 TEXT "Actions" | 98360,168539 1 0 0 "processRxByteWEn <= 1'b0;"
|
204 |
|
|
W 140 122 0 136 139 BEZIER "Transitions" | 87355,157633 92394,150615 96149,127199 101189,120181
|
205 |
|
|
I 139 122 0 Builtin Exit | 103994,120181
|
206 |
|
|
I 138 122 0 Builtin Entry | 32350,235287
|
207 |
|
|
L 137 136 0 TEXT "State Labels" | 83564,162911 1 0 0 "SEND2\n/7/"
|
208 |
|
|
S 136 122 57344 ELLIPSE "States" | 83564,162911 6500 6500
|
209 |
|
|
H 129 115 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
210 |
|
|
W 159 129 0 155 251 BEZIER "Transitions" | 47328,237621 58765,237907 69242,234957 80679,235243
|
211 |
|
|
L 156 151 0 TEXT "State Labels" | 70001,162635 1 0 0 "CHK_RES\n/10/"
|
212 |
|
|
I 155 129 0 Builtin Entry | 43437,237621
|
213 |
|
|
I 154 129 0 Builtin Exit | 115081,122515
|
214 |
|
|
W 153 129 0 151 154 BEZIER "Transitions" | 75624,159375 80663,152357 107236,129533 112276,122515
|
215 |
|
|
A 152 151 4 TEXT "Actions" | 94367,174643 1 0 0 "processRxByteWEn <= 1'b0;\nif (RxBits == JBit) //if current bit is a JBit, then\n RXBitStMachCurrState <= `IDLE_BIT_ST; //next state is idle\nelse //else\nbegin\n RXBitStMachCurrState <= `WAIT_RESUME_ST; //check for resume\n resumeWaitCnt <= 5'h0; \nend"
|
216 |
|
|
S 151 129 65536 ELLIPSE "States" | 70001,162635 6500 6500
|
217 |
|
|
A 148 144 16 TEXT "Actions" | 66554,198501 1 0 0 "RXBitCount <= 4'h0;\nRxDataOut <= RXByte; \nRxCtrlOut <= `DATA_STREAM; \nprocessRxByteWEn <= 1'b1;"
|
218 |
|
|
W 147 122 0 138 142 BEZIER "Transitions" | 36241,235287 40301,228400 58702,226995 62762,220108
|
219 |
|
|
W 144 122 4096 142 136 BEZIER "Transitions" | 70118,211361 75926,204431 73609,174845 79417,167915
|
220 |
|
|
I 175 0 130 Builtin OutPort | 78804,245816 "" ""
|
221 |
|
|
L 174 175 0 TEXT "Labels" | 84804,245816 1 0 0 "RxCtrlOut[7:0]"
|
222 |
|
|
I 173 0 130 Builtin OutPort | 79602,240762 "" ""
|
223 |
|
|
L 172 173 0 TEXT "Labels" | 85602,240762 1 0 0 "RxDataOut[7:0]"
|
224 |
|
|
I 171 0 2 Builtin OutPort | 78239,230321 "" ""
|
225 |
|
|
L 170 171 0 TEXT "Labels" | 84239,230321 1 0 0 "resumeDetected"
|
226 |
|
|
A 169 167 4 TEXT "Actions" | 55436,189333 1 0 0 "if (RxBits != KBit) //line must leave KBit state for the end of resume\nbegin\n RXBitStMachCurrState <= `IDLE_BIT_ST;\n resumeDetected <= 1'b0; //clear resume detected flag\nend"
|
227 |
|
|
L 168 167 0 TEXT "State Labels" | 117624,117720 1 0 0 "CHK1\n/11/"
|
228 |
|
|
S 167 50 69632 ELLIPSE "States" | 117624,117720 6500 6500
|
229 |
|
|
I 166 50 0 Builtin Entry | 96034,145660
|
230 |
|
|
I 165 50 0 Builtin Exit | 139214,89780
|
231 |
|
|
W 164 50 0 166 167 BEZIER "Transitions" | 99925,145660 104656,138676 109248,130084 113979,123100
|
232 |
|
|
W 163 50 0 167 165 BEZIER "Transitions" | 121415,112442 126454,105424 131369,96798 136409,89780
|
233 |
|
|
A 162 40 4 TEXT "Actions" | 29424,246323 1 0 0 "if (RxBits != KBit) //can only be a resume if line remains in Kbit state\n RXBitStMachCurrState <= `IDLE_BIT_ST;\nelse \nbegin\n resumeWaitCnt <= resumeWaitCnt + 1'b1; \n //if we've waited long enough, then\n if (resumeWaitCnt == `RESUME_RX_WAIT_TIME)\n begin \n RXBitStMachCurrState <= `RESUME_END_WAIT_ST; \n resumeDetected <= 1'b1; //report resume detected\n end\nend"
|
234 |
|
|
W 161 32 0 113 86 BEZIER "Transitions" | 45583,63298 57777,53382 79524,32408 93292,27115\
|
235 |
|
|
107061,21822 137747,20482 148467,20415 159187,20348\
|
236 |
|
|
171381,21420 174463,22458 177545,23497 178090,26035\
|
237 |
|
|
178157,27576
|
238 |
|
|
W 160 32 0 115 86 BEZIER "Transitions" | 119806,62698 125032,57070 133928,45540 139522,41252\
|
239 |
|
|
145117,36964 157043,31068 161599,29627 166155,28187\
|
240 |
|
|
172203,29500 175352,29567
|
241 |
|
|
A 191 9 4 TEXT "Actions" | 132502,217743 1 0 0 "processRxByteWEn <= 1'b0;\nRxCtrlOut <= 8'h00;\nRxDataOut <= 8'h00;\nresumeDetected <= 1'b0;\nRXBitStMachCurrState <= `IDLE_BIT_ST;\nRxBits <= 2'b00;\nRXSameBitCount <= 4'h0;\nRXBitCount <= 4'h0;\noldRXBits <= 2'b00;\nRXByte <= 8'h00;\nbitStuffError <= 1'b0;\nresumeWaitCnt <= 5'h0;\nprocessRxBitRdy <= 1'b1;"
|
242 |
|
|
C 188 13 0 TEXT "Conditions" | 26243,187081 1 0 0 "rst"
|
243 |
|
|
I 187 0 2 Builtin InPort | 183608,259648 "" ""
|
244 |
|
|
L 186 187 0 TEXT "Labels" | 189608,259648 1 0 0 "rst"
|
245 |
|
|
I 185 0 3 Builtin InPort | 183608,264702 "" ""
|
246 |
|
|
L 184 185 0 TEXT "Labels" | 189608,264702 1 0 0 "clk"
|
247 |
|
|
I 183 0 130 Builtin InPort | 152486,239964 "" ""
|
248 |
|
|
L 182 183 0 TEXT "Labels" | 158486,239964 1 0 0 "KBit[1:0]"
|
249 |
|
|
I 181 0 2 Builtin InPort | 152486,249540 "" ""
|
250 |
|
|
L 180 181 0 TEXT "Labels" | 158486,249540 1 0 0 "processRxBitsWEn"
|
251 |
|
|
I 179 0 130 Builtin InPort | 152752,245018 "" ""
|
252 |
|
|
L 178 179 0 TEXT "Labels" | 158752,245018 1 0 0 "RxBitsIn[1:0]"
|
253 |
|
|
I 177 0 2 Builtin OutPort | 78272,250604 "" ""
|
254 |
|
|
L 176 177 0 TEXT "Labels" | 84272,250604 1 0 0 "processRxByteWEn"
|
255 |
|
|
I 207 0 2 Builtin Signal | 18806,227486 "" ""
|
256 |
|
|
L 206 207 0 TEXT "Labels" | 21806,227486 1 0 0 "bitStuffError"
|
257 |
|
|
I 205 0 130 Builtin Signal | 18834,232706 "" ""
|
258 |
|
|
L 204 205 0 TEXT "Labels" | 21834,232706 1 0 0 "RXByte[7:0]"
|
259 |
|
|
I 203 0 130 Builtin Signal | 18561,238021 "" ""
|
260 |
|
|
L 202 203 0 TEXT "Labels" | 21561,238021 1 0 0 "oldRXBits[1:0]"
|
261 |
|
|
I 201 0 130 Builtin Signal | 19264,243362 "" ""
|
262 |
|
|
L 200 201 0 TEXT "Labels" | 22264,243362 1 0 0 "RXBitCount[3:0]"
|
263 |
|
|
I 199 0 130 Builtin Signal | 18422,248742 "" ""
|
264 |
|
|
L 198 199 0 TEXT "Labels" | 21422,248742 1 0 0 "RXSameBitCount[3:0]"
|
265 |
|
|
I 197 0 130 Builtin Signal | 18422,253264 "" ""
|
266 |
|
|
L 196 197 0 TEXT "Labels" | 21422,253264 1 0 0 "RxBits[1:0]"
|
267 |
|
|
I 193 0 130 Builtin Signal | 18954,263638 "" ""
|
268 |
|
|
L 192 193 0 TEXT "Labels" | 21954,263638 1 0 0 "RXBitStMachCurrState[1:0]"
|
269 |
|
|
I 211 0 130 Builtin Signal | 78080,259259 "" ""
|
270 |
|
|
L 210 211 0 TEXT "Labels" | 81080,259259 1 0 0 "resumeWaitCnt[4:0]"
|
271 |
|
|
L 209 208 0 TEXT "Labels" | 158667,234292 1 0 0 "JBit[1:0]"
|
272 |
|
|
I 208 0 130 Builtin InPort | 152667,234292 "" ""
|
273 |
|
|
L 212 213 0 TEXT "State Labels" | 42588,157720 1 0 0 "J1"
|
274 |
|
|
S 213 6 73748 ELLIPSE "Junction" | 42588,157720 3500 3500
|
275 |
|
|
H 214 213 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
276 |
|
|
I 215 214 0 Builtin Entry | 86360,167640
|
277 |
|
|
I 216 214 0 Builtin Exit | 129540,111760
|
278 |
|
|
W 217 214 0 215 216 BEZIER "Transitions" | 90251,167640 102382,150340 114603,129061 126735,111760
|
279 |
|
|
L 218 219 0 TEXT "State Labels" | 164672,85946 1 0 0 "J2"
|
280 |
|
|
S 219 6 77844 ELLIPSE "Junction" | 164672,85946 3500 3500
|
281 |
|
|
H 220 219 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
282 |
|
|
I 221 220 0 Builtin Entry | 86360,167640
|
283 |
|
|
I 222 220 0 Builtin Exit | 129540,111760
|
284 |
|
|
W 223 220 0 221 222 BEZIER "Transitions" | 90251,167640 102382,150340 114603,129061 126735,111760
|
285 |
|
|
L 226 227 0 TEXT "State Labels" | 67386,112844 1 0 0 "J3"
|
286 |
|
|
S 227 32 81940 ELLIPSE "Junction" | 67386,112844 3500 3500
|
287 |
|
|
H 228 227 0 RECT 0,0,0 0 0 1 255,255,255 0 | 15700,15700 200200,263700
|
288 |
|
|
I 229 228 0 Builtin Entry | 86360,167640
|
289 |
|
|
I 230 228 0 Builtin Exit | 129540,111760
|
290 |
|
|
W 231 228 0 229 230 BEZIER "Transitions" | 90251,167640 102488,150092 114497,129309 126735,111760
|
291 |
|
|
L 232 233 0 TEXT "Labels" | 156002,229172 1 0 0 "processRxBitRdy"
|
292 |
|
|
I 233 0 2 Builtin OutPort | 150002,229172 "" ""
|
293 |
|
|
A 234 67 16 TEXT "Actions" | 139445,159206 1 0 0 "processRxBitRdy <= 1'b1;"
|
294 |
|
|
A 237 102 2 TEXT "Actions" | 25628,249822 1 0 0 "if (RxBits == oldRXBits) //if the current 'RxBits' are the same as the old 'RxBits', then\nbegin\n RXSameBitCount <= RXSameBitCount + 1'b1; //inc 'RXSameBitCount'\n if (RXSameBitCount == `MAX_CONSEC_SAME_BITS) //if 'RXSameBitCount' == 6 there has been a bit stuff error\n bitStuffError <= 1'b1; //flag 'bitStuffError'\n else //else no bit stuffing error\n begin\n RXBitCount <= RXBitCount + 1'b1;\n if (RXBitCount != `MAX_CONSEC_SAME_BITS_PLUS1) begin\n processRxBitRdy <= 1'b1; //early indication of ready\n end\n RXByte <= { 1'b1, RXByte[7:1]}; //RZ bit = 1 (ie no change in 'RxBits')\n end\nend\nelse //else current 'RxBits' are different from old 'RxBits'\nbegin\n if (RXSameBitCount != `MAX_CONSEC_SAME_BITS) //if this is not the RZ 0 bit after 6 consecutive RZ 1s, then\n begin\n RXBitCount <= RXBitCount + 1'b1;\n if (RXBitCount != 4'h7) begin\n processRxBitRdy <= 1'b1; //early indication of ready\n end\n RXByte <= {1'b0, RXByte[7:1]}; //RZ bit = 0 (ie current'RxBits' is different than old 'RxBits')\n end\n RXSameBitCount <= 4'h0; //reset 'RXSameBitCount'\nend\noldRXBits <= RxBits;"
|
295 |
|
|
L 238 239 0 TEXT "Labels" | 158372,254090 1 0 0 "processRxByteRdy"
|
296 |
|
|
I 239 0 2 Builtin InPort | 152372,254090 "" ""
|
297 |
|
|
L 240 241 0 TEXT "State Labels" | 151892,179359 1 0 0 "WAIT_PRB_RDY\n/12/"
|
298 |
|
|
S 241 17 86016 ELLIPSE "States" | 151892,179359 6500 6500
|
299 |
|
|
W 242 17 8193 75 241 BEZIER "Transitions" | 83767,176813 93495,176723 135677,178559 145432,178646
|
300 |
|
|
C 243 242 0 TEXT "Conditions" | 82407,188660 1 0 0 "(RxBits == KBit) && (RxWireActive == 1'b1)"
|
301 |
|
|
C 244 76 0 TEXT "Conditions" | 137618,163943 1 0 0 "processRxByteRdy == 1'b1"
|
302 |
|
|
L 245 246 0 TEXT "State Labels" | 123442,233426 1 0 0 "WAIT_PRB_RDY\n/13/"
|
303 |
|
|
S 246 32 90112 ELLIPSE "States" | 123442,233426 6500 6500
|
304 |
|
|
W 247 32 8193 89 246 BEZIER "Transitions" | 58283,227149 73079,228913 102192,230896 116988,232660
|
305 |
|
|
C 248 247 0 TEXT "Conditions" | 63893,236141 1 0 0 "RxBits == `SE0"
|
306 |
|
|
C 249 91 0 TEXT "Conditions" | 115810,224225 1 0 0 "processRxByteRdy == 1'b1"
|
307 |
|
|
L 250 251 0 TEXT "State Labels" | 87178,235174 1 0 0 "WAIT_RDY\n/14/"
|
308 |
|
|
S 251 129 94208 ELLIPSE "States" | 87178,235174 6500 6500
|
309 |
|
|
W 252 129 0 251 151 BEZIER "Transitions" | 86179,228754 82949,208010 75931,189290 72701,168546
|
310 |
|
|
C 253 252 0 TEXT "Conditions" | 86956,225452 1 0 0 "processRxByteRdy == 1'b1"
|
311 |
|
|
A 254 252 16 TEXT "Actions" | 67337,205212 1 0 0 "RxDataOut <= 8'h00; //redundant data\nRxCtrlOut <= `DATA_BIT_STUFF_ERROR; \nprocessRxByteWEn <= 1'b1;"
|
312 |
|
|
C 255 144 0 TEXT "Conditions" | 72542,211451 1 0 0 "processRxByteRdy == 1'b1"
|
313 |
|
|
I 257 0 2 Builtin InPort | 150840,260800 "" ""
|
314 |
|
|
L 256 257 0 TEXT "Labels" | 156840,260800 1 0 0 "RxWireActive"
|
315 |
|
|
END
|