怎么對ZYNQ的FCLK做時鍾組約束


前言

對於包含PS和PL的設計,兩者的數據交互PL必然會用到PS端的時鍾。

對於FCLK(PS端時鍾輸入到PL端)的約束,此時鍾的基礎約束已在IP中產生。以下想約束其異步時鍾的時鍾組特性。

注意事項:FCLK的名字在綜合時不可見,在適配階段才可見,所以對於約束文件的屬性需要選擇只在適配階段有效,否則綜合時報警告(感覺無傷大雅)。

但PL中又有別的時鍾,與FCLK是異步的,而且這些時鍾之間並不需要進行時序分析。

則有兩種選擇,(1)約束false路徑。但時鍾之間的路徑是雙向的,則需要正着約束一下,反着也要約束,比較麻煩。

       (2)使用clock group約束。可以划分時鍾域,時序分析只會分析時鍾域中的情況,不會分析跨時鍾域部分。

而跨時鍾域部分通常由開發者代碼保證不會產生亞穩態。

 

流程

(1)首先我們並不清楚fclk在綜合編譯后叫啥名字,所以首先就是需要獲取fclk名字。

打開適配后的設計,點擊編輯時序約束。

 

找尋時鍾。

在下圖中點擊Find查找所有時鍾,左下角就會顯示出時鍾名,添加到右側,就得到了command中的名字。當然也可直接使用圖形工具進行相應的約束操作。

 

 

 

約束語句如下:三個時鍾組互不相關,跨時鍾域處理需要代碼保證。

set_clock_groups -async -group [get_clocks -include_generated_clock i_clk] \

-group [get_clocks -include_generated_clock i_adc_dclk_p] -group [get_clocks clk_fpga_0] 

含義說明:i_clk和i_adc_dclk_p調用了兩個不同的pll,兩者的輸出時鍾不曉得名字就可以用上述語法進行約束。

(2)設置時序約束文件只在適配階段才起作用。

 

 

 (3)重編譯檢查勞動成果。對時鍾相關性進行分析,可以看到異步路徑已經被STA忽略。

 

 

以上。


免責聲明!

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



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