The dot/dash ratio can be different from usual 1:3.
parameter COUNT_DOT = 32'h0010_0000; parameter COUNT_DASH = 32'h0040_0000; parameter COUNT_SPACE = 32'h0010_0000; // if ( shift_reg [5] ) begin count_max <= COUNT_DASH; count <= 32'h0000_0000; r_state <= 4'b0001; // next state is DASH end
The state transition becomes simpler in this way.
The figure is from the very famous paper by Shannon.