| (* top *) |
| module test21b #(parameter width=130, depth=4) (input clk, input [width-1:0] i, input e, output q); |
| reg [depth-1:0] int; |
| |
| genvar d; |
| for (d = 0; d < depth; d=d+1) |
| initial int[d] <= ~(d % 2); |
| |
| if (depth == 1) begin |
| always @(negedge clk) if (e) int <= ~^i[width-1:0]; |
| assign q = int; |
| end |
| else begin |
| always @(negedge clk) if (e) int <= { int[depth-2:0], ~^i[width-1:0] }; |
| assign q = int[depth-1]; |
| end |
| endmodule |
| |
| `ifndef _AUTOTB |
| module __test ; |
| wire [4095:0] assert_area = "cd test21b; select t:SRL* -assert-count 0; select t:FD* -assert-min 20"; |
| endmodule |
| `endif |