FPGA多時鍾處理應用


FPGA項目設計中,通常會遇到多時鍾處理。即一個PLL輸出多個時鍾,根據條件選擇合適的時鍾用作系統時鍾。
方案一:

外部晶振時鍾進入PLL,由PLL輸出多個時鍾,MUX根據外部條件選擇時鍾輸出做為系統使用。

方案在時鍾頻率比較低的情況下是可行的。設計時注意MUX使用組合邏輯實現的,注意case語句中default選項必須有輸出,否則會出現鎖存器。

當輸出時鍾頻率較高時,這種方案的時序約束就比較麻煩。除了使用creat_clock命令約束PLL輸入時鍾,使用creat_generate_clock約束PLL輸出時鍾外,還要根據PLL輸出的多個時鍾之間的關系,使用set_clock_groups約束。set_clock_groups:

    • asynchronous表示時鍾同時有效,但沒有相位關系。
    • exclusive 表示時鍾是互斥的
    • group,group之內的時鍾相關,group之間的時鍾互不相關。

這種設計使得時鍾約束變得繁瑣,時序變得緊張。

同時PLL輸出時鍾后使用MUX進行選擇輸出,會增加時鍾布線延時,高速情況下並不可靠。


 

時序是設計出來的,不是約束出來的。

設計出好的時序一般不需要約束。


方案二:

在高速情況下,應該更改設計,提高電路速度。ALTERA FPGA提供PLL重配功能。可根據條件對PLL進行重配。

調用ALTERA提供的PLL重配模塊,根據官方資料,可以動態的對PLL重新配置。這樣PLL輸出時鍾直接驅動系統模塊,將多時鍾域轉換到單時鍾域上。不需要添加附加約束電路都可以正常工作。


方案三:

第三種方案,這里稍微介紹一下。

 

PLL輸出一個高頻時鍾HCLK,其他時鍾作為HCLK的使能端,用HCLK采樣其他時鍾,這也是一個可以考慮的方案,這個方案也不會造成多時鍾處理及約束。但此方案也有限制,要求HCLK時鍾頻率至少是PLL輸出其他時鍾最高頻率的兩倍以上,這樣才能滿足采樣定理,即奈奎斯特定理。在時鍾頻率比較低時,亦可以考慮此方案。


       文章來源:FPGA極客空間微信公眾號

版權所有權歸卿萃科技,轉載請注明出處。

作者:卿萃科技ALIFPGA

原文地址:bbs.alifpga.com


 

                  掃描二維碼關注FPGA極客空間。


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM