/* 4ビット・シフト・レジスタ(同期リセット) シフト演算、または連接演算による記述が可能 */ module shift4( ck, res, en, si, q ); input ck, res, en, si; output [3:0] q; reg [3:0] q; always @( posedge ck ) begin if ( res ) q <= 4'h0; else if ( en ) begin q <= q << 1; q[0] <= si; // q <= { q, si }; end end endmodule