level 1
Mr丶老虫☞🐭
楼主
always@(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
begin
tx_data_ready <= 1'b0;
end
else if(state == S_IDLE)
if(tx_data_valid == 1'b1)
tx_data_ready <= 1'b0;
else
tx_data_ready <= 1'b1;
else if(state == S_STOP && cycle_cnt == CYCLE - 1)
tx_data_ready <= 1'b1;
end
这是串口通信发送模块中的一段代码,不太明白这里的valid和ready为什么要这样设置,valid和ready要同时有效才能发送数据,感觉这样不是一直是相反的吗?



2019年12月16日 00点12分
1
begin
if(rst_n == 1'b0)
begin
tx_data_ready <= 1'b0;
end
else if(state == S_IDLE)
if(tx_data_valid == 1'b1)
tx_data_ready <= 1'b0;
else
tx_data_ready <= 1'b1;
else if(state == S_STOP && cycle_cnt == CYCLE - 1)
tx_data_ready <= 1'b1;
end
这是串口通信发送模块中的一段代码,不太明白这里的valid和ready为什么要这样设置,valid和ready要同时有效才能发送数据,感觉这样不是一直是相反的吗?


