NVC code coverage report

Back to summary

Coverage report for file:

File:  ../../Sources/line_buffer.vhd

Current File:

File Statement Branch Toggle Expression FSM state Functional Average
line_buffer.vhd 100.0 % (74/74) 100.0 % (24/24) N.A. N.A. N.A. N.A. 100.0 % (98/98)

Details:

Statement Branch Toggle Expression FSM state Functional

Uncovered statements:

Excluded statements:

Covered statements:

Signal assignment statement on line 101:

101:    oValid              <= iValid; 
Count: 116595
Threshold: 1

Signal assignment statement on line 102:

102:    sIsLastCol          <= sColCounter = iImageWidth - 1; 
Count: 116595
Threshold: 1

Signal assignment statement on line 103:

103:    sIsLastRow          <= sRowCounter = iImageHeight - 1; 
Count: 116595
Threshold: 1

Signal assignment statement on line 104:

104:    sIsFirstCol         <= sColCounter = 0; 
Count: 116595
Threshold: 1

Signal assignment statement on line 105:

105:    sIsEol              <= sIsLastCol and iValid = '1'; 
Count: 116595
Threshold: 1

Signal assignment statement on line 106:

106:    sIsEoi              <= sIsLastCol and sIsLastRow and iValid = '1'; 
Count: 116595
Threshold: 1

Signal assignment statement on line 107:

107:    oEoi                <= bool2bit(sIsEoi); 
Count: 116595
Threshold: 1

Signal assignment statement on line 108:

108:    oEol                <= bool2bit(sIsEol); 
Count: 116595
Threshold: 1

Signal assignment statement on line 109:

109:    sIsFifoOutHandshake <= (sFifoOutReady and sFifoOutValid) = '1'; 
Count: 116595
Threshold: 1

If statement on lines 112 to 118:

112:    if (sFifoState = preload) then 
113:      sFifoOutReady <= '1'; 
...
117:      sFifoOutReady <= '0'; 
118:    end if; 

Count: 116595
Threshold: 1

Signal assignment statement on line 113:

113:      sFifoOutReady <= '1'; 
Count: 2075
Threshold: 1

Signal assignment statement on line 115:

115:      sFifoOutReady <= iValid; 
Count: 98442
Threshold: 1

Signal assignment statement on line 117:

117:      sFifoOutReady <= '0'; 
Count: 16078
Threshold: 1

If statement on lines 121 to 138:

121:    if (sRowCounter = 0) then                                          -- First row: b = c = d = 0 
122:      oB <= (others => '0'); 
...
137:      end if; 
138:    end if; 

Count: 116595
Threshold: 1

Signal assignment statement on line 122:

122:      oB <= (others => '0'); 
Count: 18131
Threshold: 1

Signal assignment statement on line 123:

123:      oC <= (others => '0'); 
Count: 18131
Threshold: 1

Signal assignment statement on line 124:

124:      oD <= (others => '0'); 
Count: 18131
Threshold: 1

Signal assignment statement on line 126:

126:      oB <= sB; 
Count: 98464
Threshold: 1

If statement on lines 127 to 131:

127:      if (sIsFirstCol) then 
128:        oC <= sBorderC;                                                -- Col 0: c = Ra from start of previous row 
129:      else 
130:        oC <= sC; 
131:      end if; 

Count: 98464
Threshold: 1

Signal assignment statement on line 128:

128:        oC <= sBorderC;                                                -- Col 0: c = Ra from start of previous row 
Count: 5561
Threshold: 1

Signal assignment statement on line 130:

130:        oC <= sC; 
Count: 92903
Threshold: 1

If statement on lines 133 to 137:

133:      if (sIsLastCol) then 
134:        oD <= sB;                                                      -- Last col: replicate last pixel of previous row (= b) 
135:      else 
136:        oD <= sD; 
137:      end if; 

Count: 98464
Threshold: 1

Signal assignment statement on line 134:

134:        oD <= sB;                                                      -- Last col: replicate last pixel of previous row (= b) 
Count: 5504
Threshold: 1

Signal assignment statement on line 136:

136:        oD <= sD; 
Count: 92960
Threshold: 1

If statement on lines 140 to 144:

140:    if (sIsFirstCol) then 
141:      oA <= sB;                                                        -- First col: replicate first pixel of previous row (= b) 
142:    else 
143:      oA <= sA; 
144:    end if; 

Count: 116595
Threshold: 1

Signal assignment statement on line 141:

141:      oA <= sB;                                                        -- First col: replicate first pixel of previous row (= b) 
Count: 6244
Threshold: 1

Signal assignment statement on line 143:

