aboutsummaryrefslogtreecommitdiff
path: root/src/init.sv
blob: ae42634ef56d7aa37bf8a479e048acbb3d918b27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module init(clk, rst_n, en, rdy, addr, wrdata, wren);

	input logic clk, rst_n, en;
	output logic rdy, wren;
	output logic [7:0] addr, wrdata;

	always_ff @(posedge clk) begin
		if (~rst_n) begin
			rdy <= 1'b1;
			wren <= 1'b0;
			addr <= 8'b0;
			wrdata <= 8'b0;
		end else if (rdy && en) begin
			rdy <= 1'b0;
			wren <= 1'b1;
		end else if (wren && ((wrdata + 1'b1) !== 8'b0)) begin
			addr <= addr + 1;
			wrdata <= wrdata + 1;
		end else if (wren && ((wrdata + 1'b1) == 8'b0)) begin
			rdy <= 1'b1;
			wren <= 1'b0;
			addr <= 8'b0;
			wrdata <= 8'b0;
		end
	end

endmodule: init