今天在設計DE0-NANO的eeprom讀取及寫入程式。
出現了以下訊息:
Warning (18029): Output pin I2C_SDA driven by bidirectional pin cannot be tri-stated
我研究了一下,發現我把I2C_SDA寫在一個子模組下就會發生這個問題。
解決方法:
把三態閘的設定寫在DE0_NANO.v檔內(也就是TOP檔內)
DE0_nano.v
.....
....
inout I2C_SDA;
assign I2C_SDA = sdo ? 1'bz : 1'b0;
i2c_mod i2cmod(
....
.SDO(sdo),
.SDI(I2C_SDA)
);
//=====================================
SDO在i2c_mod內是output屬性,SDI是input屬性。
這樣設定就可以消掉上面的警告訊息了。