143:      oA <= sA; 
Count: 110351
Threshold: 1

If statement on lines 152 to 247:

152:    if rising_edge(iClk) then 
153:      if (iRst = '1') then 
...
246:      end if; 
247:    end if; 

Count: 204898
Threshold: 1

If statement on lines 153 to 246:

153:      if (iRst = '1') then 
154:        sPreloadCounter <= (others => '0'); 
...
245:        end if; 
246:      end if; 

Count: 102449
Threshold: 1

Signal assignment statement on line 154:

154:        sPreloadCounter <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 155:

155:        sFifoState      <= preload; 
Count: 286
Threshold: 1

Signal assignment statement on line 157:

157:        sColCounter <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 158:

158:        sRowCounter <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 160:

160:        sB       <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 161:

161:        sC       <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 162:

162:        sD       <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 163:

163:        sA       <= (others => '0'); 
Count: 286
Threshold: 1

Signal assignment statement on line 164:

164:        sBorderC <= (others => '0'); 
Count: 286
Threshold: 1

Sequential statement on lines 168 to 202:

168:        case sFifoState is 
169: 
...
201: 
202:        end case; 

Count: 102163
Threshold: 1

If statement on lines 175 to 184:

175:            if (sIsFifoOutHandshake) then 
176:              sPreloadCounter <= sPreloadCounter + 1; 
...
183:              end if; 
184:            end if; 

Count: 3744
Threshold: 1

Signal assignment statement on line 176:

176:              sPreloadCounter <= sPreloadCounter + 1; 
Count: 390
Threshold: 1

If statement on lines 177 to 183:

177:              if (sPreloadCounter = 1) then 
178:                sFifoState <= wait_end_first_row; 
...
182:                end if; 
183:              end if; 

Count: 390
Threshold: 1

Signal assignment statement on line 178:

178:                sFifoState <= wait_end_first_row; 
Count: 195
Threshold: 1

If statement on lines 180 to 182:

180:                if (sIsEol) then                           -- needs this check to work with images with width=4 (Annex H.3 test image) 
181:                  sFifoState <= nominal; 
182:                end if; 

Count: 195
Threshold: 1

Signal assignment statement on line 181:

181:                  sFifoState <= nominal; 
Count: 125
Threshold: 1

If statement on lines 189 to 191:

189:            if (sIsEol) then 
190:              sFifoState <= nominal; 
191:            end if; 

Count: 15964
Threshold: 1

Signal assignment statement on line 190:

190:              sFifoState <= nominal; 
Count: 64
Threshold: 1

If statement on lines 197 to 200:

197:            if (sIsEoi) then 
198:              sFifoState      <= preload; 
199:              sPreloadCounter <= (others => '0'); 
200:            end if; 

Count: 82455
Threshold: 1

Signal assignment statement on line 198:

198:              sFifoState      <= preload; 
Count: 155
Threshold: 1

Signal assignment statement on line 199:

199:              sPreloadCounter <= (others => '0'); 
Count: 155
Threshold: 1

If statement on lines 205 to 216:

205:        if (iValid = '1') then 
206:          if (sIsLastCol) then 
...
215:          end if; 
216:        end if; 

Count: 102163
Threshold: 1

If statement on lines 206 to 215:

206:          if (sIsLastCol) then 
207:            sColCounter <= (others => '0'); 
...
214:            sColCounter <= sColCounter + 1; 
215:          end if; 

Count: 85528
Threshold: 1

Signal assignment statement on line 207:

207:            sColCounter <= (others => '0'); 
Count: 1955
Threshold: 1

If statement on lines 208 to 212:

208:            if (sIsLastRow) then 
209:              sRowCounter <= (others => '0'); 
210:            else 
211:              sRowCounter <= sRowCounter + 1; 
212:            end if; 

Count: 1955
Threshold: 1

Signal assignment statement on line 209:

209:              sRowCounter <= (others => '0'); 
Count: 172
Threshold: 1

Signal assignment statement on line 211:

211:              sRowCounter <= sRowCounter + 1; 
Count: 1783
Threshold: 1

Signal assignment statement on line 214:

214:            sColCounter <= sColCounter + 1; 
Count: 83573
Threshold: 1

If statement on lines 220 to 228:

220:        if (sIsFifoOutHandshake) then 
221:          sC <= sB; 
...
227:          sB <= sD; 
228:        end if; 

Count: 102163
Threshold: 1

Signal assignment statement on line 221:

221:          sC <= sB; 
Count: 69065
Threshold: 1

Signal assignment statement on line 222:

222:          sB <= sD; 
Count: 69065
Threshold: 1

