NVC code coverage report

Back to summary

Coverage report for file:

File:  ../../Sources/jls_framer.vhd

Current File:

File Statement Branch Toggle Expression FSM state Functional Average
jls_framer.vhd 99.3 % (155/156) 98.1 % (54/55) N.A. N.A. N.A. N.A. 99.0 % (209/211)

Details:

Statement Branch Toggle Expression FSM state Functional

Uncovered statements:

Sequential statement on line 326:

326:        return x"00"; 
Count: 0
Threshold: 1

Excluded statements:

Covered statements:

Sequential statement on lines 222 to 328:

222:    case idx is 
223: 
...
327: 
328:    end case; 

Count: 9139
Threshold: 1

Sequential statement on line 226:

226:        return x"FF"; 
Count: 367
Threshold: 1

Sequential statement on line 230:

230:        return x"D8"; 
Count: 367
Threshold: 1

Sequential statement on line 234:

234:        return x"FF"; 
Count: 367
Threshold: 1

Sequential statement on line 238:

238:        return x"F7"; 
Count: 367
Threshold: 1

Sequential statement on line 242:

242:        return x"00"; 
Count: 367
Threshold: 1

Sequential statement on line 246:

246:        return x"0B"; 
Count: 367
Threshold: 1

Sequential statement on line 250:

250:        return std_logic_vector(to_unsigned(BITNESS, 8)); 
Count: 367
Threshold: 1

Sequential statement on line 254:

254:        return std_logic_vector(height(15 downto 8)); 
Count: 367
Threshold: 1

Sequential statement on line 258:

258:        return std_logic_vector(height(7 downto 0)); 
Count: 367
Threshold: 1

Sequential statement on line 262:

262:        return std_logic_vector(width(15 downto 8)); 
Count: 367
Threshold: 1

Sequential statement on line 266:

266:        return std_logic_vector(width(7 downto 0)); 
Count: 367
Threshold: 1

Sequential statement on line 270:

270:        return x"01"; 
Count: 367
Threshold: 1

Sequential statement on line 274:

274:        return x"01"; 
Count: 367
Threshold: 1

Sequential statement on line 278:

278:        return x"11"; 
Count: 367
Threshold: 1

Sequential statement on line 282:

282:        return x"00"; 
Count: 366
Threshold: 1

Sequential statement on line 286:

286:        return x"FF"; 
Count: 366
Threshold: 1

Sequential statement on line 290:

290:        return x"DA"; 
Count: 366
Threshold: 1

Sequential statement on line 294:

294:        return x"00"; 
Count: 366
Threshold: 1

Sequential statement on line 298:

298:        return x"08"; 
Count: 365
Threshold: 1

Sequential statement on line 302:

302:        return x"01"; 
Count: 365
Threshold: 1

Sequential statement on line 306:

306:        return x"01"; 
Count: 365
Threshold: 1

Sequential statement on line 310:

310:        return x"00"; 
Count: 365
Threshold: 1

Sequential statement on line 314:

314:        return std_logic_vector(to_unsigned(NEAR, 8)); 
Count: 365
Threshold: 1

Sequential statement on line 318:

318:        return x"00"; 
Count: 365
Threshold: 1

Sequential statement on line 322:

322:        return x"00"; 
Count: 347
Threshold: 1

Loop statement on lines 342 to 350:

342:    for k in 0 to EOI_FIFO_DEPTH - 2 loop 
343: 
...
349: 
350:    end loop; 

Count: 330
Threshold: 1

If statement on lines 344 to 348:

344:      if (k + 1 < cnt) then 
345:        fifo(k) := fifo(k + 1) - emit; 
346:      else 
347:        fifo(k) := 0; 
348:      end if; 

Count: 330
Threshold: 1

Variable assignment statement on line 345:

345:        fifo(k) := fifo(k + 1) - emit; 
Count: 3
Threshold: 1

Variable assignment statement on line 347:

347:        fifo(k) := 0; 
Count: 327
Threshold: 1

Variable assignment statement on line 352:

352:    fifo(EOI_FIFO_DEPTH - 1) := 0; 
Count: 330
Threshold: 1

Variable assignment statement on line 353:

