ハブ君の寝言

日記のような何か

シフトレジスタもどき

シフトさせまくって64bit分溜まったら吐き出す
吐き出すとき、Enableがたつ
使えるかどうかは、要確認

module Shift64 #(
	parameter DATA_WIDTH = 64,
	parameter LOG_WIDTH = 6
	)(
    input InData,
    output reg [(DATA_WIDTH-1):0] OutData,
    input CLK50M,
    output reg DataEnable
    );
	 
	reg [(DATA_WIDTH-1):0] Data;
	reg [(LOG_WIDTH-1):0] count;

initial count = 0;
initial Data = 0;
initial OutData = 0;
initial DataEnable = 0;

always @(posedge CLK50M) begin
	if(count != DATA_WIDTH) begin
		count <= count + 1'b1;
		Data[(DATA_WIDTH-1):0] <= {Data[(DATA_WIDTH-2):0],Data};
		DataEnable <= 0;
	end
	else begin
		OutData <= Data;
		count <= 0;
		DataEnable <= 1;
	end
end

endmodule