最常用的物理约束是 I/O 引脚布局和与 I/O 引脚有关的参数定义,例如标准驱动强度。不过,还有其它类型的物理约束,包括布局、布线、I/O 和配置约束等。布局约束能够定义单元的位置,而布线约束可用来定义信号的布线。I/O 约束可用来定义 I/O 位置及其参数。最后,配置约束可用来定义配置方法。
同样,也有一些约束不属于这几组约束。Vivado 设计套件包含三种这样的约束,它们主要用于网表中。
• DONT_TOUCH – 该约束可用来阻止优化,这样当实现安全关键型或高可靠性系统时该约束会非常有用。
• MARK_DEBUG – 该约束可用来保存 RTL信号,以便随后用于调试。
• CLOCK_DEDICATED_ROUTE – 该约束可用来识别时钟布线。
最常用的约束与 I/O 布局和 I/O 的配置有关。将 I/O 放在 FPGA 上,需要使用布局约束找到物理引脚,使用 I/O 约束配置 I/O 标准和斜率等 I/O 属性。
现代化的 FPGA 支持多种单端和差分 I/O 标准。这些均可通过 I/O 约束来进行定义。不过,您必须确保遵守 I/O Banking 规则,这取决于最后的引脚布局。