353:    cnt                      := cnt - 1; 
Count: 330
Threshold: 1

Loop statement on lines 366 to 372:

366:    for k in 0 to EOI_FIFO_DEPTH - 1 loop 
367: 
...
371: 
372:    end loop; 

Count: 11132
Threshold: 1

If statement on lines 368 to 370:

368:      if (k < cnt) then 
369:        fifo(k) := fifo(k) - emit; 
370:      end if; 

Count: 22264
Threshold: 1

Variable assignment statement on line 369:

369:        fifo(k) := fifo(k) - emit; 
Count: 150
Threshold: 1

Signal assignment statement on line 390:

390:  sAxiHandshake <= (iReady and sOutValid) = '1'
Count: 39377
Threshold: 1

Signal assignment statement on line 400:

400:  oWord       <= sOutWord
Count: 12432
Threshold: 1

Signal assignment statement on line 401:

401:  oValid      <= sOutValid
Count: 21513
Threshold: 1

Signal assignment statement on line 402:

402:  oByteEnable <= sValidBytes
Count: 692
Threshold: 1

Signal assignment statement on line 403:

403:  oLast       <= sOutLast
Count: 683
Threshold: 1

If statement on lines 408 to 409:

408:  oReady <= '1' when sFifoByteCount < BUFFER_BYTES_NOMINAL else 
409:            '0'; 

Count: 41516
Threshold: 1

Signal assignment statement on line 408:

408:  oReady <= '1' when sFifoByteCount < BUFFER_BYTES_NOMINAL else 
Count: 41485
Threshold: 1

Signal assignment statement on line 409:

409:            '0'
Count: 31
Threshold: 1

If statement on lines 432 to 648:

432:    if rising_edge(iClk) then 
433:      if (iRst = '1') then 
...
647:      end if; 
648:    end if; 

Count: 228538
Threshold: 1

If statement on lines 433 to 647:

433:      if (iRst = '1') then 
434:        sFsmState      <= idle; 
...
646:        sNextPending   <= vNextPending; 
647:      end if; 

Count: 114269
Threshold: 1

Signal assignment statement on line 434:

434:        sFsmState      <= idle; 
Count: 318
Threshold: 1

Signal assignment statement on line 435:

435:        sBuffer        <= (others => '0'); 
Count: 318
Threshold: 1

Signal assignment statement on line 436:

436:        sFifoByteCount <= 0; 
Count: 318
Threshold: 1

Signal assignment statement on line 437:

437:        sEoiFifo       <= (others => 0); 
Count: 318
Threshold: 1

Signal assignment statement on line 438:

438:        sEoiCount      <= 0; 
Count: 318
Threshold: 1

Signal assignment statement on line 439:

439:        sOutWord       <= (others => '0'); 
Count: 318
Threshold: 1

Signal assignment statement on line 440:

440:        sOutValid      <= '0'; 
Count: 318
Threshold: 1

Signal assignment statement on line 441:

441:        sOutLast       <= '0'; 
Count: 318
Threshold: 1

Signal assignment statement on line 442:

442:        sValidBytes    <= (others => '0'); 
Count: 318
Threshold: 1

Signal assignment statement on line 443:

443:        sHeaderByteIdx <= 0; 
Count: 318
Threshold: 1

Signal assignment statement on line 444:

444:        sNextPending   <= 0; 
Count: 318
Threshold: 1

Variable assignment statement on line 446:

446:        vBuffer        := sBuffer; 
Count: 113951
Threshold: 1

Variable assignment statement on line 447:

447:        vFifoByteCount := sFifoByteCount; 
Count: 113951
Threshold: 1

Variable assignment statement on line 448:

448:        vEoiIdxFifo    := sEoiFifo; 
Count: 113951
Threshold: 1

Variable assignment statement on line 449:

449:        vEoiCount      := sEoiCount; 
Count: 113951
Threshold: 1

Variable assignment statement on line 450:

450:        vWidth         := resize(iImageWidth, 16); 
Count: 113951
Threshold: 1

Variable assignment statement on line 451:

451:        vHeight        := resize(iImageHeight, 16); 
Count: 113951
Threshold: 1

Variable assignment statement on line 452:

