| // coverage for repeat loops outside of constant functions |
| |
| module counter1(clk, rst, ping); |
| input clk, rst; |
| output ping; |
| reg [31:0] count; |
| |
| always @(posedge clk) begin |
| if (rst) |
| count <= 0; |
| else |
| count <= count + 1; |
| end |
| |
| assign ping = &count; |
| endmodule |
| |
| module counter2(clk, rst, ping); |
| input clk, rst; |
| output ping; |
| reg [31:0] count; |
| |
| integer i; |
| reg carry; |
| |
| always @(posedge clk) begin |
| carry = 1; |
| i = 0; |
| repeat (32) begin |
| count[i] <= !rst & (count[i] ^ carry); |
| carry = count[i] & carry; |
| i = i+1; |
| end |
| end |
| |
| assign ping = &count; |
| endmodule |
| |