altera fpga 約束

以下描述fpga約束,與asic可能有少量差異。

1)基準時鐘create_clock  -add 多個晶振驅動一個時鐘輸入腳

2)虛擬時鐘 create_clock

   作用:

     用於約束input 和output。虛擬時鐘,它爲外部寄存器提供時鐘驅動源,對fpga內部不起作用。它的頻率設置和fpga內部基準時鐘一樣的頻率。

     寫法和create_clock一樣,只是沒有get_ports。

3)隨路時鐘約束

   隨路時鐘,因爲fpga內部接口使用的時鐘和隨路時鐘,是一個。所以約束不能再使用虛擬時鐘。否則,可能導致timing ,launch 和latch 不能正確識別。

4)pll 約束

  creat_generated_clocks 和drive_pll_clocks 兩種方法

create_generated_clocks   -source  可以使用pll輸入的pins 或輸入基準時鐘(使用get_ports clk)。

使用pll的輸入pins

    約束中可以使用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 表示:兩個時鐘源不會同時有效。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章