452:        vCanEmit       := sAxiHandshake or sOutValid = '0'; 
Count: 113951
Threshold: 1

Variable assignment statement on line 453:

453:        vNextPending   := sNextPending; 
Count: 113951
Threshold: 1

If statement on lines 457 to 462:

457:        if (iStart = '1') then 
458:          assert vNextPending < START_QUEUE_DEPTH 
459:            report "jls_framer: iStart dropped (start queue full)" 
460:            severity failure; 
461:          vNextPending := vNextPending + 1; 
462:        end if; 

Count: 113951
Threshold: 1

Assertion statement on lines 458 to 460:

458:          assert vNextPending < START_QUEUE_DEPTH 
459:            report "jls_framer: iStart dropped (start queue full)" 
460:            severity failure; 

Count: 374
Threshold: 1

Variable assignment statement on line 461:

461:          vNextPending := vNextPending + 1; 
Count: 374
Threshold: 1

If statement on lines 468 to 471:

468:        if (sAxiHandshake) then 
469:          sOutValid <= '0'; 
470:          sOutLast  <= '0'; 
471:        end if; 

Count: 113951
Threshold: 1

Signal assignment statement on line 469:

469:          sOutValid <= '0'; 
Count: 12355
Threshold: 1

Signal assignment statement on line 470:

470:          sOutLast  <= '0'; 
Count: 12355
Threshold: 1

Sequential statement on lines 473 to 606:

473:        case sFsmState is 
474: 
...
605: 
606:        end case; 

Count: 113951
Threshold: 1

If statement on lines 477 to 481:

477:            if (vNextPending > 0) then 
478:              sFsmState      <= header; 
479:              sHeaderByteIdx <= 0; 
480:              vNextPending   := vNextPending - 1; 
481:            end if; 

Count: 1390
Threshold: 1

Signal assignment statement on line 478:

478:              sFsmState      <= header; 
Count: 334
Threshold: 1

Signal assignment statement on line 479:

479:              sHeaderByteIdx <= 0; 
Count: 334
Threshold: 1

Variable assignment statement on line 480:

480:              vNextPending   := vNextPending - 1; 
Count: 334
Threshold: 1

If statement on lines 485 to 559:

485:            if (vCanEmit) then 
486:              vHeaderBytesRemain := HEADER_LEN - sHeaderByteIdx; 
...
558:              end if; 
559:            end if; 

Count: 10905
Threshold: 1

Variable assignment statement on line 486:

486:              vHeaderBytesRemain := HEADER_LEN - sHeaderByteIdx; 
Count: 6832
Threshold: 1

If statement on lines 488 to 558:

488:              if (vHeaderBytesRemain >= BYTES_OUT) then 
489:                -- Full header beat from HEADER ROM 
...
557:                end if; 
558:              end if; 

Count: 6832
Threshold: 1

Loop statement on lines 491 to 495:

491:                for i in 0 to BYTES_OUT - 1 loop 
492: 
493:                  sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= get_header_byte(sHeaderByteIdx + i, vWidth, vHeight); 
494: 
495:                end loop; 

Count: 902
Threshold: 1

Signal assignment statement on line 493:

493:                  sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= get_header_byte(sHeaderByteIdx + i, vWidth, vHeight); 
Count: 6999
Threshold: 1

Signal assignment statement on line 497:

