现在我正在尝试设置一个简单的I ^ 2C协议来与this PMOD进行交互。我是通过有限状态机来做到这一点的。我有几个问题,特别是在inout端口。也就是说,我知道我必须在相同的时钟周期内释放SDA并从中获取输入(。
我是否可以释放设置并在同一时钟脉冲上接收输入(这似乎不是一个好主意)?如果没有,我该如何调和呢?
CODE:
...
STATE_3: begin
if (SLAVE_ACK == 1) begin
NextState = STATE_Initial;
end else if (SLAVE_ACK == 0) begin
if (W == 1) begin
NextState = STATE_41;
end else begin
NextState = STATE_42;
end
end
end
...
//the state right before STATE_3 assigns SDA to either 0 or 1
...
STATE_3: begin
SLAVE_ACK = SDA;
end
...