/ 关于num 和 num-1的疑问
1 在接收模块中
always @ (posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
begin
rx_temp_data <= 8'd0;
num <= 4'd0;
rx_data_r <= 8'd0;
end
else if(rx_int)
begin
if(clk_bps)
begin
num <= num+1'b1;
if(num<=4'd8)
rx_temp_data[num-1]<=rs232_rx; //为什么用的是num-1
end
else if(num == 4'd9)
begin
num <= 4'd0;
rx_data_r <= rx_temp_data;
end
end
end
// 这里面用的是 rx_temp_data[num-1]<=rs232_rx; //为什么用的是num-1
2 在发送模块中 有如下代码
always @ (posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
begin
num <= 4'd0;
rs232_tx_r <= 1'b1; // 空闲电平
end
else if(tx_en)
begin
if(clk_bps)
begin
num <= num+1'b1;
rs232_tx_r<=tx_data[num]; // 这次为啥不用num-1了呢?
end
else if(num==4'd10)
num <= 4'd0;
end
end
// 为什么用的是 rs232_tx_r<=tx_data[num]; 而不是rs232_tx_r<=tx_data[num-1];