Skip to content

Commit 2ae358d

Browse files
committed
ws2812_ctl: code refactoring
1 parent efadb2f commit 2ae358d

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

rtl/ws2812_ctl.sv

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,25 @@ parameter [1:0] READ_RAM = 2'b01; // Read RAM Data
2828
parameter [1:0] SEND_BIT = 2'b10; // Send Data Bit
2929
parameter [1:0] SEND_RST = 2'b11; // Send Reset Code
3030

31+
logic [1:0] ctl_sta;
32+
3133
logic ram_rd_st;
3234
logic ram_rd_done;
3335
logic [31:0] ram_rd_q;
3436

3537
logic [5:0] ram_rd_addr;
3638
logic [23:0] ram_rd_data;
3739

38-
logic [1:0] ctl_sta;
39-
4040
logic [4:0] bit_sel;
4141
logic [16:0] rst_cnt;
4242

4343
wire ram_rd_en = (ctl_sta == READ_RAM);
4444

45-
wire bit_done = ram_rd_st | bit_done_in;
46-
wire bit_next = (ctl_sta == SEND_BIT) & bit_done;
45+
wire bit_next = ram_rd_st | bit_done_in;
46+
wire bit_done = (ctl_sta == SEND_BIT) & bit_next;
4747

48-
wire ram_done = (ram_rd_addr == 6'h00);
4948
wire ram_next = (bit_sel == 5'd23);
49+
wire ram_done = (ram_rd_addr == 6'h00);
5050

5151
wire rst_done = (rst_cnt[16:1] == rst_cnt_in);
5252

@@ -85,7 +85,7 @@ begin
8585
READ_RAM:
8686
ctl_sta <= ram_rd_done ? SEND_BIT : ctl_sta;
8787
SEND_BIT:
88-
ctl_sta <= (bit_done & ram_next) ? (ram_done ? SEND_RST : READ_RAM) : ctl_sta;
88+
ctl_sta <= (bit_next & ram_next) ? (ram_done ? SEND_RST : READ_RAM) : ctl_sta;
8989
SEND_RST:
9090
ctl_sta <= rst_done ? IDLE : ctl_sta;
9191
default:
@@ -98,11 +98,11 @@ begin
9898
ram_rd_addr <= ram_rd_done ? ram_rd_q[29:24] : ram_rd_addr;
9999
ram_rd_data <= ram_rd_done ? ram_rd_q[23:0] : ram_rd_data;
100100

101-
bit_sel <= (ctl_sta == SEND_BIT) ? bit_sel + (bit_done & ~ram_next) : 5'h00;
101+
bit_sel <= (ctl_sta == SEND_BIT) ? bit_sel + bit_next : 5'h00;
102102
rst_cnt <= (ctl_sta == SEND_RST) ? rst_cnt + 1'b1 : 17'h0_0000;
103103

104-
bit_rdy_out <= bit_next;
105-
bit_data_out <= bit_next ? ram_rd_data[5'd23 - bit_sel] : bit_data_out;
104+
bit_rdy_out <= bit_done;
105+
bit_data_out <= bit_done ? ram_rd_data[5'd23 - bit_sel] : bit_data_out;
106106
end
107107
end
108108

0 commit comments

Comments
 (0)