FPGA基础资源之IOB的应用
1.应用背景
在我们做时序约束时,有时候需要对FPGA驱动的外围器件进行input_delay/output_delay进行约束。不知道,大家有没有被以下这种类似的现象折磨过。你好不容易约束通过的工程,仅改动了个标点符号,或者其他不相关模块改动一丢丢。编译出来的工程时序就不过了。
碰到上述的现象,我觉得可能的原因有以下几种:1.时钟频率确实已经到极限了。2.器件的资源利用率已经达到瓶颈,软件已经尽力去优化了。
针对原因2,除了处理好跨时钟域等问题以外,我们通常会从整体上,去评估模块的布局是否合理,是否还有值得优化的空间。又或者针对关键的路径/模块,利用Pb_lock等技术,划分出某一区域,有限满足关键模块的布线等等手段。本文要介绍的IOB,针对外围器件input/output delay约束,有很好的提升效果。
2.什么是IOB
xilinx FPGA的基本资源一般包括可编程IO,IOB,CLB,BRAM,DCM,DSP等资源,某些器件还会集成一些特殊的硬核,例如GT、MIG等。其中IOB就是input/output buffer。可编程IO的作用就是完成信号的采集和输出,引脚可以配置支持不同电气特性,上拉下拉或三态,差分或单端。