| module forloops01 (input clk, a, b, output reg [3:0] p, q, x, y); |
| integer k; |
| always @(posedge clk) begin |
| for (k=0; k<2; k=k+1) |
| p[2*k +: 2] = {a, b} ^ {2{k}}; |
| x <= k + {a, b}; |
| end |
| always @* begin |
| for (k=0; k<4; k=k+1) |
| q[k] = {~a, ~b, a, b} >> k[1:0]; |
| y = k - {a, b}; |
| end |
| endmodule |
| |
| module forloops02 (input clk, a, b, output reg [3:0] q, x, output [3:0] y); |
| integer k; |
| always @* begin |
| for (k=0; k<4; k=k+1) |
| q[k] = {~a, ~b, a, b} >> k[1:0]; |
| end |
| always @* begin |
| x = k + {a, b}; |
| end |
| assign y = k - {a, b}; |
| endmodule |