Signal assignment statement on line 223:

223:          sD <= unsigned(sFifoOutData); 
Count: 69065
Threshold: 1

Signal assignment statement on line 226:

226:          sC <= sB; 
Count: 314
Threshold: 1

Signal assignment statement on line 227:

227:          sB <= sD; 
Count: 314
Threshold: 1

If statement on lines 230 to 237:

230:        if (iValid = '1') then 
231:          -- Store last pixel 
...
236:          end if; 
237:        end if; 

Count: 102163
Threshold: 1

Signal assignment statement on line 232:

232:          sA <= iPixel; 
Count: 85528
Threshold: 1

If statement on lines 234 to 236:

234:          if (sIsFirstCol) then 
235:            sBorderC <= sB;                                -- Capture sB at col 0 for use as c border at col 0 of next ro 
236:          end if; 

Count: 85528
Threshold: 1

Signal assignment statement on line 235:

235:            sBorderC <= sB;                                -- Capture sB at col 0 for use as c border at col 0 of next ro 
Count: 1988
Threshold: 1

If statement on lines 239 to 245:

239:        if (sIsEoi) then 
240:          sB       <= (others => '0'); 
...
244:          sBorderC <= (others => '0'); 
245:        end if; 

Count: 102163
Threshold: 1

Signal assignment statement on line 240:

240:          sB       <= (others => '0'); 
Count: 172
Threshold: 1

Signal assignment statement on line 241:

241:          sC       <= (others => '0'); 
Count: 172
Threshold: 1

Signal assignment statement on line 242:

242:          sD       <= (others => '0'); 
Count: 172
Threshold: 1

Signal assignment statement on line 243:

243:          sA       <= (others => '0'); 
Count: 172
Threshold: 1

Signal assignment statement on line 244:

244:          sBorderC <= (others => '0'); 
Count: 172
Threshold: 1

Signal assignment statement on line 252:

252:  sFifoInValid <= iValid and not bool2bit(sIsLastRow)
Count: 15436
Threshold: 1

Uncovered branches:

Excluded branches:

Covered branches:

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

112:    if (sFifoState = preload) then 
Evaluated toCountThreshold
BinTrue20751

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

114:    elsif (sFifoState = nominal) then 
Evaluated toCountThreshold
BinTrue984421

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

121:    if (sRowCounter = 0) then                                          -- First row: b = c = d = 0 
Evaluated toCountThreshold
BinTrue181311

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

127:      if (sIsFirstCol) then 
Evaluated toCountThreshold
BinTrue55611

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

133:      if (sIsLastCol) then 
Evaluated toCountThreshold
BinTrue55041

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

140:    if (sIsFirstCol) then 
Evaluated toCountThreshold
BinTrue62441

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

152:    if rising_edge(iClk) then 
Evaluated toCountThreshold
BinTrue1024491

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

153:      if (iRst = '1') then 
Evaluated toCountThreshold
BinTrue2861

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

170:          when preload => 
Choice ofCountThreshold
Binpreload37441

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

175:            if (sIsFifoOutHandshake) then 
Evaluated toCountThreshold
BinTrue3901

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

177:              if (sPreloadCounter = 1) then 
Evaluated toCountThreshold
BinTrue1951

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

180:                if (sIsEol) then                           -- needs this check to work with images with width=4 (Annex H.3 test image) 
Evaluated toCountThreshold
BinTrue1251

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

186:          when wait_end_first_row => 
Choice ofCountThreshold
Binwait_end_first_row159641

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

189:            if (sIsEol) then 
Evaluated toCountThreshold
BinTrue641

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

193:          when nominal => 
Choice ofCountThreshold
Binnominal824551

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

197:            if (sIsEoi) then 
Evaluated toCountThreshold
BinTrue1551

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

205:        if (iValid = '1') then 
Evaluated toCountThreshold
BinTrue855281

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

206:          if (sIsLastCol) then 
Evaluated toCountThreshold
BinTrue19551

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

208:            if (sIsLastRow) then 
Evaluated toCountThreshold
BinTrue1721

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

220:        if (sIsFifoOutHandshake) then 
Evaluated toCountThreshold
BinTrue690651

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

224:        elsif (sFifoState = nominal and iValid = '1') then 
Evaluated toCountThreshold
BinTrue3141

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

230:        if (iValid = '1') then 
Evaluated toCountThreshold
BinTrue855281

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

234:          if (sIsFirstCol) then 
Evaluated toCountThreshold
BinTrue19881

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

239:        if (sIsEoi) then 
Evaluated toCountThreshold
BinTrue1721

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: