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
|