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