| [11] | 1 | # /home/sharma/vl2mv/i586/bin/vl2mv 4-arbit.v |
|---|
| 2 | # version: 0.2 |
|---|
| 3 | # date: 20:34:06 07/21/96 (CDT) |
|---|
| 4 | .model main |
|---|
| 5 | # I/O ports |
|---|
| 6 | |
|---|
| 7 | .mv constFALSE 2 myTRUE myFALSE |
|---|
| 8 | .mv sa 2 myTRUE myFALSE |
|---|
| 9 | .mv ur1 4 idle request lock release |
|---|
| 10 | .mv xa 2 myTRUE myFALSE |
|---|
| 11 | .mv ur2 4 idle request lock release |
|---|
| 12 | .mv yr 4 idle request lock release |
|---|
| 13 | .mv ur3 4 idle request lock release |
|---|
| 14 | .mv ua1 2 myTRUE myFALSE |
|---|
| 15 | .mv ur4 4 idle request lock release |
|---|
| 16 | .mv ua2 2 myTRUE myFALSE |
|---|
| 17 | .mv sr 4 idle request lock release |
|---|
| 18 | .mv ua3 2 myTRUE myFALSE |
|---|
| 19 | .mv ua4 2 myTRUE myFALSE |
|---|
| 20 | .mv xr 4 idle request lock release |
|---|
| 21 | .mv ya 2 myTRUE myFALSE |
|---|
| 22 | .mv constTRUE 2 myTRUE myFALSE |
|---|
| 23 | # assign constTRUE = 0 |
|---|
| 24 | .mv constTRUE$raw_n0 2 myTRUE myFALSE |
|---|
| 25 | .names constTRUE$raw_n0 |
|---|
| 26 | myTRUE |
|---|
| 27 | # assign constFALSE = 1 |
|---|
| 28 | .mv constFALSE$raw_n1 2 myTRUE myFALSE |
|---|
| 29 | .names constFALSE$raw_n1 |
|---|
| 30 | myFALSE |
|---|
| 31 | # assign sa = constFALSE |
|---|
| 32 | .mv sa$raw_n2 2 myTRUE myFALSE |
|---|
| 33 | .names constFALSE sa$raw_n2 |
|---|
| 34 | - =constFALSE |
|---|
| 35 | .subckt arbitCell C0 topCell=constTRUE urLeft=xr urRight=yr uaLeft=xa uaRight=ya xr=sr xa=sa |
|---|
| 36 | .subckt arbitCell C1 topCell=constFALSE urLeft=ur1 urRight=ur2 uaLeft=ua1 uaRight=ua2 xr=xr xa=xa |
|---|
| 37 | .subckt arbitCell C2 topCell=constFALSE urLeft=ur3 urRight=ur4 uaLeft=ua3 uaRight=ua4 xr=yr xa=ya |
|---|
| 38 | .subckt procModel P1 ack=ua1 req=ur1 |
|---|
| 39 | .subckt procModel P2 ack=ua2 req=ur2 |
|---|
| 40 | .subckt procModel P3 ack=ua3 req=ur3 |
|---|
| 41 | .subckt procModel P4 ack=ua4 req=ur4 |
|---|
| 42 | # conflict arbitrators |
|---|
| 43 | .names constFALSE$raw_n1 constFALSE |
|---|
| 44 | - =constFALSE$raw_n1 |
|---|
| 45 | .names sa$raw_n2 sa |
|---|
| 46 | - =sa$raw_n2 |
|---|
| 47 | .names constTRUE$raw_n0 constTRUE |
|---|
| 48 | - =constTRUE$raw_n0 |
|---|
| 49 | # non-blocking assignments |
|---|
| 50 | # latches |
|---|
| 51 | # quasi-continuous assignment |
|---|
| 52 | .end |
|---|
| 53 | |
|---|
| 54 | |
|---|
| 55 | .model arbitCell |
|---|
| 56 | # I/O ports |
|---|
| 57 | .outputs uaLeft |
|---|
| 58 | .inputs topCell |
|---|
| 59 | .inputs xa |
|---|
| 60 | .inputs urRight |
|---|
| 61 | .inputs urLeft |
|---|
| 62 | .outputs xr |
|---|
| 63 | .outputs uaRight |
|---|
| 64 | |
|---|
| 65 | .mv processedLeft 2 myTRUE myFALSE |
|---|
| 66 | .mv prevLeft 2 myTRUE myFALSE |
|---|
| 67 | .mv holdToken 2 myTRUE myFALSE |
|---|
| 68 | .mv processedRight 2 myTRUE myFALSE |
|---|
| 69 | .mv uaLeft 2 myTRUE myFALSE |
|---|
| 70 | .mv topCell 2 myTRUE myFALSE |
|---|
| 71 | .mv xa 2 myTRUE myFALSE |
|---|
| 72 | .mv urRight 4 idle request lock release |
|---|
| 73 | .mv giveChild 2 myTRUE myFALSE |
|---|
| 74 | .mv urLeft 4 idle request lock release |
|---|
| 75 | .mv mustGiveParent 2 myTRUE myFALSE |
|---|
| 76 | .mv xr 4 idle request lock release |
|---|
| 77 | .mv uaRight 2 myTRUE myFALSE |
|---|
| 78 | .mv childOwns 2 myTRUE myFALSE |
|---|
| 79 | .mv prevRight 2 myTRUE myFALSE |
|---|
| 80 | # prevLeft = 1 |
|---|
| 81 | .mv prevLeft$raw_n3 2 myTRUE myFALSE |
|---|
| 82 | .names prevLeft$raw_n3 |
|---|
| 83 | myFALSE |
|---|
| 84 | # non-blocking assignments for initial |
|---|
| 85 | # prevRight = 0 |
|---|
| 86 | .mv prevRight$raw_n4 2 myTRUE myFALSE |
|---|
| 87 | .names prevRight$raw_n4 |
|---|
| 88 | myTRUE |
|---|
| 89 | # non-blocking assignments for initial |
|---|
| 90 | # processedLeft = 1 |
|---|
| 91 | .mv processedLeft$raw_n5 2 myTRUE myFALSE |
|---|
| 92 | .names processedLeft$raw_n5 |
|---|
| 93 | myFALSE |
|---|
| 94 | # non-blocking assignments for initial |
|---|
| 95 | # processedRight = 1 |
|---|
| 96 | .mv processedRight$raw_n6 2 myTRUE myFALSE |
|---|
| 97 | .names processedRight$raw_n6 |
|---|
| 98 | myFALSE |
|---|
| 99 | # non-blocking assignments for initial |
|---|
| 100 | # assign mustGiveParent = (processedLeft == 0) && (processedRight == 0) && (!(topCell == 0)) ? 0 : 1 |
|---|
| 101 | .mv mustGiveParent$raw_n7 2 myTRUE myFALSE |
|---|
| 102 | .mv _n9 2 myTRUE myFALSE |
|---|
| 103 | .names _n9 |
|---|
| 104 | myTRUE |
|---|
| 105 | # processedLeft == 0 |
|---|
| 106 | .names processedLeft _n9 _n8 |
|---|
| 107 | .def 0 |
|---|
| 108 | - =processedLeft 1 |
|---|
| 109 | .mv _nb 2 myTRUE myFALSE |
|---|
| 110 | .names _nb |
|---|
| 111 | myTRUE |
|---|
| 112 | # processedRight == 0 |
|---|
| 113 | .names processedRight _nb _na |
|---|
| 114 | .def 0 |
|---|
| 115 | - =processedRight 1 |
|---|
| 116 | # (processedLeft == 0) && (processedRight == 0) |
|---|
| 117 | .names _n8 _na _nc |
|---|
| 118 | .def 0 |
|---|
| 119 | 1 1 1 |
|---|
| 120 | .mv _ne 2 myTRUE myFALSE |
|---|
| 121 | .names _ne |
|---|
| 122 | myTRUE |
|---|
| 123 | # topCell == 0 |
|---|
| 124 | .names topCell _ne _nd |
|---|
| 125 | .def 0 |
|---|
| 126 | - =topCell 1 |
|---|
| 127 | .names _nd _nf |
|---|
| 128 | 0 1 |
|---|
| 129 | 1 0 |
|---|
| 130 | # (processedLeft == 0) && (processedRight == 0) && (!(topCell == 0)) |
|---|
| 131 | .names _nc _nf _n10 |
|---|
| 132 | .def 0 |
|---|
| 133 | 1 1 1 |
|---|
| 134 | .mv _n11 2 myTRUE myFALSE |
|---|
| 135 | .names _n11 |
|---|
| 136 | myTRUE |
|---|
| 137 | .mv _n12 2 myTRUE myFALSE |
|---|
| 138 | .names _n12 |
|---|
| 139 | myFALSE |
|---|
| 140 | # (processedLeft == 0) && (processedRight == 0) && (!(topCell == 0)) ? 0 : 1 |
|---|
| 141 | .mv _n13 2 myTRUE myFALSE |
|---|
| 142 | .names _n11 _n12 _n10 _n13 |
|---|
| 143 | - - 0 =_n12 |
|---|
| 144 | - - 1 =_n11 |
|---|
| 145 | .names _n13 mustGiveParent$raw_n7 |
|---|
| 146 | - =_n13 |
|---|
| 147 | # holdToken = topCell |
|---|
| 148 | .mv holdToken$raw_n14 2 myTRUE myFALSE |
|---|
| 149 | .names topCell holdToken$raw_n14 |
|---|
| 150 | - =topCell |
|---|
| 151 | # non-blocking assignments for initial |
|---|
| 152 | # assign childOwns = (urLeft == lock || urRight == lock ) ? 0 : 1 |
|---|
| 153 | .mv childOwns$raw_n15 2 myTRUE myFALSE |
|---|
| 154 | .mv _n17 4 idle request lock release |
|---|
| 155 | .names _n17 |
|---|
| 156 | lock |
|---|
| 157 | # urLeft == 2 |
|---|
| 158 | .names urLeft _n17 _n16 |
|---|
| 159 | .def 0 |
|---|
| 160 | - =urLeft 1 |
|---|
| 161 | .mv _n19 4 idle request lock release |
|---|
| 162 | .names _n19 |
|---|
| 163 | lock |
|---|
| 164 | # urRight == 2 |
|---|
| 165 | .names urRight _n19 _n18 |
|---|
| 166 | .def 0 |
|---|
| 167 | - =urRight 1 |
|---|
| 168 | # urLeft == 2 || urRight == 2 |
|---|
| 169 | .names _n16 _n18 _n1a |
|---|
| 170 | .def 1 |
|---|
| 171 | 0 0 0 |
|---|
| 172 | .mv _n1b 2 myTRUE myFALSE |
|---|
| 173 | .names _n1b |
|---|
| 174 | myTRUE |
|---|
| 175 | .mv _n1c 2 myTRUE myFALSE |
|---|
| 176 | .names _n1c |
|---|
| 177 | myFALSE |
|---|
| 178 | # (urLeft == 2 || urRight == 2) ? 0 : 1 |
|---|
| 179 | .mv _n1d 2 myTRUE myFALSE |
|---|
| 180 | .names _n1b _n1c _n1a _n1d |
|---|
| 181 | - - 0 =_n1c |
|---|
| 182 | - - 1 =_n1b |
|---|
| 183 | .names _n1d childOwns$raw_n15 |
|---|
| 184 | - =_n1d |
|---|
| 185 | # assign giveChild = (uaLeft == 0 || uaRight == 0) ? 0 : 1 |
|---|
| 186 | .mv giveChild$raw_n1e 2 myTRUE myFALSE |
|---|
| 187 | .mv _n20 2 myTRUE myFALSE |
|---|
| 188 | .names _n20 |
|---|
| 189 | myTRUE |
|---|
| 190 | # uaLeft == 0 |
|---|
| 191 | .names uaLeft _n20 _n1f |
|---|
| 192 | .def 0 |
|---|
| 193 | - =uaLeft 1 |
|---|
| 194 | .mv _n22 2 myTRUE myFALSE |
|---|
| 195 | .names _n22 |
|---|
| 196 | myTRUE |
|---|
| 197 | # uaRight == 0 |
|---|
| 198 | .names uaRight _n22 _n21 |
|---|
| 199 | .def 0 |
|---|
| 200 | - =uaRight 1 |
|---|
| 201 | # uaLeft == 0 || uaRight == 0 |
|---|
| 202 | .names _n1f _n21 _n23 |
|---|
| 203 | .def 1 |
|---|
| 204 | 0 0 0 |
|---|
| 205 | .mv _n24 2 myTRUE myFALSE |
|---|
| 206 | .names _n24 |
|---|
| 207 | myTRUE |
|---|
| 208 | .mv _n25 2 myTRUE myFALSE |
|---|
| 209 | .names _n25 |
|---|
| 210 | myFALSE |
|---|
| 211 | # (uaLeft == 0 || uaRight == 0) ? 0 : 1 |
|---|
| 212 | .mv _n26 2 myTRUE myFALSE |
|---|
| 213 | .names _n24 _n25 _n23 _n26 |
|---|
| 214 | - - 0 =_n25 |
|---|
| 215 | - - 1 =_n24 |
|---|
| 216 | .names _n26 giveChild$raw_n1e |
|---|
| 217 | - =_n26 |
|---|
| 218 | # assign uaLeft = (!(mustGiveParent == 0) && (holdToken == 0 && urLeft == request && (!(urRight == request ) || prevRight == 0))) ? 0 : 1 |
|---|
| 219 | .mv uaLeft$raw_n27 2 myTRUE myFALSE |
|---|
| 220 | .mv _n29 2 myTRUE myFALSE |
|---|
| 221 | .names _n29 |
|---|
| 222 | myTRUE |
|---|
| 223 | # mustGiveParent == 0 |
|---|
| 224 | .names mustGiveParent _n29 _n28 |
|---|
| 225 | .def 0 |
|---|
| 226 | - =mustGiveParent 1 |
|---|
| 227 | .names _n28 _n2a |
|---|
| 228 | 0 1 |
|---|
| 229 | 1 0 |
|---|
| 230 | .mv _n2c 2 myTRUE myFALSE |
|---|
| 231 | .names _n2c |
|---|
| 232 | myTRUE |
|---|
| 233 | # holdToken == 0 |
|---|
| 234 | .names holdToken _n2c _n2b |
|---|
| 235 | .def 0 |
|---|
| 236 | - =holdToken 1 |
|---|
| 237 | .mv _n2e 4 idle request lock release |
|---|
| 238 | .names _n2e |
|---|
| 239 | request |
|---|
| 240 | # urLeft == 1 |
|---|
| 241 | .names urLeft _n2e _n2d |
|---|
| 242 | .def 0 |
|---|
| 243 | - =urLeft 1 |
|---|
| 244 | # holdToken == 0 && urLeft == 1 |
|---|
| 245 | .names _n2b _n2d _n2f |
|---|
| 246 | .def 0 |
|---|
| 247 | 1 1 1 |
|---|
| 248 | .mv _n31 4 idle request lock release |
|---|
| 249 | .names _n31 |
|---|
| 250 | request |
|---|
| 251 | # urRight == 1 |
|---|
| 252 | .names urRight _n31 _n30 |
|---|
| 253 | .def 0 |
|---|
| 254 | - =urRight 1 |
|---|
| 255 | .names _n30 _n32 |
|---|
| 256 | 0 1 |
|---|
| 257 | 1 0 |
|---|
| 258 | .mv _n34 2 myTRUE myFALSE |
|---|
| 259 | .names _n34 |
|---|
| 260 | myTRUE |
|---|
| 261 | # prevRight == 0 |
|---|
| 262 | .names prevRight _n34 _n33 |
|---|
| 263 | .def 0 |
|---|
| 264 | - =prevRight 1 |
|---|
| 265 | # !(urRight == 1) || prevRight == 0 |
|---|
| 266 | .names _n32 _n33 _n35 |
|---|
| 267 | .def 1 |
|---|
| 268 | 0 0 0 |
|---|
| 269 | # holdToken == 0 && urLeft == 1 && (!(urRight == 1) || prevRight == 0) |
|---|
| 270 | .names _n2f _n35 _n36 |
|---|
| 271 | .def 0 |
|---|
| 272 | 1 1 1 |
|---|
| 273 | # !(mustGiveParent == 0) && (holdToken == 0 && urLeft == 1 && (!(urRight == 1) || prevRight == 0)) |
|---|
| 274 | .names _n2a _n36 _n37 |
|---|
| 275 | .def 0 |
|---|
| 276 | 1 1 1 |
|---|
| 277 | .mv _n38 2 myTRUE myFALSE |
|---|
| 278 | .names _n38 |
|---|
| 279 | myTRUE |
|---|
| 280 | .mv _n39 2 myTRUE myFALSE |
|---|
| 281 | .names _n39 |
|---|
| 282 | myFALSE |
|---|
| 283 | # (!(mustGiveParent == 0) && (holdToken == 0 && urLeft == 1 && (!(urRight == 1) || prevRight == 0))) ? 0 : 1 |
|---|
| 284 | .mv _n3a 2 myTRUE myFALSE |
|---|
| 285 | .names _n38 _n39 _n37 _n3a |
|---|
| 286 | - - 0 =_n39 |
|---|
| 287 | - - 1 =_n38 |
|---|
| 288 | .names _n3a uaLeft$raw_n27 |
|---|
| 289 | - =_n3a |
|---|
| 290 | # assign uaRight = (!(mustGiveParent == 0) && (holdToken == 0 && urRight == request && (!(urLeft == request ) || prevLeft == 0))) ? 0 : 1 |
|---|
| 291 | .mv uaRight$raw_n3b 2 myTRUE myFALSE |
|---|
| 292 | .mv _n3d 2 myTRUE myFALSE |
|---|
| 293 | .names _n3d |
|---|
| 294 | myTRUE |
|---|
| 295 | # mustGiveParent == 0 |
|---|
| 296 | .names mustGiveParent _n3d _n3c |
|---|
| 297 | .def 0 |
|---|
| 298 | - =mustGiveParent 1 |
|---|
| 299 | .names _n3c _n3e |
|---|
| 300 | 0 1 |
|---|
| 301 | 1 0 |
|---|
| 302 | .mv _n40 2 myTRUE myFALSE |
|---|
| 303 | .names _n40 |
|---|
| 304 | myTRUE |
|---|
| 305 | # holdToken == 0 |
|---|
| 306 | .names holdToken _n40 _n3f |
|---|
| 307 | .def 0 |
|---|
| 308 | - =holdToken 1 |
|---|
| 309 | .mv _n42 4 idle request lock release |
|---|
| 310 | .names _n42 |
|---|
| 311 | request |
|---|
| 312 | # urRight == 1 |
|---|
| 313 | .names urRight _n42 _n41 |
|---|
| 314 | .def 0 |
|---|
| 315 | - =urRight 1 |
|---|
| 316 | # holdToken == 0 && urRight == 1 |
|---|
| 317 | .names _n3f _n41 _n43 |
|---|
| 318 | .def 0 |
|---|
| 319 | 1 1 1 |
|---|
| 320 | .mv _n45 4 idle request lock release |
|---|
| 321 | .names _n45 |
|---|
| 322 | request |
|---|
| 323 | # urLeft == 1 |
|---|
| 324 | .names urLeft _n45 _n44 |
|---|
| 325 | .def 0 |
|---|
| 326 | - =urLeft 1 |
|---|
| 327 | .names _n44 _n46 |
|---|
| 328 | 0 1 |
|---|
| 329 | 1 0 |
|---|
| 330 | .mv _n48 2 myTRUE myFALSE |
|---|
| 331 | .names _n48 |
|---|
| 332 | myTRUE |
|---|
| 333 | # prevLeft == 0 |
|---|
| 334 | .names prevLeft _n48 _n47 |
|---|
| 335 | .def 0 |
|---|
| 336 | - =prevLeft 1 |
|---|
| 337 | # !(urLeft == 1) || prevLeft == 0 |
|---|
| 338 | .names _n46 _n47 _n49 |
|---|
| 339 | .def 1 |
|---|
| 340 | 0 0 0 |
|---|
| 341 | # holdToken == 0 && urRight == 1 && (!(urLeft == 1) || prevLeft == 0) |
|---|
| 342 | .names _n43 _n49 _n4a |
|---|
| 343 | .def 0 |
|---|
| 344 | 1 1 1 |
|---|
| 345 | # !(mustGiveParent == 0) && (holdToken == 0 && urRight == 1 && (!(urLeft == 1) || prevLeft == 0)) |
|---|
| 346 | .names _n3e _n4a _n4b |
|---|
| 347 | .def 0 |
|---|
| 348 | 1 1 1 |
|---|
| 349 | .mv _n4c 2 myTRUE myFALSE |
|---|
| 350 | .names _n4c |
|---|
| 351 | myTRUE |
|---|
| 352 | .mv _n4d 2 myTRUE myFALSE |
|---|
| 353 | .names _n4d |
|---|
| 354 | myFALSE |
|---|
| 355 | # (!(mustGiveParent == 0) && (holdToken == 0 && urRight == 1 && (!(urLeft == 1) || prevLeft == 0))) ? 0 : 1 |
|---|
| 356 | .mv _n4e 2 myTRUE myFALSE |
|---|
| 357 | .names _n4c _n4d _n4b _n4e |
|---|
| 358 | - - 0 =_n4d |
|---|
| 359 | - - 1 =_n4c |
|---|
| 360 | .names _n4e uaRight$raw_n3b |
|---|
| 361 | - =_n4e |
|---|
| 362 | # assign xr = (holdToken == myFALSE && (urLeft == 1 || urRight == 1)) ? 1 : (childOwns == myTRUE ) ? 2 : (holdToken == myTRUE && (((mustGiveParent == myTRUE ) || !((urLeft == 1 || urRight == 1))) && !(topCell == myTRUE ))) ? 3 : 0 |
|---|
| 363 | .mv xr$raw_n4f 4 idle request lock release |
|---|
| 364 | .mv _n51 2 myTRUE myFALSE |
|---|
| 365 | .names _n51 |
|---|
| 366 | myFALSE |
|---|
| 367 | # holdToken == 1 |
|---|
| 368 | .names holdToken _n51 _n50 |
|---|
| 369 | .def 0 |
|---|
| 370 | - =holdToken 1 |
|---|
| 371 | .mv _n53 4 idle request lock release |
|---|
| 372 | .names _n53 |
|---|
| 373 | request |
|---|
| 374 | # urLeft == 1 |
|---|
| 375 | .names urLeft _n53 _n52 |
|---|
| 376 | .def 0 |
|---|
| 377 | - =urLeft 1 |
|---|
| 378 | .mv _n55 4 idle request lock release |
|---|
| 379 | .names _n55 |
|---|
| 380 | request |
|---|
| 381 | # urRight == 1 |
|---|
| 382 | .names urRight _n55 _n54 |
|---|
| 383 | .def 0 |
|---|
| 384 | - =urRight 1 |
|---|
| 385 | # urLeft == 1 || urRight == 1 |
|---|
| 386 | .names _n52 _n54 _n56 |
|---|
| 387 | .def 1 |
|---|
| 388 | 0 0 0 |
|---|
| 389 | # holdToken == 1 && (urLeft == 1 || urRight == 1) |
|---|
| 390 | .names _n50 _n56 _n57 |
|---|
| 391 | .def 0 |
|---|
| 392 | 1 1 1 |
|---|
| 393 | .mv _n59 2 myTRUE myFALSE |
|---|
| 394 | .names _n59 |
|---|
| 395 | myTRUE |
|---|
| 396 | # childOwns == 0 |
|---|
| 397 | .names childOwns _n59 _n58 |
|---|
| 398 | .def 0 |
|---|
| 399 | - =childOwns 1 |
|---|
| 400 | .mv _n5b 2 myTRUE myFALSE |
|---|
| 401 | .names _n5b |
|---|
| 402 | myTRUE |
|---|
| 403 | # holdToken == 0 |
|---|
| 404 | .names holdToken _n5b _n5a |
|---|
| 405 | .def 0 |
|---|
| 406 | - =holdToken 1 |
|---|
| 407 | .mv _n5d 2 myTRUE myFALSE |
|---|
| 408 | .names _n5d |
|---|
| 409 | myTRUE |
|---|
| 410 | # mustGiveParent == 0 |
|---|
| 411 | .names mustGiveParent _n5d _n5c |
|---|
| 412 | .def 0 |
|---|
| 413 | - =mustGiveParent 1 |
|---|
| 414 | .mv _n5f 4 idle request lock release |
|---|
| 415 | .names _n5f |
|---|
| 416 | request |
|---|
| 417 | # urLeft == 1 |
|---|
| 418 | .names urLeft _n5f _n5e |
|---|
| 419 | .def 0 |
|---|
| 420 | - =urLeft 1 |
|---|
| 421 | .mv _n61 4 idle request lock release |
|---|
| 422 | .names _n61 |
|---|
| 423 | request |
|---|
| 424 | # urRight == 1 |
|---|
| 425 | .names urRight _n61 _n60 |
|---|
| 426 | .def 0 |
|---|
| 427 | - =urRight 1 |
|---|
| 428 | # urLeft == 1 || urRight == 1 |
|---|
| 429 | .names _n5e _n60 _n62 |
|---|
| 430 | .def 1 |
|---|
| 431 | 0 0 0 |
|---|
| 432 | .names _n62 _n63 |
|---|
| 433 | 0 1 |
|---|
| 434 | 1 0 |
|---|
| 435 | # (mustGiveParent == 0) || !((urLeft == 1 || urRight == 1)) |
|---|
| 436 | .names _n5c _n63 _n64 |
|---|
| 437 | .def 1 |
|---|
| 438 | 0 0 0 |
|---|
| 439 | .mv _n66 2 myTRUE myFALSE |
|---|
| 440 | .names _n66 |
|---|
| 441 | myTRUE |
|---|
| 442 | # topCell == 0 |
|---|
| 443 | .names topCell _n66 _n65 |
|---|
| 444 | .def 0 |
|---|
| 445 | - =topCell 1 |
|---|
| 446 | .names _n65 _n67 |
|---|
| 447 | 0 1 |
|---|
| 448 | 1 0 |
|---|
| 449 | # ((mustGiveParent == 0) || !((urLeft == 1 || urRight == 1))) && !(topCell == 0) |
|---|
| 450 | .names _n64 _n67 _n68 |
|---|
| 451 | .def 0 |
|---|
| 452 | 1 1 1 |
|---|
| 453 | # holdToken == 0 && (((mustGiveParent == 0) || !((urLeft == 1 || urRight == 1))) && !(topCell == 0)) |
|---|
| 454 | .names _n5a _n68 _n69 |
|---|
| 455 | .def 0 |
|---|
| 456 | 1 1 1 |
|---|
| 457 | .mv _n6a 4 idle request lock release |
|---|
| 458 | .names _n6a |
|---|
| 459 | release |
|---|
| 460 | .mv _n6b 4 idle request lock release |
|---|
| 461 | .names _n6b |
|---|
| 462 | idle |
|---|
| 463 | # (holdToken == 0 && (((mustGiveParent == 0) || !((urLeft == 1 || urRight == 1))) && !(topCell == 0))) ? 3 : 0 |
|---|
| 464 | .mv _n6c 4 idle request lock release |
|---|
| 465 | .names _n6a _n6b _n69 _n6c |
|---|
| 466 | - - 0 =_n6b |
|---|
| 467 | - - 1 =_n6a |
|---|
| 468 | .mv _n6d 4 idle request lock release |
|---|
| 469 | .names _n6d |
|---|
| 470 | lock |
|---|
| 471 | # (childOwns == 0) ? 2 : (holdToken == 0 && (((mustGiveParent == 0) || !((urLeft == 1 || urRight == 1))) && !(topCell == 0))) ? 3 : 0 |
|---|
| 472 | .mv _n6e 4 idle request lock release |
|---|
| 473 | .names _n6d _n6c _n58 _n6e |
|---|
| 474 | - - 0 =_n6c |
|---|
| 475 | - - 1 =_n6d |
|---|
| 476 | .mv _n6f 4 idle request lock release |
|---|
| 477 | .names _n6f |
|---|
| 478 | request |
|---|
| 479 | # (holdToken == 1 && (urLeft == 1 || urRight == 1)) ? 1 : (childOwns == 0) ? 2 : (holdToken == 0 && (((mustGiveParent == 0) || !((urLeft == 1 || urRight == 1))) && !(topCell == 0))) ? 3 : 0 |
|---|
| 480 | .mv _n70 4 idle request lock release |
|---|
| 481 | .names _n6f _n6e _n57 _n70 |
|---|
| 482 | - - 0 =_n6e |
|---|
| 483 | - - 1 =_n6f |
|---|
| 484 | .names _n70 xr$raw_n4f |
|---|
| 485 | - =_n70 |
|---|
| 486 | .mv _n72 2 myTRUE myFALSE |
|---|
| 487 | .names _n72 |
|---|
| 488 | myTRUE |
|---|
| 489 | # xa == 0 |
|---|
| 490 | .names xa _n72 _n71 |
|---|
| 491 | .def 0 |
|---|
| 492 | - =xa 1 |
|---|
| 493 | .names _n71 _n73 |
|---|
| 494 | - =_n71 |
|---|
| 495 | # holdToken = 0 |
|---|
| 496 | .mv holdToken$_n71_n74$true 2 myTRUE myFALSE |
|---|
| 497 | .names holdToken$_n71_n74$true |
|---|
| 498 | myTRUE |
|---|
| 499 | .mv _n76 2 myTRUE myFALSE |
|---|
| 500 | .names _n76 |
|---|
| 501 | myTRUE |
|---|
| 502 | # giveChild == 0 |
|---|
| 503 | .names giveChild _n76 _n75 |
|---|
| 504 | .def 0 |
|---|
| 505 | - =giveChild 1 |
|---|
| 506 | .names _n75 _n77 |
|---|
| 507 | - =_n75 |
|---|
| 508 | # holdToken = 1 |
|---|
| 509 | .mv holdToken$_n75_n78$true 2 myTRUE myFALSE |
|---|
| 510 | .names holdToken$_n75_n78$true |
|---|
| 511 | myFALSE |
|---|
| 512 | .mv _n7a 4 idle request lock release |
|---|
| 513 | .names _n7a |
|---|
| 514 | release |
|---|
| 515 | # urLeft == 3 |
|---|
| 516 | .names urLeft _n7a _n79 |
|---|
| 517 | .def 0 |
|---|
| 518 | - =urLeft 1 |
|---|
| 519 | .mv _n7c 4 idle request lock release |
|---|
| 520 | .names _n7c |
|---|
| 521 | release |
|---|
| 522 | # urRight == 3 |
|---|
| 523 | .names urRight _n7c _n7b |
|---|
| 524 | .def 0 |
|---|
| 525 | - =urRight 1 |
|---|
| 526 | # urLeft == 3 || urRight == 3 |
|---|
| 527 | .names _n79 _n7b _n7d |
|---|
| 528 | .def 1 |
|---|
| 529 | 0 0 0 |
|---|
| 530 | .names _n7d _n7e |
|---|
| 531 | - =_n7d |
|---|
| 532 | # holdToken = 0 |
|---|
| 533 | .mv holdToken$_n7d_n7f$true 2 myTRUE myFALSE |
|---|
| 534 | .names holdToken$_n7d_n7f$true |
|---|
| 535 | myTRUE |
|---|
| 536 | .mv _n81 4 idle request lock release |
|---|
| 537 | .names _n81 |
|---|
| 538 | release |
|---|
| 539 | # xr == 3 |
|---|
| 540 | .names xr _n81 _n80 |
|---|
| 541 | .def 0 |
|---|
| 542 | - =xr 1 |
|---|
| 543 | .names _n80 _n82 |
|---|
| 544 | - =_n80 |
|---|
| 545 | # holdToken = 1 |
|---|
| 546 | .mv holdToken$_n80_n83$true 2 myTRUE myFALSE |
|---|
| 547 | .names holdToken$_n80_n83$true |
|---|
| 548 | myFALSE |
|---|
| 549 | # if/else (xr == 3) |
|---|
| 550 | .mv holdToken$_n80$raw_n86 2 myTRUE myFALSE |
|---|
| 551 | .names holdToken$_n80_n83$true holdToken _n80 holdToken$_n80$raw_n86 |
|---|
| 552 | - - 0 =holdToken |
|---|
| 553 | - - 1 =holdToken$_n80_n83$true |
|---|
| 554 | # if/else (urLeft == 3 || urRight == 3) |
|---|
| 555 | .mv holdToken$_n7d$raw_n88 2 myTRUE myFALSE |
|---|
| 556 | .names holdToken$_n7d_n7f$true holdToken$_n80$raw_n86 _n7d holdToken$_n7d$raw_n88 |
|---|
| 557 | - - 0 =holdToken$_n80$raw_n86 |
|---|
| 558 | - - 1 =holdToken$_n7d_n7f$true |
|---|
| 559 | # if/else (giveChild == 0) |
|---|
| 560 | .mv holdToken$_n75$raw_n8c 2 myTRUE myFALSE |
|---|
| 561 | .names holdToken$_n75_n78$true holdToken$_n7d$raw_n88 _n75 holdToken$_n75$raw_n8c |
|---|
| 562 | - - 0 =holdToken$_n7d$raw_n88 |
|---|
| 563 | - - 1 =holdToken$_n75_n78$true |
|---|
| 564 | # if/else (xa == 0) |
|---|
| 565 | .mv holdToken$_n71$raw_n90 2 myTRUE myFALSE |
|---|
| 566 | .names holdToken$_n71_n74$true holdToken$_n75$raw_n8c _n71 holdToken$_n71$raw_n90 |
|---|
| 567 | - - 0 =holdToken$_n75$raw_n8c |
|---|
| 568 | - - 1 =holdToken$_n71_n74$true |
|---|
| 569 | .mv _n94 2 myTRUE myFALSE |
|---|
| 570 | .names _n94 |
|---|
| 571 | myTRUE |
|---|
| 572 | # uaLeft == 0 |
|---|
| 573 | .names uaLeft _n94 _n93 |
|---|
| 574 | .def 0 |
|---|
| 575 | - =uaLeft 1 |
|---|
| 576 | .names _n93 _n95 |
|---|
| 577 | - =_n93 |
|---|
| 578 | # prevLeft = 0 |
|---|
| 579 | .mv prevLeft$_n93_n96$true 2 myTRUE myFALSE |
|---|
| 580 | .names prevLeft$_n93_n96$true |
|---|
| 581 | myTRUE |
|---|
| 582 | # prevRight = 1 |
|---|
| 583 | .mv prevRight$_n93_n97$true 2 myTRUE myFALSE |
|---|
| 584 | .names prevRight$_n93_n97$true |
|---|
| 585 | myFALSE |
|---|
| 586 | .mv _n99 2 myTRUE myFALSE |
|---|
| 587 | .names _n99 |
|---|
| 588 | myTRUE |
|---|
| 589 | # uaRight == 0 |
|---|
| 590 | .names uaRight _n99 _n98 |
|---|
| 591 | .def 0 |
|---|
| 592 | - =uaRight 1 |
|---|
| 593 | .names _n98 _n9a |
|---|
| 594 | - =_n98 |
|---|
| 595 | # prevLeft = 1 |
|---|
| 596 | .mv prevLeft$_n98_n9b$true 2 myTRUE myFALSE |
|---|
| 597 | .names prevLeft$_n98_n9b$true |
|---|
| 598 | myFALSE |
|---|
| 599 | # prevRight = 0 |
|---|
| 600 | .mv prevRight$_n98_n9c$true 2 myTRUE myFALSE |
|---|
| 601 | .names prevRight$_n98_n9c$true |
|---|
| 602 | myTRUE |
|---|
| 603 | # if/else (uaRight == 0) |
|---|
| 604 | .mv prevLeft$_n98$raw_na3 2 myTRUE myFALSE |
|---|
| 605 | .names prevLeft$_n98_n9b$true prevLeft _n98 prevLeft$_n98$raw_na3 |
|---|
| 606 | - - 0 =prevLeft |
|---|
| 607 | - - 1 =prevLeft$_n98_n9b$true |
|---|
| 608 | .mv prevRight$_n98$raw_na5 2 myTRUE myFALSE |
|---|
| 609 | .names prevRight$_n98_n9c$true prevRight _n98 prevRight$_n98$raw_na5 |
|---|
| 610 | - - 0 =prevRight |
|---|
| 611 | - - 1 =prevRight$_n98_n9c$true |
|---|
| 612 | # if/else (uaLeft == 0) |
|---|
| 613 | .mv prevLeft$_n93$raw_naa 2 myTRUE myFALSE |
|---|
| 614 | .names prevLeft$_n93_n96$true prevLeft$_n98$raw_na3 _n93 prevLeft$_n93$raw_naa |
|---|
| 615 | - - 0 =prevLeft$_n98$raw_na3 |
|---|
| 616 | - - 1 =prevLeft$_n93_n96$true |
|---|
| 617 | .mv prevRight$_n93$raw_nac 2 myTRUE myFALSE |
|---|
| 618 | .names prevRight$_n93_n97$true prevRight$_n98$raw_na5 _n93 prevRight$_n93$raw_nac |
|---|
| 619 | - - 0 =prevRight$_n98$raw_na5 |
|---|
| 620 | - - 1 =prevRight$_n93_n97$true |
|---|
| 621 | .mv _nb4 4 idle request lock release |
|---|
| 622 | .names _nb4 |
|---|
| 623 | release |
|---|
| 624 | # urLeft == 3 |
|---|
| 625 | .names urLeft _nb4 _nb3 |
|---|
| 626 | .def 0 |
|---|
| 627 | - =urLeft 1 |
|---|
| 628 | .names _nb3 _nb5 |
|---|
| 629 | - =_nb3 |
|---|
| 630 | # processedLeft = 0 |
|---|
| 631 | .mv processedLeft$_nb3_nb6$true 2 myTRUE myFALSE |
|---|
| 632 | .names processedLeft$_nb3_nb6$true |
|---|
| 633 | myTRUE |
|---|
| 634 | .mv _nb8 4 idle request lock release |
|---|
| 635 | .names _nb8 |
|---|
| 636 | release |
|---|
| 637 | # urRight == 3 |
|---|
| 638 | .names urRight _nb8 _nb7 |
|---|
| 639 | .def 0 |
|---|
| 640 | - =urRight 1 |
|---|
| 641 | .names _nb7 _nb9 |
|---|
| 642 | - =_nb7 |
|---|
| 643 | # processedRight = 0 |
|---|
| 644 | .mv processedRight$_nb7_nba$true 2 myTRUE myFALSE |
|---|
| 645 | .names processedRight$_nb7_nba$true |
|---|
| 646 | myTRUE |
|---|
| 647 | .mv _nbc 2 myTRUE myFALSE |
|---|
| 648 | .names _nbc |
|---|
| 649 | myTRUE |
|---|
| 650 | # processedLeft == 0 |
|---|
| 651 | .names processedLeft _nbc _nbb |
|---|
| 652 | .def 0 |
|---|
| 653 | - =processedLeft 1 |
|---|
| 654 | .mv _nbe 2 myTRUE myFALSE |
|---|
| 655 | .names _nbe |
|---|
| 656 | myTRUE |
|---|
| 657 | # processedRight == 0 |
|---|
| 658 | .names processedRight _nbe _nbd |
|---|
| 659 | .def 0 |
|---|
| 660 | - =processedRight 1 |
|---|
| 661 | # (processedLeft == 0) && (processedRight == 0) |
|---|
| 662 | .names _nbb _nbd _nbf |
|---|
| 663 | .def 0 |
|---|
| 664 | 1 1 1 |
|---|
| 665 | .names _nbf _nc0 |
|---|
| 666 | - =_nbf |
|---|
| 667 | # processedLeft = 1 |
|---|
| 668 | .mv processedLeft$_nbf_nc1$true 2 myTRUE myFALSE |
|---|
| 669 | .names processedLeft$_nbf_nc1$true |
|---|
| 670 | myFALSE |
|---|
| 671 | # processedRight = 1 |
|---|
| 672 | .mv processedRight$_nbf_nc2$true 2 myTRUE myFALSE |
|---|
| 673 | .names processedRight$_nbf_nc2$true |
|---|
| 674 | myFALSE |
|---|
| 675 | # if/else ((processedLeft == 0) && (processedRight == 0)) |
|---|
| 676 | .mv processedLeft$_nbf$raw_ncd 2 myTRUE myFALSE |
|---|
| 677 | .names processedLeft$_nbf_nc1$true processedLeft _nbf processedLeft$_nbf$raw_ncd |
|---|
| 678 | - - 0 =processedLeft |
|---|
| 679 | - - 1 =processedLeft$_nbf_nc1$true |
|---|
| 680 | .mv processedRight$_nbf$raw_ncf 2 myTRUE myFALSE |
|---|
| 681 | .names processedRight$_nbf_nc2$true processedRight _nbf processedRight$_nbf$raw_ncf |
|---|
| 682 | - - 0 =processedRight |
|---|
| 683 | - - 1 =processedRight$_nbf_nc2$true |
|---|
| 684 | # if/else (urRight == 3) |
|---|
| 685 | .mv processedRight$_nb7$raw_nda 2 myTRUE myFALSE |
|---|
| 686 | .names processedRight$_nb7_nba$true processedRight$_nbf$raw_ncf _nb7 processedRight$_nb7$raw_nda |
|---|
| 687 | - - 0 =processedRight$_nbf$raw_ncf |
|---|
| 688 | - - 1 =processedRight$_nb7_nba$true |
|---|
| 689 | .mv processedLeft$_nb7$raw_ne1 2 myTRUE myFALSE |
|---|
| 690 | .names processedLeft processedLeft$_nbf$raw_ncd _nb7 processedLeft$_nb7$raw_ne1 |
|---|
| 691 | - - 0 =processedLeft$_nbf$raw_ncd |
|---|
| 692 | - - 1 =processedLeft |
|---|
| 693 | # if/else (urLeft == 3) |
|---|
| 694 | .mv processedLeft$_nb3$raw_nea 2 myTRUE myFALSE |
|---|
| 695 | .names processedLeft$_nb3_nb6$true processedLeft$_nb7$raw_ne1 _nb3 processedLeft$_nb3$raw_nea |
|---|
| 696 | - - 0 =processedLeft$_nb7$raw_ne1 |
|---|
| 697 | - - 1 =processedLeft$_nb3_nb6$true |
|---|
| 698 | .mv processedRight$_nb3$raw_nf4 2 myTRUE myFALSE |
|---|
| 699 | .names processedRight processedRight$_nb7$raw_nda _nb3 processedRight$_nb3$raw_nf4 |
|---|
| 700 | - - 0 =processedRight$_nb7$raw_nda |
|---|
| 701 | - - 1 =processedRight |
|---|
| 702 | # conflict arbitrators |
|---|
| 703 | .names _nb5 _nb9 _nc0 _nf7 |
|---|
| 704 | .def 0 |
|---|
| 705 | 1 - - 1 |
|---|
| 706 | 0 0 1 1 |
|---|
| 707 | .mv _nf8 2 myTRUE myFALSE |
|---|
| 708 | .names _nf7 processedLeft$_nb3$raw_nea processedLeft _nf8 |
|---|
| 709 | 1 - - =processedLeft$_nb3$raw_nea |
|---|
| 710 | 0 - - =processedLeft |
|---|
| 711 | .names _n95 _n9a _n105 |
|---|
| 712 | .def 0 |
|---|
| 713 | 1 - 1 |
|---|
| 714 | 0 1 1 |
|---|
| 715 | .mv _n106 2 myTRUE myFALSE |
|---|
| 716 | .names _n105 prevLeft$_n93$raw_naa prevLeft _n106 |
|---|
| 717 | 1 - - =prevLeft$_n93$raw_naa |
|---|
| 718 | 0 - - =prevLeft |
|---|
| 719 | .names _n73 _n77 _n7e _n82 _n113 |
|---|
| 720 | .def 0 |
|---|
| 721 | 1 - - - 1 |
|---|
| 722 | 0 1 - - 1 |
|---|
| 723 | 0 0 1 - 1 |
|---|
| 724 | 0 0 0 1 1 |
|---|
| 725 | .mv _n114 2 myTRUE myFALSE |
|---|
| 726 | .names _n113 holdToken$_n71$raw_n90 holdToken _n114 |
|---|
| 727 | 1 - - =holdToken$_n71$raw_n90 |
|---|
| 728 | 0 - - =holdToken |
|---|
| 729 | .names _nb5 _nb9 _nc0 _n121 |
|---|
| 730 | .def 0 |
|---|
| 731 | 0 1 - 1 |
|---|
| 732 | 0 0 1 1 |
|---|
| 733 | .mv _n122 2 myTRUE myFALSE |
|---|
| 734 | .names _n121 processedRight$_nb3$raw_nf4 processedRight _n122 |
|---|
| 735 | 1 - - =processedRight$_nb3$raw_nf4 |
|---|
| 736 | 0 - - =processedRight |
|---|
| 737 | .names uaLeft$raw_n27 uaLeft |
|---|
| 738 | - =uaLeft$raw_n27 |
|---|
| 739 | .names giveChild$raw_n1e giveChild |
|---|
| 740 | - =giveChild$raw_n1e |
|---|
| 741 | .names mustGiveParent$raw_n7 mustGiveParent |
|---|
| 742 | - =mustGiveParent$raw_n7 |
|---|
| 743 | .names xr$raw_n4f xr |
|---|
| 744 | - =xr$raw_n4f |
|---|
| 745 | .names uaRight$raw_n3b uaRight |
|---|
| 746 | - =uaRight$raw_n3b |
|---|
| 747 | .names childOwns$raw_n15 childOwns |
|---|
| 748 | - =childOwns$raw_n15 |
|---|
| 749 | .names _n95 _n9a _n12f |
|---|
| 750 | .def 0 |
|---|
| 751 | 1 - 1 |
|---|
| 752 | 0 1 1 |
|---|
| 753 | .mv _n130 2 myTRUE myFALSE |
|---|
| 754 | .names _n12f prevRight$_n93$raw_nac prevRight _n130 |
|---|
| 755 | 1 - - =prevRight$_n93$raw_nac |
|---|
| 756 | 0 - - =prevRight |
|---|
| 757 | # non-blocking assignments |
|---|
| 758 | # latches |
|---|
| 759 | .r prevLeft$raw_n3 prevLeft |
|---|
| 760 | - =prevLeft$raw_n3 |
|---|
| 761 | .latch _n106 prevLeft |
|---|
| 762 | .r processedLeft$raw_n5 processedLeft |
|---|
| 763 | - =processedLeft$raw_n5 |
|---|
| 764 | .latch _nf8 processedLeft |
|---|
| 765 | .r processedRight$raw_n6 processedRight |
|---|
| 766 | - =processedRight$raw_n6 |
|---|
| 767 | .latch _n122 processedRight |
|---|
| 768 | .r holdToken$raw_n14 holdToken |
|---|
| 769 | - =holdToken$raw_n14 |
|---|
| 770 | .latch _n114 holdToken |
|---|
| 771 | .r prevRight$raw_n4 prevRight |
|---|
| 772 | - =prevRight$raw_n4 |
|---|
| 773 | .latch _n130 prevRight |
|---|
| 774 | # quasi-continuous assignment |
|---|
| 775 | .end |
|---|
| 776 | |
|---|
| 777 | |
|---|
| 778 | .model procModel |
|---|
| 779 | # I/O ports |
|---|
| 780 | .outputs req |
|---|
| 781 | .inputs ack |
|---|
| 782 | |
|---|
| 783 | .mv req 4 idle request lock release |
|---|
| 784 | .mv procState 4 idle request lock release |
|---|
| 785 | .mv ack 2 myTRUE myFALSE |
|---|
| 786 | # assign req = procState |
|---|
| 787 | .mv req$raw_n13d 4 idle request lock release |
|---|
| 788 | .names procState req$raw_n13d |
|---|
| 789 | - =procState |
|---|
| 790 | # procState = 0 |
|---|
| 791 | .mv procState$raw_n13e 4 idle request lock release |
|---|
| 792 | .names procState$raw_n13e |
|---|
| 793 | idle |
|---|
| 794 | # non-blocking assignments for initial |
|---|
| 795 | # assign randChoice = $NDset ( 0,1,2,3,4,5,6,7 ) |
|---|
| 796 | .names -> randChoice<0> randChoice<1> randChoice<2> |
|---|
| 797 | 0 0 0 |
|---|
| 798 | 1 0 0 |
|---|
| 799 | 0 1 0 |
|---|
| 800 | 1 1 0 |
|---|
| 801 | 0 0 1 |
|---|
| 802 | 1 0 1 |
|---|
| 803 | 0 1 1 |
|---|
| 804 | 1 1 1 |
|---|
| 805 | .mv _n142 4 idle request lock release |
|---|
| 806 | .names _n142 |
|---|
| 807 | idle |
|---|
| 808 | # procState == 0 |
|---|
| 809 | .names procState _n142 _n141 |
|---|
| 810 | .def 0 |
|---|
| 811 | - =procState 1 |
|---|
| 812 | .names _n144<0> |
|---|
| 813 | 1 |
|---|
| 814 | .names _n144<1> |
|---|
| 815 | 1 |
|---|
| 816 | .names _n144<2> |
|---|
| 817 | 1 |
|---|
| 818 | # randChoice == 7 |
|---|
| 819 | .names randChoice<0> _n144<0> _n145<0> |
|---|
| 820 | .def 0 |
|---|
| 821 | 0 1 1 |
|---|
| 822 | 1 0 1 |
|---|
| 823 | .names randChoice<1> _n144<1> _n145<1> |
|---|
| 824 | .def 0 |
|---|
| 825 | 0 1 1 |
|---|
| 826 | 1 0 1 |
|---|
| 827 | .names randChoice<2> _n144<2> _n145<2> |
|---|
| 828 | .def 0 |
|---|
| 829 | 0 1 1 |
|---|
| 830 | 1 0 1 |
|---|
| 831 | .names _n145<0> _n145<1> _n145<2> _n146 |
|---|
| 832 | .def 1 |
|---|
| 833 | 0 0 0 0 |
|---|
| 834 | .names _n146 _n143 |
|---|
| 835 | 0 1 |
|---|
| 836 | 1 0 |
|---|
| 837 | # procState == 0 && (randChoice == 7) |
|---|
| 838 | .names _n141 _n143 _n147 |
|---|
| 839 | .def 0 |
|---|
| 840 | 1 1 1 |
|---|
| 841 | .names _n147 _n148 |
|---|
| 842 | - =_n147 |
|---|
| 843 | # procState = 1 |
|---|
| 844 | .mv procState$_n147_n149$true 4 idle request lock release |
|---|
| 845 | .names procState$_n147_n149$true |
|---|
| 846 | request |
|---|
| 847 | .mv _n14b 4 idle request lock release |
|---|
| 848 | .names _n14b |
|---|
| 849 | request |
|---|
| 850 | # procState == 1 |
|---|
| 851 | .names procState _n14b _n14a |
|---|
| 852 | .def 0 |
|---|
| 853 | - =procState 1 |
|---|
| 854 | .mv _n14d 2 myTRUE myFALSE |
|---|
| 855 | .names _n14d |
|---|
| 856 | myTRUE |
|---|
| 857 | # ack == 0 |
|---|
| 858 | .names ack _n14d _n14c |
|---|
| 859 | .def 0 |
|---|
| 860 | - =ack 1 |
|---|
| 861 | # procState == 1 && ack == 0 |
|---|
| 862 | .names _n14a _n14c _n14e |
|---|
| 863 | .def 0 |
|---|
| 864 | 1 1 1 |
|---|
| 865 | .names _n14e _n14f |
|---|
| 866 | - =_n14e |
|---|
| 867 | # procState = 2 |
|---|
| 868 | .mv procState$_n14e_n150$true 4 idle request lock release |
|---|
| 869 | .names procState$_n14e_n150$true |
|---|
| 870 | lock |
|---|
| 871 | .mv _n152 4 idle request lock release |
|---|
| 872 | .names _n152 |
|---|
| 873 | lock |
|---|
| 874 | # procState == 2 |
|---|
| 875 | .names procState _n152 _n151 |
|---|
| 876 | .def 0 |
|---|
| 877 | - =procState 1 |
|---|
| 878 | .names _n153<0> |
|---|
| 879 | 1 |
|---|
| 880 | .names _n153<1> |
|---|
| 881 | 1 |
|---|
| 882 | .names _n153<2> |
|---|
| 883 | 0 |
|---|
| 884 | # randChoice > 3 |
|---|
| 885 | .names _n156 |
|---|
| 886 | 0 |
|---|
| 887 | .names randChoice<0> _n153<0> _n156 _n155<0> |
|---|
| 888 | .def 0 |
|---|
| 889 | 0 0 1 1 |
|---|
| 890 | 0 1 0 1 |
|---|
| 891 | 1 0 0 1 |
|---|
| 892 | 1 1 1 1 |
|---|
| 893 | # carry/borrow |
|---|
| 894 | .names _n158 |
|---|
| 895 | 0 |
|---|
| 896 | .names randChoice<0> _n153<0> _n158 _n157 |
|---|
| 897 | .def 0 |
|---|
| 898 | 0 0 1 1 |
|---|
| 899 | 0 1 0 1 |
|---|
| 900 | 0 1 1 1 |
|---|
| 901 | 1 1 1 1 |
|---|
| 902 | .names randChoice<1> _n153<1> _n157 _n155<1> |
|---|
| 903 | .def 0 |
|---|
| 904 | 0 0 1 1 |
|---|
| 905 | 0 1 0 1 |
|---|
| 906 | 1 0 0 1 |
|---|
| 907 | 1 1 1 1 |
|---|
| 908 | # carry/borrow |
|---|
| 909 | .names randChoice<1> _n153<1> _n157 _n159 |
|---|
| 910 | .def 0 |
|---|
| 911 | 0 0 1 1 |
|---|
| 912 | 0 1 0 1 |
|---|
| 913 | 0 1 1 1 |
|---|
| 914 | 1 1 1 1 |
|---|
| 915 | .names randChoice<2> _n153<2> _n159 _n155<2> |
|---|
| 916 | .def 0 |
|---|
| 917 | 0 0 1 1 |
|---|
| 918 | 0 1 0 1 |
|---|
| 919 | 1 0 0 1 |
|---|
| 920 | 1 1 1 1 |
|---|
| 921 | # carry/borrow |
|---|
| 922 | .names randChoice<2> _n153<2> _n159 _n15a |
|---|
| 923 | .def 0 |
|---|
| 924 | 0 0 1 1 |
|---|
| 925 | 0 1 0 1 |
|---|
| 926 | 0 1 1 1 |
|---|
| 927 | 1 1 1 1 |
|---|
| 928 | .names _n155<0> _n155<1> _n155<2> _n15b |
|---|
| 929 | .def 0 |
|---|
| 930 | 0 0 0 1 |
|---|
| 931 | .names _n15a _n15b _n15c |
|---|
| 932 | .def 1 |
|---|
| 933 | 0 0 0 |
|---|
| 934 | .names _n15c _n154 |
|---|
| 935 | 0 1 |
|---|
| 936 | 1 0 |
|---|
| 937 | # procState == 2 && (randChoice > 3) |
|---|
| 938 | .names _n151 _n154 _n15d |
|---|
| 939 | .def 0 |
|---|
| 940 | 1 1 1 |
|---|
| 941 | .names _n15d _n15e |
|---|
| 942 | - =_n15d |
|---|
| 943 | # procState = 3 |
|---|
| 944 | .mv procState$_n15d_n15f$true 4 idle request lock release |
|---|
| 945 | .names procState$_n15d_n15f$true |
|---|
| 946 | release |
|---|
| 947 | .mv _n161 4 idle request lock release |
|---|
| 948 | .names _n161 |
|---|
| 949 | release |
|---|
| 950 | # procState == 3 |
|---|
| 951 | .names procState _n161 _n160 |
|---|
| 952 | .def 0 |
|---|
| 953 | - =procState 1 |
|---|
| 954 | .names _n160 _n162 |
|---|
| 955 | - =_n160 |
|---|
| 956 | # procState = 0 |
|---|
| 957 | .mv procState$_n160_n163$true 4 idle request lock release |
|---|
| 958 | .names procState$_n160_n163$true |
|---|
| 959 | idle |
|---|
| 960 | # if/else (procState == 3) |
|---|
| 961 | .mv procState$_n160$raw_n166 4 idle request lock release |
|---|
| 962 | .names procState$_n160_n163$true procState _n160 procState$_n160$raw_n166 |
|---|
| 963 | - - 0 =procState |
|---|
| 964 | - - 1 =procState$_n160_n163$true |
|---|
| 965 | # if/else (procState == 2 && (randChoice > 3)) |
|---|
| 966 | .mv procState$_n15d$raw_n168 4 idle request lock release |
|---|
| 967 | .names procState$_n15d_n15f$true procState$_n160$raw_n166 _n15d procState$_n15d$raw_n168 |
|---|
| 968 | - - 0 =procState$_n160$raw_n166 |
|---|
| 969 | - - 1 =procState$_n15d_n15f$true |
|---|
| 970 | # if/else (procState == 1 && ack == 0) |
|---|
| 971 | .mv procState$_n14e$raw_n16c 4 idle request lock release |
|---|
| 972 | .names procState$_n14e_n150$true procState$_n15d$raw_n168 _n14e procState$_n14e$raw_n16c |
|---|
| 973 | - - 0 =procState$_n15d$raw_n168 |
|---|
| 974 | - - 1 =procState$_n14e_n150$true |
|---|
| 975 | # if/else (procState == 0 && (randChoice == 7)) |
|---|
| 976 | .mv procState$_n147$raw_n170 4 idle request lock release |
|---|
| 977 | .names procState$_n147_n149$true procState$_n14e$raw_n16c _n147 procState$_n147$raw_n170 |
|---|
| 978 | - - 0 =procState$_n14e$raw_n16c |
|---|
| 979 | - - 1 =procState$_n147_n149$true |
|---|
| 980 | # conflict arbitrators |
|---|
| 981 | .names req$raw_n13d req |
|---|
| 982 | - =req$raw_n13d |
|---|
| 983 | .names _n148 _n14f _n15e _n162 _n173 |
|---|
| 984 | .def 0 |
|---|
| 985 | 1 - - - 1 |
|---|
| 986 | 0 1 - - 1 |
|---|
| 987 | 0 0 1 - 1 |
|---|
| 988 | 0 0 0 1 1 |
|---|
| 989 | .mv _n174 4 idle request lock release |
|---|
| 990 | .names _n173 procState$_n147$raw_n170 procState _n174 |
|---|
| 991 | 1 - - =procState$_n147$raw_n170 |
|---|
| 992 | 0 - - =procState |
|---|
| 993 | # non-blocking assignments |
|---|
| 994 | # latches |
|---|
| 995 | .r procState$raw_n13e procState |
|---|
| 996 | - =procState$raw_n13e |
|---|
| 997 | .latch _n174 procState |
|---|
| 998 | # quasi-continuous assignment |
|---|
| 999 | .end |
|---|
| 1000 | |
|---|
| 1001 | |
|---|