497:                sValidBytes <= to_unsigned(BYTES_OUT, sValidBytes'length); 
Count: 902
Threshold: 1

Signal assignment statement on line 498:

498:                sOutValid   <= '1'; 
Count: 902
Threshold: 1

Signal assignment statement on line 499:

499:                sOutLast    <= '0'; 
Count: 902
Threshold: 1

If statement on lines 501 to 505:

501:                if (sHeaderByteIdx + BYTES_OUT = HEADER_LEN) then 
502:                  sFsmState <= data; 
503:                else 
504:                  sHeaderByteIdx <= sHeaderByteIdx + BYTES_OUT; 
505:                end if; 

Count: 902
Threshold: 1

Signal assignment statement on line 502:

502:                  sFsmState <= data; 
Count: 34
Threshold: 1

Signal assignment statement on line 504:

504:                  sHeaderByteIdx <= sHeaderByteIdx + BYTES_OUT; 
Count: 868
Threshold: 1

Variable assignment statement on line 509:

509:                vDataNeededBytes := BYTES_OUT - vHeaderBytesRemain; 
Count: 5930
Threshold: 1

Variable assignment statement on line 512:

512:                vEoiInBeat := vEoiCount > 0 and vEoiIdxFifo(0) < vDataNeededBytes; 
Count: 5930
Threshold: 1

If statement on lines 513 to 517:

513:                if (vEoiInBeat) then 
514:                  vEmitDataBytes := vEoiIdxFifo(0) + 1; 
515:                else 
516:                  vEmitDataBytes := vDataNeededBytes; 
517:                end if; 

Count: 5930
Threshold: 1

Variable assignment statement on line 514:

514:                  vEmitDataBytes := vEoiIdxFifo(0) + 1; 
Count: 48
Threshold: 1

Variable assignment statement on line 516:

516:                  vEmitDataBytes := vDataNeededBytes; 
Count: 5882
Threshold: 1

If statement on lines 519 to 557:

519:                if (vFifoByteCount >= vEmitDataBytes) then 
520:                  -- FIFO has enough bytes 
...
556:                  end if; 
557:                end if; 

Count: 5930
Threshold: 1

Loop statement on lines 523 to 534:

523:                  for i in 0 to BYTES_OUT - 1 loop 
524: 
...
533: 
534:                  end loop; 

Count: 313
Threshold: 1

If statement on lines 525 to 532:

525:                    if (i < vHeaderBytesRemain) then 
526:                      sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= get_header_byte(sHeaderByteIdx + i, vWidth, vHeight); 
...
531:                      sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= (others => '0'); 
532:                    end if; 

Count: 10951
Threshold: 1

Signal assignment statement on line 526:

526:                      sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= get_header_byte(sHeaderByteIdx + i, vWidth, vHeight); 
Count: 2140
Threshold: 1

Variable assignment statement on line 528:

528:                      vOffsetI                                                       := i - vHeaderBytesRemain; 
Count: 6161
Threshold: 1

Signal assignment statement on line 529:

529:                      sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= vBuffer(BUFFER_WIDTH - 1 - vOffsetI * 8 downto BUFFER_WIDTH - (vOffsetI + 1) * 8); 
Count: 6161
Threshold: 1

Signal assignment statement on line 531:

531:                      sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= (others => '0'); 
Count: 2650
Threshold: 1

Signal assignment statement on line 536:

536:                  sValidBytes    <= to_unsigned(vHeaderBytesRemain + vEmitDataBytes, sValidBytes'length); 
Count: 313
Threshold: 1

Signal assignment statement on line 537:

537:                  sOutValid      <= '1'; 
Count: 313
Threshold: 1

Variable assignment statement on line 538:

538:                  vBuffer        := std_logic_vector(shift_left(unsigned(vBuffer), vEmitDataBytes * 8)); 
Count: 313
Threshold: 1

Variable assignment statement on line 539:

539:                  vFifoByteCount := vFifoByteCount - vEmitDataBytes; 
Count: 313
Threshold: 1

If statement on lines 541 to 556:

541:                  if (vEoiInBeat) then 
542:                    sOutLast <= '1'; 
...
555:                    sFsmState <= data; 
556:                  end if; 

Count: 313
Threshold: 1

Signal assignment statement on line 542:

542:                    sOutLast <= '1'; 
Count: 48
Threshold: 1

Sequential statement on line 543:

543:                    pop_eoi(vEoiIdxFifo, vEoiCount, vEmitDataBytes); 
Count: 48
Threshold: 1

If statement on lines 545 to 551:

545:                    if (vNextPending > 0) then 
546:                      sFsmState      <= header; 
...
550:                      sFsmState <= idle; 
551:                    end if; 

Count: 48
Threshold: 1

Signal assignment statement on line 546:

546:                      sFsmState      <= header; 
Count: 11
Threshold: 1

Signal assignment statement on line 547:

547:                      sHeaderByteIdx <= 0; 
Count: 11
Threshold: 1

Variable assignment statement on line 548:

548:                      vNextPending   := vNextPending - 1; 
Count: 11
Threshold: 1

Signal assignment statement on line 550:

550:                      sFsmState <= idle; 
Count: 37
Threshold: 1

Signal assignment statement on line 553:

553:                    sOutLast  <= '0'; 
Count: 265
Threshold: 1

Sequential statement on line 554:

554:                    dec_eoi(vEoiIdxFifo, vEoiCount, vEmitDataBytes); 
Count: 265
Threshold: 1

Signal assignment statement on line 555:

555:                    sFsmState <= data; 
Count: 265
Threshold: 1

If statement on lines 563 to 604:

563:            if (vCanEmit) then 
564:              vEoiInBeat := vEoiCount > 0 and vEoiIdxFifo(0) < BYTES_OUT; 
...
603:              end if; 
604:            end if; 

Count: 101656
Threshold: 1

Variable assignment statement on line 564:

564:              vEoiInBeat := vEoiCount > 0 and vEoiIdxFifo(0) < BYTES_OUT; 
Count: 93064
Threshold: 1

If statement on lines 565 to 569:

565:              if (vEoiInBeat) then 
566:                vEmitDataBytes := vEoiIdxFifo(0) + 1; 
567:              else 
568:                vEmitDataBytes := BYTES_OUT; 
569:              end if; 

Count: 93064
Threshold: 1

Variable assignment statement on line 566:

566:                vEmitDataBytes := vEoiIdxFifo(0) + 1; 
Count: 282
Threshold: 1

Variable assignment statement on line 568:

568:                vEmitDataBytes := BYTES_OUT; 
Count: 92782
Threshold: 1

If statement on lines 571 to 603:

571:              if (vFifoByteCount >= vEmitDataBytes) then 
572: 
...
602:                end if; 
603:              end if; 

Count: 93064
Threshold: 1

Loop statement on lines 573 to 581:

573:                for i in 0 to BYTES_OUT - 1 loop 
574: 
...
580: 
581:                end loop; 

Count: 11149
Threshold: 1

If statement on lines 575 to 579:

575:                  if (i < vEmitDataBytes) then 
576:                    sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= vBuffer(BUFFER_WIDTH - 1 - i * 8 downto BUFFER_WIDTH - (i + 1) * 8); 
577:                  else 
578:                    sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= (others => '0'); 
579:                  end if; 

Count: 112191
Threshold: 1

Signal assignment statement on line 576:

576:                    sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= vBuffer(BUFFER_WIDTH - 1 - i * 8 downto BUFFER_WIDTH - (i + 1) * 8); 
Count: 108712
Threshold: 1

Signal assignment statement on line 578:

578:                    sOutWord(OUT_WIDTH - 1 - i * 8 downto OUT_WIDTH - (i + 1) * 8) <= (others => '0'); 
Count: 3479
Threshold: 1

Signal assignment statement on line 583:

583:                sValidBytes    <= to_unsigned(vEmitDataBytes, sValidBytes'length); 
Count: 11149
Threshold: 1

Signal assignment statement on line 584:

584:                sOutValid      <= '1'; 
Count: 11149
Threshold: 1

Variable assignment statement on line 585:

585:                vBuffer        := std_logic_vector(shift_left(unsigned(vBuffer), vEmitDataBytes * 8)); 
Count: 11149
Threshold: 1

Variable assignment statement on line 586:

586:                vFifoByteCount := vFifoByteCount - vEmitDataBytes; 
Count: 11149
Threshold: 1

If statement on lines 588 to 602:

588:                if (vEoiInBeat) then 
589:                  sOutLast <= '1'; 
...
601:                  dec_eoi(vEoiIdxFifo, vEoiCount, vEmitDataBytes); 
602:                end if; 

Count: 11149
Threshold: 1

Signal assignment statement on line 589:

589:                  sOutLast <= '1'; 
Count: 282
Threshold: 1

Sequential statement on line 590:

590:                  pop_eoi(vEoiIdxFifo, vEoiCount, vEmitDataBytes); 
Count: 282
Threshold: 1

If statement on lines 592 to 598:

592:                  if (vNextPending > 0) then 
593:                    sFsmState      <= header; 
...
597:                    sFsmState <= idle; 
598:                  end if; 

Count: 282
Threshold: 1

Signal assignment statement on line 593:

593:                    sFsmState      <= header; 
Count: 29
Threshold: 1

Signal assignment statement on line 594:

594:                    sHeaderByteIdx <= 0; 
Count: 29
Threshold: 1

Variable assignment statement on line 595:

595:                    vNextPending   := vNextPending - 1; 
Count: 29
Threshold: 1

Signal assignment statement on line 597:

597:                    sFsmState <= idle; 
Count: 253
Threshold: 1

Signal assignment statement on line 600:

600:                  sOutLast <= '0'; 
Count: 10867
Threshold: 1

Sequential statement on line 601:

601:                  dec_eoi(vEoiIdxFifo, vEoiCount, vEmitDataBytes); 
Count: 10867
Threshold: 1

If statement on lines 611 to 636:

611:        if (iValid = '1') then 
612: 
...
635:          end if; 
636:        end if; 

Count: 113951
Threshold: 1

Loop statement on lines 613 to 619:

613:          for i in 0 to BYTES_IN - 1 loop 
614: 
...
618: 
619:          end loop; 

Count: 31067
Threshold: 1

If statement on lines 615 to 617:

615:            if (i < to_integer(iByteEnable)) then 
616:              vBuffer(BUFFER_WIDTH - 1 - (vFifoByteCount + i) * 8 downto BUFFER_WIDTH - (vFifoByteCount + i + 1) * 8) := iWord(IN_WIDTH - 1 - i * 8 downto IN_WIDTH - (i + 1) * 8); 
617:            end if; 

Count: 124268
Threshold: 1

Variable assignment statement on line 616:

616:              vBuffer(BUFFER_WIDTH - 1 - (vFifoByteCount + i) * 8 downto BUFFER_WIDTH - (vFifoByteCount + i + 1) * 8) := iWord(IN_WIDTH - 1 - i * 8 downto IN_WIDTH - (i + 1) * 8); 
Count: 114457
Threshold: 1

Variable assignment statement on line 621:

621:          vFifoByteCount := vFifoByteCount + to_integer(iByteEnable); 
Count: 31067
Threshold: 1

If statement on lines 623 to 635:

623:          if (iEoi = '1') then 
624:            -- Push FOOTER into the FIFO right after the last data byte 
...
634:            vEoiCount              := vEoiCount + 1; 
635:          end if; 

Count: 31067
Threshold: 1

Variable assignment statement on line 625:

625:            vBuffer(BUFFER_WIDTH - 1 - vFifoByteCount * 8 downto BUFFER_WIDTH - (vFifoByteCount + 1) * 8)       := x"FF"; 
Count: 330
Threshold: 1

Variable assignment statement on line 626:

626:            vBuffer(BUFFER_WIDTH - 1 - (vFifoByteCount + 1) * 8 downto BUFFER_WIDTH - (vFifoByteCount + 2) * 8) := x"D9"; 
Count: 330
Threshold: 1

Variable assignment statement on line 627:

627:            vFifoByteCount                                                                                      := vFifoByteCount + 2; 
Count: 330
Threshold: 1

Assertion statement on lines 629 to 631:

629:            assert vEoiCount < EOI_FIFO_DEPTH 
630:              report "jls_framer: EoI FIFO overflow; back-to-back images closer than depth allows" 
631:              severity failure; 

Count: 330
Threshold: 1

Variable assignment statement on line 633:

633:            vEoiIdxFifo(vEoiCount) := vFifoByteCount - 1; 
Count: 330
Threshold: 1

Variable assignment statement on line 634:

634:            vEoiCount              := vEoiCount + 1; 
Count: 330
Threshold: 1

Assertion statement on lines 638 to 640:

638:        assert vFifoByteCount <= BUFFER_BYTES 
639:          report "jls_framer: payload FIFO overflow (vCount exceeds BUFFER_BYTES; check sizing assumptions or sustained backpressure)" 
640:          severity failure; 

Count: 113951
Threshold: 1

Signal assignment statement on line 642:

642:        sBuffer        <= vBuffer; 
Count: 113951
Threshold: 1

Signal assignment statement on line 643:

643:        sFifoByteCount <= vFifoByteCount; 
Count: 113951
Threshold: 1

Signal assignment statement on line 644:

644:        sEoiFifo       <= vEoiIdxFifo; 
Count: 113951
Threshold: 1

Signal assignment statement on line 645:

645:        sEoiCount      <= vEoiCount; 
Count: 113951
Threshold: 1

Signal assignment statement on line 646:

646:        sNextPending   <= vNextPending; 
Count: 113951
Threshold: 1

Uncovered branches:

"case" / "with" / "select" choice on line 324:

324:      when others => 
Choice ofCountThresholdExclude Command
Binothers01

Excluded branches:

Covered branches:

"case" / "with" / "select" choice on line 224:

224:      when 0 => 
Choice ofCountThreshold
Bin03671

"case" / "with" / "select" choice on line 228:

228:      when 1 => 
Choice ofCountThreshold
Bin13671

"case" / "with" / "select" choice on line 232:

232:      when 2 => 
Choice ofCountThreshold
Bin23671

"case" / "with" / "select" choice on line 236:

236:      when 3 => 
Choice ofCountThreshold
Bin33671

"case" / "with" / "select" choice on line 240:

240:      when 4 => 
Choice ofCountThreshold
Bin43671

"case" / "with" / "select" choice on line 244:

244:      when 5 => 
Choice ofCountThreshold
Bin53671

"case" / "with" / "select" choice on line 248:

248:      when 6 => 
Choice ofCountThreshold
Bin63671

"case" / "with" / "select" choice on line 252:

252:      when 7 => 
Choice ofCountThreshold
Bin73671

"case" / "with" / "select" choice on line 256:

256:      when 8 => 
Choice ofCountThreshold
Bin83671

"case" / "with" / "select" choice on line 260:

260:      when 9 => 
Choice ofCountThreshold
Bin93671

"case" / "with" / "select" choice on line 264:

264:      when 10 => 
Choice ofCountThreshold
Bin103671

"case" / "with" / "select" choice on line 268:

268:      when 11 => 
Choice ofCountThreshold
Bin113671

"case" / "with" / "select" choice on line 272:

272:      when 12 => 
Choice ofCountThreshold
Bin123671

"case" / "with" / "select" choice on line 276:

276:      when 13 => 
Choice ofCountThreshold
Bin133671

"case" / "with" / "select" choice on line 280:

280:      when 14 => 
Choice ofCountThreshold
Bin143661

"case" / "with" / "select" choice on line 284:

284:      when 15 => 
Choice ofCountThreshold
Bin153661

"case" / "with" / "select" choice on line 288:

288:      when 16 => 
Choice ofCountThreshold
Bin163661

"case" / "with" / "select" choice on line 292:

292:      when 17 => 
Choice ofCountThreshold
Bin173661

"case" / "with" / "select" choice on line 296:

296:      when 18 => 
Choice ofCountThreshold
Bin183651

"case" / "with" / "select" choice on line 300:

300:      when 19 => 
Choice ofCountThreshold
Bin193651

"case" / "with" / "select" choice on line 304:

304:      when 20 => 
Choice ofCountThreshold
Bin203651

"case" / "with" / "select" choice on line 308:

308:      when 21 => 
Choice ofCountThreshold
Bin213651

"case" / "with" / "select" choice on line 312:

312:      when 22 => 
Choice ofCountThreshold
Bin223651

"case" / "with" / "select" choice on line 316:

316:      when 23 => 
Choice ofCountThreshold
Bin233651

"case" / "with" / "select" choice on line 320:

320:      when 24 => 
Choice ofCountThreshold
Bin243471

"if" / "when" / "else" condition on line 344:

344:      if (k + 1 < cnt) then 
Evaluated toCountThreshold
BinTrue31

"if" / "when" / "else" condition on line 368:

368:      if (k < cnt) then 
Evaluated toCountThreshold
BinTrue1501

"if" / "when" / "else" condition on line 408:

408:  oReady <= '1' when sFifoByteCount < BUFFER_BYTES_NOMINAL else 
Evaluated toCountThreshold
BinTrue414851

"if" / "when" / "else" condition on line 432:

432:    if rising_edge(iClk) then 
Evaluated toCountThreshold
BinTrue1142691

"if" / "when" / "else" condition on line 433:

433:      if (iRst = '1') then 
Evaluated toCountThreshold
BinTrue3181

"if" / "when" / "else" condition on line 457:

457:        if (iStart = '1') then 
Evaluated toCountThreshold
BinTrue3741

"if" / "when" / "else" condition on line 468:

468:        if (sAxiHandshake) then 
Evaluated toCountThreshold
BinTrue123551

"case" / "with" / "select" choice on line 475:

475:          when idle => 
Choice ofCountThreshold
Binidle13901

"if" / "when" / "else" condition on line 477:

477:            if (vNextPending > 0) then 
Evaluated toCountThreshold
BinTrue3341

"case" / "with" / "select" choice on line 483:

483:          when header => 
Choice ofCountThreshold
Binheader109051

"if" / "when" / "else" condition on line 485:

485:            if (vCanEmit) then 
Evaluated toCountThreshold
BinTrue68321

"if" / "when" / "else" condition on line 488:

488:              if (vHeaderBytesRemain >= BYTES_OUT) then 
Evaluated toCountThreshold
BinTrue9021

"if" / "when" / "else" condition on line 501:

501:                if (sHeaderByteIdx + BYTES_OUT = HEADER_LEN) then 
Evaluated toCountThreshold
BinTrue341

"if" / "when" / "else" condition on line 513:

513:                if (vEoiInBeat) then 
Evaluated toCountThreshold
BinTrue481

"if" / "when" / "else" condition on line 519:

519:                if (vFifoByteCount >= vEmitDataBytes) then 
Evaluated toCountThreshold
BinTrue3131

"if" / "when" / "else" condition on line 525:

525:                    if (i < vHeaderBytesRemain) then 
Evaluated toCountThreshold
BinTrue21401

"if" / "when" / "else" condition on line 527:

527:                    elsif (i < vHeaderBytesRemain + vEmitDataBytes) then 
Evaluated toCountThreshold
BinTrue61611

"if" / "when" / "else" condition on line 541:

541:                  if (vEoiInBeat) then 
Evaluated toCountThreshold
BinTrue481

"if" / "when" / "else" condition on line 545:

545:                    if (vNextPending > 0) then 
Evaluated toCountThreshold
BinTrue111

"case" / "with" / "select" choice on line 561:

561:          when data => 
Choice ofCountThreshold
Bindata1016561

"if" / "when" / "else" condition on line 563:

563:            if (vCanEmit) then 
Evaluated toCountThreshold
BinTrue930641

"if" / "when" / "else" condition on line 565:

565:              if (vEoiInBeat) then 
Evaluated toCountThreshold
BinTrue2821

"if" / "when" / "else" condition on line 571:

571:              if (vFifoByteCount >= vEmitDataBytes) then 
Evaluated toCountThreshold
BinTrue111491

"if" / "when" / "else" condition on line 575:

575:                  if (i < vEmitDataBytes) then 
Evaluated toCountThreshold
BinTrue1087121

"if" / "when" / "else" condition on line 588:

588:                if (vEoiInBeat) then 
Evaluated toCountThreshold
BinTrue2821

"if" / "when" / "else" condition on line 592:

592:                  if (vNextPending > 0) then 
Evaluated toCountThreshold
BinTrue291

"if" / "when" / "else" condition on line 611:

611:        if (iValid = '1') then 
Evaluated toCountThreshold
BinTrue310671

"if" / "when" / "else" condition on line 615:

615:            if (i < to_integer(iByteEnable)) then 
Evaluated toCountThreshold
BinTrue1144571

"if" / "when" / "else" condition on line 623:

623:          if (iEoi = '1') then 
Evaluated toCountThreshold
BinTrue3301

Uncovered toggles:

Excluded toggles:

Covered toggles:

Uncovered expressions:

Excluded expressions:

Covered expressions:

Uncovered FSM states:

Excluded FSM states:

Covered FSM states:

Uncovered functional coverage:

Excluded functional coverage:

Covered functional coverage: