NVC code coverage report

Back to summary

Coverage report for file:

File:  ../../Sources/A15_A16_encode_run.vhd

Current File:

File Statement Branch Toggle Expression FSM state Functional Average
A15_A16_encode_run.vhd 100.0 % (57/57) 100.0 % (12/12) N.A. N.A. N.A. N.A. 100.0 % (69/69)

Details:

Statement Branch Toggle Expression FSM state Functional

Uncovered statements:

Excluded statements:

Covered statements:

Signal assignment statement on line 114:

114:    oRawValid     <= '0'; 
Count: 194509
Threshold: 1

Signal assignment statement on line 115:

115:    oRawSuffixLen <= to_unsigned(1, 5); 
Count: 194509
Threshold: 1

Signal assignment statement on line 116:

116:    oRawSuffixVal <= to_unsigned(1, RUN_CNT_WIDTH); 
Count: 194509
Threshold: 1

Signal assignment statement on line 117:

117:    oRiValid      <= '0'; 
Count: 194509
Threshold: 1

Signal assignment statement on line 118:

118:    oRiIx         <= iIx; 
Count: 194509
Threshold: 1

Signal assignment statement on line 119:

119:    oRiRa         <= iRa; 
Count: 194509
Threshold: 1

Signal assignment statement on line 120:

120:    oRiRb         <= iRb; 
Count: 194509
Threshold: 1

Signal assignment statement on line 121:

121:    oRiRunIndex   <= sRunIndex; 
Count: 194509
Threshold: 1

Signal assignment statement on line 124:

124:    sRunIndexNext  <= sRunIndex; 
Count: 194509
Threshold: 1

Signal assignment statement on line 125:

125:    sNextBoundNext <= sNextBound; 
Count: 194509
Threshold: 1

Signal assignment statement on line 126:

126:    sInRunNext     <= sInRun; 
Count: 194509
Threshold: 1

If statement on lines 128 to 194:

128:    if (iModeIsRun = '1' and iRst = '0') then 
129:      vJ    := CO_J_TABLE(to_integer(sRunIndex)); 
...
193:      end if; 
194:    end if; 

Count: 194509
Threshold: 1

Variable assignment statement on line 129:

129:      vJ    := CO_J_TABLE(to_integer(sRunIndex)); 
Count: 86266
Threshold: 1

Variable assignment statement on line 130:

130:      vStep := shift_left(to_unsigned(1, C_BOUND_WIDTH), vJ); 
Count: 86266
Threshold: 1

If statement on lines 131 to 135:

131:      if (sRunIndex < 31) then 
132:        vJNext := CO_J_TABLE(to_integer(sRunIndex) + 1); 
133:      else 
134:        vJNext := CO_J_TABLE(31); 
135:      end if; 

Count: 86266
Threshold: 1

Variable assignment statement on line 132:

132:        vJNext := CO_J_TABLE(to_integer(sRunIndex) + 1); 
Count: 44906
Threshold: 1

Variable assignment statement on line 134:

134:        vJNext := CO_J_TABLE(31); 
Count: 41360
Threshold: 1

Variable assignment statement on line 136:

136:      vStepNext := shift_left(to_unsigned(1, C_BOUND_WIDTH), vJNext); 
Count: 86266
Threshold: 1

If statement on lines 138 to 193:

138:      if (iRunHit = '1') then 
139:        -- ── A.15: matching pixel ─────────────────────────────────────────── 
...
192:                                     CO_J_TABLE(to_integer(vNewIndex))); 
193:      end if; 

Count: 86266
Threshold: 1

Variable assignment statement on line 140:

140:        vBoundHit := resize(iRunCnt, C_BOUND_WIDTH) = sNextBound; 
Count: 85274
Threshold: 1

Variable assignment statement on line 141:

141:        vNewIndex := sRunIndex; 
Count: 85274
Threshold: 1

If statement on lines 143 to 148:

143:        if (vBoundHit) then 
144:          oRawValid <= '1'; 
145:          if (sRunIndex < 31) then 
146:            vNewIndex := sRunIndex + 1; 
147:          end if; 
148:        end if; 

Count: 85274
Threshold: 1

Signal assignment statement on line 144:

144:          oRawValid <= '1'; 
Count: 1003
Threshold: 1

If statement on lines 145 to 147:

145:          if (sRunIndex < 31) then 
146:            vNewIndex := sRunIndex + 1; 
147:          end if; 

Count: 1003
Threshold: 1

Variable assignment statement on line 146:

146:            vNewIndex := sRunIndex + 1; 
Count: 1002
Threshold: 1

Signal assignment statement on line 150:

150:        sInRunNext <= '1'; 
Count: 85274
Threshold: 1

If statement on lines 152 to 167:

152:        if (iRunContinue = '0') then 
153:          -- EOLine 
...
166:          end if; 
167:        end if; 

Count: 85274
Threshold: 1

Signal assignment statement on line 154:

154:          sInRunNext <= '0'; 
Count: 262
Threshold: 1

If statement on lines 155 to 157:

155:          if (not vBoundHit and iRunCnt > 0) then 
156:            oRawValid <= '1'; -- A16 EOLine '1' bit 
157:          end if; 

Count: 262
Threshold: 1

Signal assignment statement on line 156:

156:            oRawValid <= '1'; -- A16 EOLine '1' bit 
Count: 140
Threshold: 1

Signal assignment statement on line 158:

