由于 Quartus® Prime 专业版软件 24.1 及更早版本存在一个问题,当通过 FPGA IO 路由 HPS I2C 总线时,您可能会看到该总线无响应。
要变通解决此问题,请通过快速时钟注册 SDA 和 SCL 的输出使能 (OE)。下面是一个实施示例:
注册hps_i2c*_scl_oe_reg ;
注册hps_i2c*_sda_oe_reg ;
始终 @ (posedge system_clk_100_internal) 开始
hps_i2c*_scl_oe_reg = hps_i2c*_scl_oe;
hps_i2c*_sda_oe_reg = hps_i2c*_sda_oe;
结束
分配 hps_i2c*_scl = hps_i2c*_scl_oe_reg ?1'b0: 1'bz;
分配 hps_i2c*_sda = hps_i2c*_sda_oe_reg ?1'b0: 1'bz;
该问题计划在 Quartus® Prime Pro Edition 软件的未来版本中修复。