在状态机中我们经常使用独热码,独热码的一个优势就是可以非常方便的取出一位就可以表示状态,免除复杂的比较电路,下面的代码定义了状态和状态信号提取. reg [6:0] txresp_state;
localparam RD_FIFO = 8'h01; localparam START_RESP = 8'h02; localparam WAIT_DATA1 = 8'h04; localparam WAIT_DATA2 = 8'h08; localparam SEND_FIRST = 8'h10; localparam SEND_MAX = 8'h20; localparam SEND_LAST = 8'h40;
// State machine output assignments
assign rd_fifo = txresp_state[0]; assign start_resp = txresp_state[1]; assign wait_data1 = txresp_state[2]; assign wait_data2 = txresp_state[3]; assign send_first = txresp_state[4]; assign send_max = txresp_state[5]; assign send_last = txresp_state[6];
|