| module top | |
| #(parameter N=8) | |
| ( | |
| input wire clk, reset, | |
| input wire s_in, | |
| output wire s_out | |
| ); | |
| reg [N-1:0] r_reg; | |
| wire [N-1:0] r_next; | |
| always @(posedge clk, negedge reset) | |
| begin | |
| if (~reset) | |
| r_reg <= 0; | |
| else | |
| r_reg <= r_next; | |
| end | |
| assign r_next = {s_in, r_reg[N-1:1]}; | |
| `ifndef BUG | |
| assign s_out = r_reg[0]; | |
| `else | |
| assign s_out = 1'bZ; | |
| `endif | |
| endmodule |