前面的部落格中,介紹了有關時序分析的基礎,光說不練可不行,接下來的部落格就對Vivado的時序分析工具操練一番。所使用的工程是一個以太網收發資料的工程。
1. 基準時鐘限制
基準時鐘,也就是有FPGA外部輸入到管腳進而進入FPGA内部的時鐘。通常需要對這個時鐘進行限制,編譯器才能識别出其周期是多少。限制基準時鐘,簡單來說,就是為了讓綜合工具知道輸入的驅動時鐘的周期等資訊。
這裡有一個已經綜合好的工程,目前沒有對輸入的以太網時鐘rgmii_rxc進行限制,可以看到目前時序資訊雖然沒有報錯。但是目前的工程的設計是不完整的。若打開時序分析工具,可以看到會有一些黃色的提示資訊,提示資訊表明目前沒有時鐘和内部端點沒限制。
此時對基準時鐘進行限制:
點選+号,可以建立一個時鐘,首先要輸入要限制的時鐘的名稱,然後要選中時鐘的源。在我這個工程中,有兩個以太網,每個以太網口都有一個輸入時鐘,首先找到rgmii_rxc0,然後設定其周期。
然後可以發現新增了兩條限制,儲存,就會把限制資訊添加到限制檔案中,這裡選中新增一個檔案,用于儲存時序相關的限制。
2. 生成時鐘限制
生成時鐘有多種,可以是由PLL分頻倍頻得到的,也可以是使用者自己分頻得到的時鐘。通過PLL生成的時鐘,就不需要添加生成時鐘限制了,但是其他方式生成的生成時鐘,就需要添加限制了。在這個工程中,以太網的輸出時鐘是通過ODDR原語輸出的。并沒有對其進行限制,若在将來要考慮output_delay時,沒有這個時鐘,就無法進行output delay的限制了,是以需要對這個生成時鐘進行限制。
對生成時鐘呢,限制方法,與上面的基準時鐘差不多。
生成時鐘的限制,需要知道生成時鐘的源時鐘和目的時鐘,本工程裡面的rgmii_txc是以太網輸出時鐘,直接就是由輸入的時鐘驅動的。
限制完成後的限制檔案。
添加完限制後,重新綜合,然後再次檢視時序報告,就可以看到更新後的時序報告。可以看到綜合後的結果與之前不同。可以看到,前面沒有添加限制的那些提示資訊已經沒有了,還剩下input delay和output delay沒有限制。
到這裡基準時鐘和生成時鐘就已經限制完成了。
3. 虛拟時鐘
虛拟時鐘一般用于系統同步的情況下,即整個系統是由同一個時鐘來驅動的,這樣在FPGA進行分析時,就不知道上遊晶片傳來的資料和時鐘之間的關系,是以需要添加一個虛拟時鐘來幫助分析這種情況。虛拟時鐘的限制與生成時鐘完全一緻,隻要不指定生成的源時鐘,就生成了一個虛拟時鐘的限制。
目前這個工程被我這麼搞了不能正常工作了,因為原來系統的時鐘rgmii_rxc是經過了PLL移相來采集資料,現在沒有移向,導緻我采集到的資料不對,整個系統就不能通信了,是以在之後的将解決這個問題。
參考:
V3學院資料