158:          sRunIndexNext  <= vNewIndex; 
Count: 262
Threshold: 1

Signal assignment statement on lines 159 to 160:

159:          sNextBoundNext <= shift_left(to_unsigned(1, C_BOUND_WIDTH), 
160:                                       CO_J_TABLE(to_integer(vNewIndex))); 

Count: 262
Threshold: 1

Signal assignment statement on line 163:

163:          sRunIndexNext <= vNewIndex; 
Count: 85012
Threshold: 1

If statement on lines 164 to 166:

164:          if (vBoundHit) then 
165:            sNextBoundNext <= sNextBound + vStepNext; 
166:          end if; 

Count: 85012
Threshold: 1

Signal assignment statement on line 165:

165:            sNextBoundNext <= sNextBound + vStepNext; 
Count: 881
Threshold: 1

Signal assignment statement on line 175:

175:        oRawValid     <= '1'; 
Count: 992
Threshold: 1

Signal assignment statement on line 176:

176:        oRawSuffixLen <= to_unsigned(vJ + 1, 5); 
Count: 992
Threshold: 1

Signal assignment statement on line 177:

177:        oRawSuffixVal <= iRunCnt - resize(sNextBound - vStep, RUN_CNT_WIDTH); 
Count: 992
Threshold: 1

Signal assignment statement on line 178:

178:        oRiValid      <= '1'; 
Count: 992
Threshold: 1

Signal assignment statement on line 179:

179:        oRiIx         <= iIx; 
Count: 992
Threshold: 1

Signal assignment statement on line 180:

180:        oRiRa         <= iRa; 
Count: 992
Threshold: 1

Signal assignment statement on line 181:

181:        oRiRb         <= iRb; 
Count: 992
Threshold: 1

If statement on lines 183 to 187:

183:        if (sRunIndex > 0) then 
184:          vNewIndex := sRunIndex - 1; 
185:        else 
186:          vNewIndex := (others => '0'); 
187:        end if; 

Count: 992
Threshold: 1

Variable assignment statement on line 184:

184:          vNewIndex := sRunIndex - 1; 
Count: 514
Threshold: 1

Variable assignment statement on line 186:

186:          vNewIndex := (others => '0'); 
Count: 478
Threshold: 1

Signal assignment statement on line 189:

189:        sInRunNext     <= '0'; 
Count: 992
Threshold: 1

Signal assignment statement on line 190:

190:        sRunIndexNext  <= vNewIndex; 
Count: 992
Threshold: 1

Signal assignment statement on lines 191 to 192:

191:        sNextBoundNext <= shift_left(to_unsigned(1, C_BOUND_WIDTH), 
192:                                     CO_J_TABLE(to_integer(vNewIndex))); 

Count: 992
Threshold: 1

Signal assignment statement on line 198:

198:  oInRunNext <= sInRunNext
Count: 818
Threshold: 1

If statement on lines 204 to 214:

204:    if rising_edge(iClk) then 
205:      if (iRst = '1' or iEoi = '1') then 
...
213:      end if; 
214:    end if; 

Count: 372390
Threshold: 1

If statement on lines 205 to 213:

205:      if (iRst = '1' or iEoi = '1') then 
206:        sRunIndex  <= (others => '0'); 
...
212:        sInRun     <= sInRunNext; 
213:      end if; 

Count: 186195
Threshold: 1

Signal assignment statement on line 206:

206:        sRunIndex  <= (others => '0'); 
Count: 457
Threshold: 1

Signal assignment statement on line 207:

207:        sNextBound <= to_unsigned(1, C_BOUND_WIDTH); 
Count: 457
Threshold: 1

Signal assignment statement on line 208:

208:        sInRun     <= '0'; 
Count: 457
Threshold: 1

Signal assignment statement on line 210:

210:        sRunIndex  <= sRunIndexNext; 
Count: 181813
Threshold: 1

Signal assignment statement on line 211:

211:        sNextBound <= sNextBoundNext; 
Count: 181813
Threshold: 1

Signal assignment statement on line 212:

212:        sInRun     <= sInRunNext; 
Count: 181813
Threshold: 1

Uncovered branches:

Excluded branches:

Covered branches:

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

128:    if (iModeIsRun = '1' and iRst = '0') then 
Evaluated toCountThreshold
BinTrue862661

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

131:      if (sRunIndex < 31) then 
Evaluated toCountThreshold
BinTrue449061

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

138:      if (iRunHit = '1') then 
Evaluated toCountThreshold
BinTrue852741

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

143:        if (vBoundHit) then 
Evaluated toCountThreshold
BinTrue10031

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

145:          if (sRunIndex < 31) then 
Evaluated toCountThreshold
BinTrue10021

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

152:        if (iRunContinue = '0') then 
Evaluated toCountThreshold
BinTrue2621

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

155:          if (not vBoundHit and iRunCnt > 0) then 
Evaluated toCountThreshold
BinTrue1401

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

164:          if (vBoundHit) then 
Evaluated toCountThreshold
BinTrue8811

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

183:        if (sRunIndex > 0) then 
Evaluated toCountThreshold
BinTrue5141

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

204:    if rising_edge(iClk) then 
Evaluated toCountThreshold
BinTrue1861951

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

205:      if (iRst = '1' or iEoi = '1') then 
Evaluated toCountThreshold
BinTrue4571

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

209:      elsif (iCE = '1') then 
Evaluated toCountThreshold
BinTrue1818131

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: