altera fpga 约束

以下描述fpga约束,与asic可能有少量差异。

1)基准时钟create_clock  -add 多个晶振驱动一个时钟输入脚

altera fpga 约束_第1张图片

2)虚拟时钟 create_clock

   作用:

     用于约束input 和output。虚拟时钟,它为外部寄存器提供时钟驱动源,对fpga内部不起作用。它的频率设置和fpga内部基准时钟一样的频率。

     写法和create_clock一样,只是没有get_ports。

altera fpga 约束_第2张图片

3)随路时钟约束

   随路时钟,因为fpga内部接口使用的时钟和随路时钟,是一个。所以约束不能再使用虚拟时钟。否则,可能导致timing ,launch 和latch 不能正确识别。

4)pll 约束

  creat_generated_clocks 和drive_pll_clocks 两种方法

create_generated_clocks   -source  可以使用pll输入的pins 或输入基准时钟(使用get_ports clk)。

altera fpga 约束_第3张图片

使用pll的输入pins

altera fpga 约束_第4张图片

    约束中可以使用get_registers。设计中存在LVDS or serdes 时,altera推荐使用drive_pll_clocks。

   drive_pll_clocks

或   drive_pll_clocks  create_based_clocks

5)drive_clocks

   自动约束。timequest检测到设计没约束时,会自动约束。但项目完毕后最好不要使用该命令。因为设计中存在多个时钟时,drive_clocks会将多个时钟约束成同一个频率。

6)set_clock_groups    -exclusive 或asynchronous

   timequest默认所有时钟是相关的,除非说明。

 多个时钟源驱动同一个引脚,-exclusive 表示:两个时钟源不会同时有效。

altera fpga 约束_第5张图片

 

你可能感兴趣的:(altera fpga 约束)