教训是切记不要让综合工具猜测如何实施代码的关键部分。即使综合后的逻辑碰巧达到您的预期,在综合工具进入新版本时情况也有可能发生改变。
应当明确定义您的I/O逻辑和所有关键逻辑。以下VHDL代码显示了如何采用Xilinx® IOBUF原语对I/O缓冲器进行隐含定义。另外需要注意的是,采用相似方式明确定义缓冲器的所有电气特性。
sda_buff: IOBUF
g e n e r i c m a p ( I O S TANDARD =>
"LVCMOS25",
IFD_DELAY_VALUE => "0", DRIVE =>
12,
SLEW => "SLOW")
port map(o=> data_out, io=> sda,
i=> data_in, t=> enable_in);
图 2 - 用一个VHDL代码转换明确定义I/O逻辑和关键逻辑,我们已完全在I/O缓冲器内部实施了双向I/O
|