在主机方式下,完成通讯启动和地址信号发送后便开始准备接收数据。每接收一个字节后要发出应答信号,产生一个负脉冲作为中断请求信号输出给处理器。若此时系统忙,则拉低SCL电平迫使发送机进入等待状态。从机方式下的接收与主机方式下一样。VHDL描述如下:
PROCESS(SDA1)
SACK:='0';
FULL1:='0';
STP:='0';
INTQ:='1';
IF(CSTA='1' AND ADDOK='1')THEN
IF(SCL'1'EVENT AND SCL1='0')THEN
……——接收数据,串入并出移位(略)
FULL1:='1';
END IF;
END IF;
IF(FULL1='1')THEN
IF(RD'EVENT AND RD='1'AND
SCL1'EVENT AND SCL1='0 AND
BUSY='0')THEN
SDA1:='0';
FULL:='0';
INTQ:='0';
ELSE
SDA1:='1';
IF(CLK1'EVENT AND CLK='0' AND FULL1='0')THEN
IF(CLK1COUNT'20')THEN
INTQ:='1';
CLK1COUNT:='0';
ELSE
CLK1COUNT:=CLK1COUNT+1;
END IF;
END IF;
IF(SLAVE='1' AND SCL='1' AND SDA 'EVENT AND SDA='1')THEN
STP:='1';
CSTA:='0';
END IF;
END IF;
END PROCESS;
有高手能帮我把它转换成verilog语言吗?小弟谢谢各位了