+ TX_MORE_BYTES: begin
+ if(tx_clk_divider) begin end
+ else if(step == 0) begin
+ clk_out <= 0;
+ step <= 1;
+ end else if (tx_bits_remaining == 0) begin
+ if(step == 1) begin
+ data_out <= 0; // really should be z, not 0
+ step <= 2;
+ end else if(step == 2)begin
+ clk_out <= 1;
+ step <= 3;
+ end else begin
+ step <= 0;
+ tx_bits_remaining <= 8;
+
+ if(more_bytes_idx == more_bytes)
+ tx_state <= TX_STOP;
+ more_bytes_idx <= more_bytes_idx + 1;
+ end
+ end else if(step == 1) begin
+ data_out <= mb_in[tx_bits_remaining - 1];
+ step <= 2;
+ end else if(step == 2) begin
+ clk_out <= 1;
+ step <= 3;
+ end else begin // step == 3
+ tx_bits_remaining = tx_bits_remaining - 1;
+ step <= 0;
+ end
+ end // case: TX_MORE_BYTES
+