Covered statements:
Assertion statement on lines 191 to 193:
191: assert not (sFifoInValid = '1' and sFifoInReady = '0')
192: report "byte_stuffer: FIFO write dropped - AlmFull cushion undersized vs stall latency"
193: severity failure;
Count: 49619
Threshold: 1
Signal assignment statement on line 204:
204: oWord <= sOutWordReg;
Count: 28882
Threshold: 1
Signal assignment statement on line 205:
205: oWordValid <= sOutValidReg;
Count: 48754
Threshold: 1
Signal assignment statement on line 206:
206: oValidBytes <= sOutBytesValidReg;
Count: 2368
Threshold: 1
Signal assignment statement on line 207:
207: oFlushDone <= sFlushDone;
Count: 776
Threshold: 1
Signal assignment statement on line 208:
208: oAlmostFull <= sFifoAlmFull;
Count: 152
Threshold: 1
If statement on lines 220 to 232:
220: if rising_edge(iClk) then
221: if (iRst = '1') then
...
231: end if;
232: end if;
Count: 232097
Threshold: 1
If statement on lines 221 to 231:
221: if (iRst = '1') then
222: sWord <= (others => '0');
...
230: sFlush <= iFlush;
231: end if;
Count: 116044
Threshold: 1
Signal assignment statement on line 222:
222: sWord <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 223:
223: sWordValidLen <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 224:
224: sWordValid <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 225:
225: sFlush <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 227:
227: sWord <= iWord;
Count: 108407
Threshold: 1
Signal assignment statement on line 228:
228: sWordValidLen <= iWordValidLen;
Count: 108407
Threshold: 1
Signal assignment statement on line 229:
229: sWordValid <= iWordValid;
Count: 108407
Threshold: 1
Signal assignment statement on line 230:
230: sFlush <= iFlush;
Count: 108407
Threshold: 1
If statement on lines 262 to 398:
262: if rising_edge(iClk) then
263: if (iRst = '1') then
...
397: end if;
398: end if;
Count: 232097
Threshold: 1
If statement on lines 263 to 397:
263: if (iRst = '1') then
264: sAccumBuffer <= (others => '0');
...
396: severity failure;
397: end if;
Count: 116044
Threshold: 1
Signal assignment statement on line 264:
264: sAccumBuffer <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 265:
265: sAccumCountBits <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 266:
266: sAccumCountBitsFlush <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 267:
267: sFlushValidBits <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 268:
268: sFlushPending <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 269:
269: sFifoInValid <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 270:
270: sFifoInData <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 271:
271: sBvQueueInValid <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 272:
272: sBvQueueInData <= (others => '0');
Count: 314
Threshold: 1
Variable assignment statement on line 274:
274: vAccumBuffer := sAccumBuffer;
Count: 115730
Threshold: 1
Variable assignment statement on line 275:
275: vAccumCountBits := to_integer(sAccumCountBits);
Count: 115730
Threshold: 1
Variable assignment statement on line 276:
276: vAccumCountBitsFlush := to_integer(sAccumCountBitsFlush);
Count: 115730
Threshold: 1
Variable assignment statement on line 277:
277: vFlushValidBits := to_integer(sFlushValidBits);
Count: 115730
Threshold: 1
Variable assignment statement on line 278:
278: vValidLenInt := to_integer(sWordValidLen);
Count: 115730
Threshold: 1
Variable assignment statement on line 279:
279: vFlushPending := sFlushPending;
Count: 115730
Threshold: 1
Signal assignment statement on line 281:
281: sFifoInValid <= '0';
Count: 115730
Threshold: 1
Signal assignment statement on line 282:
282: sBvQueueInValid <= '0';
Count: 115730
Threshold: 1
If statement on lines 289 to 306:
289: if (sWordValid = '1' and iStall = '0') then
290: vWide := (others => '0');
...
305: vAccumCountBits := vAccumCountBits + vValidLenInt;
306: end if;
Count: 115730
Threshold: 1
Variable assignment statement on line 290:
290: vWide := (others => '0');
Count: 88845
Threshold: 1
Variable assignment statement on line 291:
291: vWide(ACCUM_BITS - 1 downto ACCUM_BITS - IN_WIDTH) := sWord;
Count: 88845
Threshold: 1
Variable assignment statement on line 292:
292: vMaskTop := (others => '0');
Count: 88845
Threshold: 1
Loop statement on lines 294 to 300:
294: for i in 0 to IN_WIDTH - 1 loop
295:
...
299:
300: end loop;
Count: 88845
Threshold: 1
If statement on lines 296 to 298:
296: if (i < vValidLenInt) then
297: vMaskTop(ACCUM_BITS - 1 - i) := '1';
298: end if;
Count: 2902816
Threshold: 1
Variable assignment statement on line 297:
297: vMaskTop(ACCUM_BITS - 1 - i) := '1';
Count: 893784
Threshold: 1
Variable assignment statement on line 302:
302: vShifted := std_logic_vector(shift_right(unsigned(vWide), vAccumCountBits));
Count: 88845
Threshold: 1
Variable assignment statement on line 303:
303: vMask := std_logic_vector(shift_right(unsigned(vMaskTop), vAccumCountBits));
Count: 88845
Threshold: 1
Variable assignment statement on line 304:
304: vAccumBuffer := (vAccumBuffer and not vMask) or (vShifted and vMask);
Count: 88845
Threshold: 1
Variable assignment statement on line 305:
305: vAccumCountBits := vAccumCountBits + vValidLenInt;
Count: 88845
Threshold: 1
If statement on lines 311 to 351:
311: if (sFlush = '1' and iStall = '0') then
312: assert vFlushPending = '0'
...
350: vFlushPending := '1';
351: end if;
Count: 115730
Threshold: 1
Assertion statement on lines 312 to 314:
312: assert vFlushPending = '0'
313: report "byte_stuffer: iFlush asserted while a flush is already pending"
314: severity failure;
Count: 375
Threshold: 1
Variable assignment statement on line 320:
320: vFlushRawBits := vAccumCountBits;
Count: 375
Threshold: 1
If statement on lines 323 to 335:
323: if ((vAccumCountBits mod 8) /= 0) then
324: vPadBits := 8 - (vAccumCountBits mod 8);
...
334:
335: end if;
Count: 375
Threshold: 1
Variable assignment statement on line 324:
324: vPadBits := 8 - (vAccumCountBits mod 8);
Count: 326
Threshold: 1
Loop statement on lines 326 to 333:
326: for j in 0 to 7 loop
327:
...
332:
333: end loop;
Count: 326
Threshold: 1
If statement on lines 328 to 331:
328: if (j < vPadBits) then
329: vAccumBuffer(ACCUM_BITS - 1 - vAccumCountBits) := '0';
330: vAccumCountBits := vAccumCountBits + 1;
331: end if;
Count: 2608
Threshold: 1
Variable assignment statement on line 329:
329: vAccumBuffer(ACCUM_BITS - 1 - vAccumCountBits) := '0';
Count: 1436
Threshold: 1
Variable assignment statement on line 330:
330: vAccumCountBits := vAccumCountBits + 1;
Count: 1436
Threshold: 1
If statement on lines 338 to 341:
338: if ((vAccumCountBits mod FIFO_BITS) /= 0) then
339: vPadBits := FIFO_BITS - (vAccumCountBits mod FIFO_BITS);
340: vAccumCountBits := vAccumCountBits + vPadBits;
341: end if;
Count: 375
Threshold: 1
Variable assignment statement on line 339:
339: vPadBits := FIFO_BITS - (vAccumCountBits mod FIFO_BITS);
Count: 332
Threshold: 1
Variable assignment statement on line 340:
340: vAccumCountBits := vAccumCountBits + vPadBits;
Count: 332
Threshold: 1
Variable assignment statement on line 343:
343: vAccumCountBitsFlush := vAccumCountBits;
Count: 375
Threshold: 1
Variable assignment statement on line 348:
348: vFlushValidBits := vFlushRawBits + FIFO_BITS - vAccumCountBitsFlush;
Count: 375
Threshold: 1
Variable assignment statement on line 350:
350: vFlushPending := '1';
Count: 375
Threshold: 1
Assertion statement on lines 358 to 360:
358: assert not (sFifoFull = '1' and (vFlushPending = '1' or vAccumCountBits >= FIFO_BITS))
359: report "byte_stuffer: FIFO full but accumulator didn't stall"
360: severity failure;
Count: 115730
Threshold: 1
If statement on lines 362 to 386:
362: if (sFifoFull = '0') then
363: if (vFlushPending = '1') then
...
385: end if;
386: end if;
Count: 115730
Threshold: 1
If statement on lines 363 to 385:
363: if (vFlushPending = '1') then
364: if (vAccumCountBitsFlush = FIFO_BITS) then
...
384: vAccumCountBits := vAccumCountBits - FIFO_BITS;
385: end if;
Count: 115730
Threshold: 1
If statement on lines 364 to 371:
364: if (vAccumCountBitsFlush = FIFO_BITS) then
365: vLastFlag := '1';
...
370: vLastFlag := '0';
371: end if;
Count: 465
Threshold: 1
Variable assignment statement on line 365:
365: vLastFlag := '1';
Count: 375
Threshold: 1
Signal assignment statement on line 366:
366: sBvQueueInValid <= '1';
Count: 375
Threshold: 1
Signal assignment statement on line 367:
367: sBvQueueInData <= std_logic_vector(to_unsigned(vFlushValidBits, LAST_BITS_WIDTH));
Count: 375
Threshold: 1
Variable assignment statement on line 368:
368: vFlushPending := '0';
Count: 375
Threshold: 1
Variable assignment statement on line 370:
370: vLastFlag := '0';
Count: 90
Threshold: 1
Signal assignment statement on line 373:
373: sFifoInData <= vAccumBuffer(ACCUM_BITS - 1 downto ACCUM_BITS - FIFO_BITS) & vLastFlag;
Count: 465
Threshold: 1
Signal assignment statement on line 374:
374: sFifoInValid <= '1';
Count: 465
Threshold: 1
Variable assignment statement on line 376:
376: vAccumBuffer := std_logic_vector(shift_left(unsigned(vAccumBuffer), FIFO_BITS));
Count: 465
Threshold: 1
Variable assignment statement on line 377:
377: vAccumCountBits := vAccumCountBits - FIFO_BITS;
Count: 465
Threshold: 1
Variable assignment statement on line 378:
378: vAccumCountBitsFlush := vAccumCountBitsFlush - FIFO_BITS;
Count: 465
Threshold: 1
Signal assignment statement on line 380:
380: sFifoInData <= vAccumBuffer(ACCUM_BITS - 1 downto ACCUM_BITS - FIFO_BITS) & '0';
Count: 26714
Threshold: 1
Signal assignment statement on line 381:
381: sFifoInValid <= '1';
Count: 26714
Threshold: 1
Variable assignment statement on line 383:
383: vAccumBuffer := std_logic_vector(shift_left(unsigned(vAccumBuffer), FIFO_BITS));
Count: 26714
Threshold: 1
Variable assignment statement on line 384:
384: vAccumCountBits := vAccumCountBits - FIFO_BITS;
Count: 26714
Threshold: 1
Signal assignment statement on line 388:
388: sAccumBuffer <= vAccumBuffer;
Count: 115730
Threshold: 1
Signal assignment statement on line 389:
389: sAccumCountBits <= to_unsigned(vAccumCountBits, sAccumCountBits'length);
Count: 115730
Threshold: 1
Signal assignment statement on line 390:
390: sAccumCountBitsFlush <= to_unsigned(vAccumCountBitsFlush, sAccumCountBitsFlush'length);
Count: 115730
Threshold: 1
Signal assignment statement on line 391:
391: sFlushValidBits <= to_unsigned(vFlushValidBits, sFlushValidBits'length);
Count: 115730
Threshold: 1
Signal assignment statement on line 392:
392: sFlushPending <= vFlushPending;
Count: 115730
Threshold: 1
Assertion statement on lines 394 to 396:
394: assert vAccumCountBits <= ACCUM_BITS
395: report "byte_stuffer: stage 1 accumulator overflow"
396: severity failure;
Count: 115730
Threshold: 1
Signal assignment statement on line 430:
430: sBvQueueOutReady <= sSkidTaken and sSkidLast;
Count: 49804
Threshold: 1
If statement on lines 462 to 466:
462: sSkidTaken <= '1' when sSkidValid = '1'
463: and sStuffBufferBits <= to_unsigned(HOLD_BITS - FIFO_BITS, sStuffBufferBits'length)
464: and iReady = '1'
465: and sLastPending = '0' else
466: '0';
Count: 51890
Threshold: 1
Signal assignment statement on line 462:
462: sSkidTaken <= '1' when sSkidValid = '1'
Count: 25022
Threshold: 1
Signal assignment statement on line 466:
466: '0';
Count: 26868
Threshold: 1
If statement on lines 468 to 469:
468: sFifoOutReady <= '1' when sSkidValid = '0' or sSkidTaken = '1' else
469: '0';
Count: 96495
Threshold: 1
Signal assignment statement on line 468:
468: sFifoOutReady <= '1' when sSkidValid = '0' or sSkidTaken = '1' else
Count: 71709
Threshold: 1
Signal assignment statement on line 469:
469: '0';
Count: 24786
Threshold: 1
Signal assignment statement on line 471:
471: sSkidData <= sSkidWord(FIFO_WIDTH - 1 downto DATA_LSB);
Count: 27213
Threshold: 1
Signal assignment statement on line 472:
472: sSkidLast <= sSkidWord(LAST_POS);
Count: 711
Threshold: 1
If statement on lines 477 to 490:
477: if rising_edge(iClk) then
478: if (iRst = '1') then
...
489: end if;
490: end if;
Count: 232097
Threshold: 1
If statement on lines 478 to 489:
478: if (iRst = '1') then
479: sSkidValid <= '0';
...
488: end if;
489: end if;
Count: 116044
Threshold: 1
Signal assignment statement on line 479:
479: sSkidValid <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 480:
480: sSkidWord <= (others => '0');
Count: 314
Threshold: 1
If statement on lines 482 to 484:
482: if (sSkidTaken = '1') then
483: sSkidValid <= '0';
484: end if;
Count: 115730
Threshold: 1
Signal assignment statement on line 483:
483: sSkidValid <= '0';
Count: 27138
Threshold: 1
If statement on lines 485 to 488:
485: if (sFifoOutValid = '1' and sFifoOutReady = '1') then
486: sSkidWord <= sFifoOutData;
487: sSkidValid <= '1';
488: end if;
Count: 115730
Threshold: 1
Signal assignment statement on line 486:
486: sSkidWord <= sFifoOutData;
Count: 27149
Threshold: 1
Signal assignment statement on line 487:
487: sSkidValid <= '1';
Count: 27149
Threshold: 1
If statement on lines 529 to 784:
529: if rising_edge(iClk) then
530: if (iRst = '1') then
...
783: vEmitLastFF := vStuffed(i);
784: end if;
Count: 232097
Threshold: 1
If statement on lines 530 to 785:
530: if (iRst = '1') then
531: sStuffBuffer <= (others => '0');
...
784: end if;
785:
Count: 116044
Threshold: 1
Signal assignment statement on line 531:
531: sStuffBuffer <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 532:
532: sStuffBufferBits <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 533:
533: sStuffBufferLast <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 534:
534: sPrevFF <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 535:
535: sOutWordReg <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 536:
536: sOutValidReg <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 537:
537: sOutBytesValidReg <= (others => '0');
Count: 314
Threshold: 1
Signal assignment statement on line 538:
538: sFlushDone <= '0';
Count: 314
Threshold: 1
Signal assignment statement on line 539:
539: sLastPending <= '0';
Count: 314
Threshold: 1
If statement on lines 545 to 577:
545: if (iReady = '1') then
546: vStuffBufferBits := to_integer(sStuffBufferBits);
...
576: sFlushDone <= '0';
577: end if;
Count: 846
Threshold: 1
Variable assignment statement on line 546:
546: vStuffBufferBits := to_integer(sStuffBufferBits);
Count: 375
Threshold: 1
Variable assignment statement on line 547:
547: vPadByte := (others => '0');
Count: 375
Threshold: 1
If statement on lines 549 to 556:
549: if (sPrevFF = '1') then
550: -- Stuff '0' at MSB, up to 7 real bits below it, zero pad.
...
555: vPadByte(7 downto 8 - vStuffBufferBits) := sStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - vStuffBufferBits);
556: end if;
Count: 375
Threshold: 1
If statement on lines 551 to 553:
551: if (vStuffBufferBits > 0) then
552: vPadByte(6 downto 7 - vStuffBufferBits) := sStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - vStuffBufferBits);
553: end if;
Count: 31
Threshold: 1
Variable assignment statement on line 552:
552: vPadByte(6 downto 7 - vStuffBufferBits) := sStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - vStuffBufferBits);
Count: 26
Threshold: 1
Variable assignment statement on line 555:
555: vPadByte(7 downto 8 - vStuffBufferBits) := sStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - vStuffBufferBits);
Count: 314
Threshold: 1
If statement on lines 558 to 565:
558: if (vStuffBufferBits = 0 and sPrevFF = '0') then
559: sOutWordReg <= (others => '0');
...
564: sOutBytesValidReg <= to_unsigned(1, sOutBytesValidReg'length);
565: end if;
Count: 375
Threshold: 1
Signal assignment statement on line 559:
559: sOutWordReg <= (others => '0');
Count: 30
Threshold: 1
Signal assignment statement on line 560:
560: sOutBytesValidReg <= (others => '0');
Count: 30
Threshold: 1
Signal assignment statement on line 562:
562: sOutWordReg(OUT_WIDTH - 1 downto OUT_WIDTH - 8) <= vPadByte;
Count: 345
Threshold: 1
Signal assignment statement on line 563:
563: sOutWordReg(OUT_WIDTH - 9 downto 0) <= (others => '0');
Count: 345
Threshold: 1
Signal assignment statement on line 564:
564: sOutBytesValidReg <= to_unsigned(1, sOutBytesValidReg'length);
Count: 345
Threshold: 1
Signal assignment statement on line 567:
567: sOutValidReg <= '1';
Count: 375
Threshold: 1
Signal assignment statement on line 568:
568: sFlushDone <= '1';
Count: 375
Threshold: 1
Signal assignment statement on line 569:
569: sLastPending <= '0';
Count: 375
Threshold: 1
Signal assignment statement on line 570:
570: sStuffBufferLast <= '0';
Count: 375
Threshold: 1
Signal assignment statement on line 571:
571: sPrevFF <= '0';
Count: 375
Threshold: 1
Signal assignment statement on line 572:
572: sStuffBuffer <= (others => '0');
Count: 375
Threshold: 1
Signal assignment statement on line 573:
573: sStuffBufferBits <= (others => '0');
Count: 375
Threshold: 1
Signal assignment statement on line 575:
575: sOutValidReg <= '0';
Count: 471
Threshold: 1
Signal assignment statement on line 576:
576: sFlushDone <= '0';
Count: 471
Threshold: 1
Variable assignment statement on line 579:
579: vStuffBuffer := sStuffBuffer;
Count: 114884
Threshold: 1
Variable assignment statement on line 580:
580: vStuffBufferBits := to_integer(sStuffBufferBits);
Count: 114884
Threshold: 1
Variable assignment statement on line 581:
581: vStuffBufferLast := sStuffBufferLast;
Count: 114884
Threshold: 1
Variable assignment statement on line 582:
582: vPrevFF := sPrevFF;
Count: 114884
Threshold: 1
Variable assignment statement on line 583:
583: vEmitBytes := 0;
Count: 114884
Threshold: 1
Variable assignment statement on line 584:
584: vEmitData := (others => '0');
Count: 114884
Threshold: 1
Variable assignment statement on line 585:
585: vConsumed := 0;
Count: 114884
Threshold: 1
Signal assignment statement on line 586:
586: sFlushDone <= '0';
Count: 114884
Threshold: 1
If statement on lines 592 to 616:
592: if (sSkidTaken = '1') then
593: if (sSkidLast = '0') then
...
615: end if;
616: end if;
Count: 114884
Threshold: 1
If statement on lines 593 to 615:
593: if (sSkidLast = '0') then
594: vStuffBuffer(HOLD_BITS - 1 - vStuffBufferBits downto HOLD_BITS - vStuffBufferBits - FIFO_BITS) := sSkidData;
...
614: vStuffBufferLast := '1';
615: end if;
Count: 27138
Threshold: 1
Variable assignment statement on line 594:
594: vStuffBuffer(HOLD_BITS - 1 - vStuffBufferBits downto HOLD_BITS - vStuffBufferBits - FIFO_BITS) := sSkidData;
Count: 26763
Threshold: 1
Variable assignment statement on line 595:
595: vStuffBufferBits := vStuffBufferBits + FIFO_BITS;
Count: 26763
Threshold: 1
Variable assignment statement on line 600:
600: vValidBitsInt := to_integer(unsigned(sBvQueueOutData));
Count: 375
Threshold: 1
Variable assignment statement on line 601:
601: vValidBytesInt := (vValidBitsInt + 7) / 8; -- bytes physically present
Count: 375
Threshold: 1
Loop statement on lines 603 to 611:
603: for k in 0 to FIFO_BYTES - 1 loop
604:
...
610:
611: end loop;
Count: 375
Threshold: 1
If statement on lines 606 to 609:
606: if (k < vValidBytesInt) then
607: vStuffBuffer(HOLD_BITS - 1 - vStuffBufferBits - k * 8 downto HOLD_BITS - vStuffBufferBits - (k + 1) * 8)
608: := sSkidData(FIFO_BITS - 1 - k * 8 downto FIFO_BITS - (k + 1) * 8);
609: end if;
Count: 1930
Threshold: 1
Variable assignment statement on lines 607 to 608:
607: vStuffBuffer(HOLD_BITS - 1 - vStuffBufferBits - k * 8 downto HOLD_BITS - vStuffBufferBits - (k + 1) * 8)
608: := sSkidData(FIFO_BITS - 1 - k * 8 downto FIFO_BITS - (k + 1) * 8);
Count: 1054
Threshold: 1
Variable assignment statement on line 613:
613: vStuffBufferBits := vStuffBufferBits + vValidBitsInt;
Count: 375
Threshold: 1
Variable assignment statement on line 614:
614: vStuffBufferLast := '1';
Count: 375
Threshold: 1
Variable assignment statement on line 622:
622: ff0 := bool2bit(vStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - 8) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 623:
623: ff1a := bool2bit(vStuffBuffer(HOLD_BITS - 8 downto HOLD_BITS - 15) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 624:
624: ff1b := bool2bit(vStuffBuffer(HOLD_BITS - 9 downto HOLD_BITS - 16) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 625:
625: ff2a := bool2bit(vStuffBuffer(HOLD_BITS - 16 downto HOLD_BITS - 23) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 626:
626: ff2b := bool2bit(vStuffBuffer(HOLD_BITS - 17 downto HOLD_BITS - 24) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 627:
627: ff3a := bool2bit(vStuffBuffer(HOLD_BITS - 23 downto HOLD_BITS - 30) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 628:
628: ff3b := bool2bit(vStuffBuffer(HOLD_BITS - 24 downto HOLD_BITS - 31) = x"FF");
Count: 114884
Threshold: 1
Variable assignment statement on line 629:
629: ff3c := bool2bit(vStuffBuffer(HOLD_BITS - 25 downto HOLD_BITS - 32) = x"FF");
Count: 114884
Threshold: 1
Sequential statement on lines 634 to 765:
634: case vPrevFF is
635:
...
764:
765: end case;
Count: 114884
Threshold: 1
Variable assignment statement on line 639:
639: vByte(0) := '0' & vStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - 7);
Count: 1994
Threshold: 1
Variable assignment statement on line 640:
640: vStuffed(0) := '0';
Count: 1994
Threshold: 1
Variable assignment statement on line 641:
641: vCumu(0) := 7;
Count: 1994
Threshold: 1
Variable assignment statement on line 643:
643: vByte(1) := vStuffBuffer(HOLD_BITS - 8 downto HOLD_BITS - 15);
Count: 1994
Threshold: 1
Variable assignment statement on line 644:
644: vStuffed(1) := ff1a;
Count: 1994
Threshold: 1
Variable assignment statement on line 645:
645: vCumu(1) := 15;
Count: 1994
Threshold: 1
Sequential statement on lines 647 to 682:
647: case vStuffed(1) is
648:
...
681:
682: end case;
Count: 1994
Threshold: 1
Variable assignment statement on line 652:
652: vByte(2) := '0' & vStuffBuffer(HOLD_BITS - 16 downto HOLD_BITS - 22);
Count: 592
Threshold: 1
Variable assignment statement on line 653:
653: vStuffed(2) := '0';
Count: 592
Threshold: 1
Variable assignment statement on line 654:
654: vCumu(2) := 22;
Count: 592
Threshold: 1
Variable assignment statement on line 655:
655: vByte(3) := vStuffBuffer(HOLD_BITS - 23 downto HOLD_BITS - 30);
Count: 592
Threshold: 1
Variable assignment statement on line 656:
656: vStuffed(3) := ff3a;
Count: 592
Threshold: 1
Variable assignment statement on line 657:
657: vCumu(3) := 30;
Count: 592
Threshold: 1
Variable assignment statement on line 662:
662: vByte(2) := vStuffBuffer(HOLD_BITS - 16 downto HOLD_BITS - 23);
Count: 1402
Threshold: 1
Variable assignment statement on line 663:
663: vStuffed(2) := ff2a;
Count: 1402
Threshold: 1
Variable assignment statement on line 664:
664: vCumu(2) := 23;
Count: 1402
Threshold: 1
Sequential statement on lines 666 to 680:
666: case vStuffed(2) is
667:
...
679:
680: end case;
Count: 1402
Threshold: 1
Variable assignment statement on line 670:
670: vByte(3) := '0' & vStuffBuffer(HOLD_BITS - 24 downto HOLD_BITS - 30);
Count: 19
Threshold: 1
Variable assignment statement on line 671:
671: vStuffed(3) := '0';
Count: 19
Threshold: 1
Variable assignment statement on line 672:
672: vCumu(3) := 30;
Count: 19
Threshold: 1
Variable assignment statement on line 676:
676: vByte(3) := vStuffBuffer(HOLD_BITS - 24 downto HOLD_BITS - 31);
Count: 1383
Threshold: 1
Variable assignment statement on line 677:
677: vStuffed(3) := ff3b;
Count: 1383
Threshold: 1
Variable assignment statement on line 678:
678: vCumu(3) := 31;
Count: 1383
Threshold: 1
Variable assignment statement on line 687:
687: vByte(0) := vStuffBuffer(HOLD_BITS - 1 downto HOLD_BITS - 8);
Count: 112890
Threshold: 1
Variable assignment statement on line 688:
688: vStuffed(0) := ff0;
Count: 112890
Threshold: 1
Variable assignment statement on line 689:
689: vCumu(0) := 8;
Count: 112890
Threshold: 1
Sequential statement on lines 691 to 763:
691: case ff0 is
692:
...
762:
763: end case;
Count: 112890
Threshold: 1
Variable assignment statement on line 696:
696: vByte(1) := '0' & vStuffBuffer(HOLD_BITS - 9 downto HOLD_BITS - 15);
Count: 1223
Threshold: 1
Variable assignment statement on line 697:
697: vStuffed(1) := '0';
Count: 1223
Threshold: 1
Variable assignment statement on line 698:
698: vCumu(1) := 15;
Count: 1223
Threshold: 1
Variable assignment statement on line 699:
699: vByte(2) := vStuffBuffer(HOLD_BITS - 16 downto HOLD_BITS - 23);
Count: 1223
Threshold: 1
Variable assignment statement on line 700:
700: vStuffed(2) := ff2a;
Count: 1223
Threshold: 1
Variable assignment statement on line 701:
701: vCumu(2) := 23;
Count: 1223
Threshold: 1
Sequential statement on lines 703 to 717:
703: case vStuffed(2) is
704:
...
716:
717: end case;
Count: 1223
Threshold: 1
Variable assignment statement on line 707:
707: vByte(3) := '0' & vStuffBuffer(HOLD_BITS - 24 downto HOLD_BITS - 30);
Count: 498
Threshold: 1
Variable assignment statement on line 708:
708: vStuffed(3) := '0';
Count: 498
Threshold: 1
Variable assignment statement on line 709:
709: vCumu(3) := 30;
Count: 498
Threshold: 1
Variable assignment statement on line 713:
713: vByte(3) := vStuffBuffer(HOLD_BITS - 24 downto HOLD_BITS - 31);
Count: 725
Threshold: 1
Variable assignment statement on line 714:
714: vStuffed(3) := ff3b;
Count: 725
Threshold: 1
Variable assignment statement on line 715:
715: vCumu(3) := 31;
Count: 725
Threshold: 1
Variable assignment statement on line 722:
722: vByte(1) := vStuffBuffer(HOLD_BITS - 9 downto HOLD_BITS - 16);
Count: 111667
Threshold: 1
Variable assignment statement on line 723:
723: vStuffed(1) := ff1b;
Count: 111667
Threshold: 1
Variable assignment statement on line 724:
724: vCumu(1) := 16;
Count: 111667
Threshold: 1
Sequential statement on lines 726 to 761:
726: case vStuffed(1) is
727:
...
760:
761: end case;
Count: 111667
Threshold: 1
Variable assignment statement on line 731:
731: vByte(2) := '0' & vStuffBuffer(HOLD_BITS - 17 downto HOLD_BITS - 23);
Count: 612
Threshold: 1
Variable assignment statement on line 732:
732: vStuffed(2) := '0';
Count: 612
Threshold: 1
Variable assignment statement on line 733:
733: vCumu(2) := 23;
Count: 612
Threshold: 1
Variable assignment statement on line 734:
734: vByte(3) := vStuffBuffer(HOLD_BITS - 24 downto HOLD_BITS - 31);
Count: 612
Threshold: 1
Variable assignment statement on line 735:
735: vStuffed(3) := ff3b;
Count: 612
Threshold: 1
Variable assignment statement on line 736:
736: vCumu(3) := 31;
Count: 612
Threshold: 1
Variable assignment statement on line 741:
741: vByte(2) := vStuffBuffer(HOLD_BITS - 17 downto HOLD_BITS - 24);
Count: 111055
Threshold: 1
Variable assignment statement on line 742:
742: vStuffed(2) := ff2b;
Count: 111055
Threshold: 1
Variable assignment statement on line 743:
743: vCumu(2) := 24;
Count: 111055
Threshold: 1
Sequential statement on lines 745 to 759:
745: case vStuffed(2) is
746:
...
758:
759: end case;
Count: 111055
Threshold: 1
Variable assignment statement on line 749:
749: vByte(3) := '0' & vStuffBuffer(HOLD_BITS - 25 downto HOLD_BITS - 31);
Count: 369
Threshold: 1
Variable assignment statement on line 750:
750: vStuffed(3) := '0';
Count: 369
Threshold: 1
Variable assignment statement on line 751:
751: vCumu(3) := 31;
Count: 369
Threshold: 1
Variable assignment statement on line 755:
755: vByte(3) := vStuffBuffer(HOLD_BITS - 25 downto HOLD_BITS - 32);
Count: 110686
Threshold: 1
Variable assignment statement on line 756:
756: vStuffed(3) := ff3c;
Count: 110686
Threshold: 1
Variable assignment statement on line 757:
757: vCumu(3) := 32;
Count: 110686
Threshold: 1
Variable assignment statement on line 772:
772: vEmitBytes := 0;
Count: 114884
Threshold: 1
Variable assignment statement on line 773:
773: vConsumed := 0;
Count: 114884
Threshold: 1
Variable assignment statement on line 774:
774: vEmitLastFF := vPrevFF;
Count: 114884
Threshold: 1
If statement on lines 776 to 788:
776: if (iReady = '1') then
777:
...
787:
788: end if;
Count: 114884
Threshold: 1
Loop statement on lines 778 to 786:
778: for i in 0 to OUT_BYTES_PER_CYCLE - 1 loop
779:
...
785:
786: end loop;
Count: 101493
Threshold: 1
If statement on lines 780 to 784:
780: if (vStuffBufferBits >= vCumu(i)) then
781: vEmitBytes := i + 1;
782: vConsumed := vCumu(i);
783: vEmitLastFF := vStuffed(i);
784: end if;
Count: 405972
Threshold: 1
Variable assignment statement on line 781:
781: vEmitBytes := i + 1;
Count: 111641
Threshold: 1
Variable assignment statement on line 782:
782: vConsumed := vCumu(i);
Count: 111641
Threshold: 1
Variable assignment statement on line 783:
783: vEmitLastFF := vStuffed(i);
Count: 111641
Threshold: 1
Loop statement on lines 793 to 797:
793: for i in 0 to OUT_BYTES_PER_CYCLE - 1 loop
794:
795: vEmitData(OUT_WIDTH - 1 - (i * 8) downto OUT_WIDTH - ((i + 1) * 8)) := vByte(i);
796:
797: end loop;
Count: 114884
Threshold: 1
Variable assignment statement on line 795:
795: vEmitData(OUT_WIDTH - 1 - (i * 8) downto OUT_WIDTH - ((i + 1) * 8)) := vByte(i);
Count: 459536
Threshold: 1
If statement on lines 799 to 803:
799: if (vEmitBytes > 0) then
800: vStuffBuffer := std_logic_vector(shift_left(unsigned(vStuffBuffer), vConsumed));
801: vStuffBufferBits := vStuffBufferBits - vConsumed;
802: vPrevFF := vEmitLastFF;
803: end if;
Count: 114884
Threshold: 1
Variable assignment statement on line 800:
800: vStuffBuffer := std_logic_vector(shift_left(unsigned(vStuffBuffer), vConsumed));
Count: 28501
Threshold: 1
Variable assignment statement on line 801:
801: vStuffBufferBits := vStuffBufferBits - vConsumed;
Count: 28501
Threshold: 1
Variable assignment statement on line 802:
802: vPrevFF := vEmitLastFF;
Count: 28501
Threshold: 1
If statement on lines 808 to 814:
808: if (vEmitBytes > 0) then
809: sOutWordReg <= vEmitData;
...
813: sOutValidReg <= '0';
814: end if;
Count: 114884
Threshold: 1
Signal assignment statement on line 809:
809: sOutWordReg <= vEmitData;
Count: 28501
Threshold: 1
Signal assignment statement on line 810:
810: sOutBytesValidReg <= to_unsigned(vEmitBytes, sOutBytesValidReg'length);
Count: 28501
Threshold: 1
Signal assignment statement on line 811:
811: sOutValidReg <= '1';
Count: 28501
Threshold: 1
Signal assignment statement on line 813:
813: sOutValidReg <= '0';
Count: 86383
Threshold: 1
If statement on lines 819 to 823:
819: if (iReady = '1'
820: and vStuffBufferLast = '1'
821: and vStuffBufferBits < 8) then
822: sLastPending <= '1';
823: end if;
Count: 114884
Threshold: 1
Signal assignment statement on line 822:
822: sLastPending <= '1';
Count: 375
Threshold: 1
Signal assignment statement on line 825:
825: sStuffBuffer <= vStuffBuffer;
Count: 114884
Threshold: 1
Signal assignment statement on line 826:
826: sStuffBufferBits <= to_unsigned(vStuffBufferBits, sStuffBufferBits'length);
Count: 114884
Threshold: 1
Signal assignment statement on line 827:
827: sStuffBufferLast <= vStuffBufferLast;
Count: 114884
Threshold: 1
Signal assignment statement on line 828:
828: sPrevFF <= vPrevFF;
Count: 114884
Threshold: 1