Issue #333
Loops not unrolling due to width mismatches?
| Status: | Closed | Start date: | 03/10/2011 | |
|---|---|---|---|---|
| Priority: | Low | Due date: | ||
| Assignee: | Wilson Snyder | % Done: | 0% | |
| Category: | Unsupported | |||
| Target version: | - |
Description
This might be intended behavior. I would have expected width mismatch warnings but was confused by the BLKLOOPINIT warnings. Below is a patch to the t_unroll_signed regression test that illustrates what I saw.
--- t_unroll_signed.v 2008-06-09 19:17:16.000000000 -0500
+++ t_jce_unroll.v 2011-03-10 14:50:02.000000000 -0600
@@ -118,6 +118,36 @@
if (total != -28) $stop;
end
//===
+ 10: begin
+ // mostly cover a small index
+ total = 0;
+ for (i3=0; i3<3'd7; i3=i3+3'd1) begin
+ total = total - {29'd0,i3} -1;
+ dly_to_insure_was_unrolled[i3[0]] <= 0;
+ end
+ if (total != -28) $stop;
+ end
+ //===
+ 11: begin
+ // mostly cover a small index
+ total = 0;
+ for (i3=3'd0; i3<7; i3=i3+3'd1) begin
+ total = total - {29'd0,i3} -1;
+ dly_to_insure_was_unrolled[i3[0]] <= 0;
+ end
+ if (total != -28) $stop;
+ end
+ //===
+ 12: begin
+ // mostly cover a small index
+ total = 0;
+ for (i3=3'd0; i3<3'd7; i3=i3+1) begin
+ total = total - {29'd0,i3} -1;
+ dly_to_insure_was_unrolled[i3[0]] <= 0;
+ end
+ if (total != -28) $stop;
+ end
+ //===
19: begin
$write("*-* All Finished *-*\n");
$finish;
History
#1 Updated by Wilson Snyder over 2 years ago
- Category set to Unsupported
- Status changed from New to Resolved
- Assignee set to Wilson Snyder
Thanks for the good test.
This wasn't really intentionally unsupported, but as you surmised a side effect of width problems so never uncovered before.
Fixed in git for 3.812+.
![[logo]](/img/veripool_small.png)