@@ -28,25 +28,25 @@ parameter [1:0] READ_RAM = 2'b01; // Read RAM Data
2828parameter [1 : 0 ] SEND_BIT = 2'b10 ; // Send Data Bit
2929parameter [1 : 0 ] SEND_RST = 2'b11 ; // Send Reset Code
3030
31+ logic [1 : 0 ] ctl_sta;
32+
3133logic ram_rd_st;
3234logic ram_rd_done;
3335logic [31 : 0 ] ram_rd_q;
3436
3537logic [5 : 0 ] ram_rd_addr;
3638logic [23 : 0 ] ram_rd_data;
3739
38- logic [1 : 0 ] ctl_sta;
39-
4040logic [4 : 0 ] bit_sel;
4141logic [16 : 0 ] rst_cnt;
4242
4343wire 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 );
4948wire ram_next = (bit_sel == 5'd23 );
49+ wire ram_done = (ram_rd_addr == 6'h00 );
5050
5151wire rst_done = (rst_cnt[16 : 1 ] == rst_cnt_in);
5252
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
107107end
108108
0 commit comments