引言
現場可編程門陣列(FPGA)市場在過去的幾年中發生了很大的變化。硅芯片工藝技術的進步推動了FPGA密度和速率的增長。結果,以前面向ASIC或者ASSP的大量高性能商業應用現在可以在FPGA中成功實現,并且效率很高,非常經濟。為達到目標性能,FPGA設計工程師采用了新的時鐘規范(通過時鐘復用設計方案),而傳統的FPGA時序分析工具很難分析其設計接口(例如源同步時鐘)。
本文介紹FPGA設計軟件必須滿足的新要求,軟件必須高效迅速的進行時序分析,達到時序逼近。在提高效能方面,包括采用業界標準的時序分析方法,本文將闡述業界標準Synopsys設計約束(SDC)格式的幾個實際應用案例。由于將時序分析引擎和布局布線適配引擎整合在一起可以進一步提高效率,Altera根據這些要求開發并實現了Quartus Ⅱ TimeQuest時序分析儀為SDC提供自然的支持。
自然的SDC支持+時序引擎集成=更高效率時序分析
靜態時序分析是對設計的時序性能進行分析、調試和驗證的方法。它與功能驗證(一般是仿真或者原型開發)相結合來驗證設計運行是否正確。進行綜合或者布局布線(可以包括物理綜合)之后,工程師運行時序分析,檢查設計編譯是否會導致時序違規。
SDC格式是一種業界標準,用于描述設計的時序約束。隨著大量的商業應用從ASIC轉向FPGA,越來越多的ASIC設計工程師采用基于FPGA的設計軟件和技術來開發新的芯片和產品。這些工程師已經非常熟悉基于SDC的時序分析方法。在FPGA設計中重新應用的許多模塊通常已經采用了這些約束,因此,再次使用相同的時序約束具有明顯的效能優勢。由FPGA設計軟件時序分析工具完成SDC至約束格式轉換過程,不論是手動還是自動進行,在轉換中避免出現差錯,能夠進一步節省時間。

SDC時序分析的另一關鍵特性是采用工具命令語言(Tcl)并按照Tcl語法規則來描述約束。因此,腳本可以充分利用基于SDC的時序分析,幫助設計人員自動完成與時序相關的任務。在結構化ASIC器件(例如,AlteraHardCopy Ⅱ器件系列)設計中,這就是為什么SDC時序分析是最佳方法的原因之一。此外,對于含有源同步接口(例如DDR和DDR2)和時鐘復用設計結構的設計,采用SDC格式可以方便的表達復雜的時序約束。
這些優勢相結合后,Quartus Ⅱ設計軟件用戶從原理圖輸入轉換到Verilog和VHDL等硬件描述語言時,可以顯著提高效率。SDC格式受到歡迎的原因之一在于其直觀性和易于學習。圖1所示是這些約束的基本例子。
鎖相環(PLL)為FPGA設計的輸出寄存器提供時鐘信號。PLL輸入是時鐘信號SYSCLK。電路板布局分析顯示FPGA輸出到達外部寄存器(可能在另—FPGA內部)的時間為lns。這一“數據達到時間”確保FPGA驅動的器件能夠正常工作。
首先可以通過編寫時鐘定義來表達時序約束,以名為create_clock的SDC來實現:
采用這一SDC,設計人員必須規定PLL的輸出也是一個時鐘,它由來自[get_orts CLK_IN]的輸入時鐘產生。
采用命令set_ou_ut_delay來表達電路板輸出和目的器件之間的延時:
這一命令是指兩個器件共同使用的同一SYSCLK時鐘。這個例子假定時鐘和數據之間沒有偏移(在圖1中,這是“time A”和“time B”之間的差,“time”使出現一些偏移,問題也不大。但是,高頻工作時,偏移是妨礙同步設計的主要因素。不管頻率如何,偏移對于保持檢查也非常重要。保證“time A”和“time B”相同,從而消除了數據和時鐘信號之間的偏移——這在實際中很難實現,并且代價很高。

為了克服同步接口的這種頻率限制,設計人員開始采用“源同步”接口結構。在這些接口中,數據和時鐘信號由主機器件“源出”,因此,在電路板上傳輸到達目的器件的過程中,它們經歷了相同的物理效應。這樣實際上種情況下,PLL(PLLCLK)的輸出也被用于從外部器件中“源出”時鐘。其輸出延時要求為2.3ns。
如前所述,采用SDC結構creare_clock來定義時鐘,規定PLL輸出是衍生或者生成時鐘。
利用SDC,可以采用器件的另一引腳作為參考來指定信號輸出延時。
這一例子顯示了ASlC功能FPGA時序分析儀自然SDC支持的重要性。對SDC的支持為工程師分析高性能FGPA設計時序分析提供了完整的高級約束控制。

時序分析工具的另一關鍵軟件要求是靜態時序分析與布局布線和適配引擎能夠有效集成,以便獲得更好的結果質量(QoR)。布局布線和適配引擎與時序引擎相集成的一個主要優勢是簡化了設計關鍵路徑的診斷和調試。集成使內部節點保持“可觀察性”,方便設計工程師追蹤節點至最初的時序約束。缺乏集成性通常會導致最初的網表和綜合引擎產生的網表之間出現不匹配。
TimeQuest時序分析儀
TimeQuest時序分析儀為FPGA設計分析提供分析提供自然的SDC支持
隨著Quartus Ⅱ 6.O的發布,Altera引入了新的時序分析儀,旨在幫助需要設計復雜時鐘方案和源同步接口的FPGA設計人員,以及已經熟悉SDC格式的ASIC設計人員。Quartus Ⅱ設計人員用戶可以采用TimeQuest時序分析儀來分析上面的例子。
TimeQuest時序分析儀提供一個快速按需的交互式數據報告界面,幫助設計人員迅速分析關鍵路徑,只在需要時要求更詳細的時序分析,從而節省了時間。功能強大的圖形用戶界面(GUI)以直觀、易于理解的圖形格式來報告時序分析數據,完善了TimeQuest時序分析儀的快速按需數據報告功能,進一步提高了設計人員的效率。高級設計人員可以通過TCl界面來自由使用所有的TimeQuest功能。
TimeQuest GUI幫助完成設計時序約束任務。圖3顯示了設計人員怎樣利用TimeQuest時序分析儀來定義一個參考時鐘。可以采用相似的界面來定義輸入、輸出以及排除約束等其他的時序約束。
這些界面使Quartus Ⅱ用戶能夠利用SDC格式來編寫約束。由于能夠自然的支持SDC,TimeQuest用戶可以利用強大的業界標準時序分析方法,采用(并能夠重復使用)SDC和基干Tcl的腳本來進一步提高效率。已經非常熟悉SDC的設計人員可以直接在約束文什(*.sdc)中輸入時序約束和排除命令。對于這些設計人員,TimeQuest時序分析儀也支持功能強大的Tcl界面。采用這一工具,設計人員能夠自動重復時序分析任務,這有利于將ASIC設計導入到FPGA中。
規定好時序約束后,設計人員進行詳細的時序分析。TimeQuest GUI含有一個任務條,可以方便的訪問網表設置、時序報告生成等常見任務。任務條為靜態時序分析新手提供的工作流程闡明了在時序結束之前需要完成的過程。高級用戶也會發現這一任務條板很有用,因為它能夠訪問TimeQuest分析和報告功能。

TimeQuest時序分析儀為FPGA設計分析提供分析提供自然的SDC支持
TimeQuest時序分析儀具有快速交互式報告功能。在查看松弛報告時,設計人員可以查詢特殊關鍵路徑更詳細的信息。圖6顯示了查詢的結果。
在TimeQuest查看面板上,設計人員可以詳細了解所選定的松弛。通過餅形圖可以快速查看所產生的時序是來自邏輯(單元)還是互聯延時。然后,FPGA設計人員決定是進一步優化互聯延時,還是在出現較大內部延時的情況下,在設計編譯之前進行設計/結構修改。
可以通過集成平面布局圖來交叉探測時序分析儀所分析的全部信號,因此,查看邏輯模塊之間的互聯密度就可以分析潛在的布線擁塞。
結語
工藝技術的發展促進了FPGA廣泛應用,而這些應用領域以前完全由ASIC統治。為了滿足市場需求,達到目標性能,FPGA設計工程師采用了新的設計方式和復雜的時鐘方案,例如10Mbit、100Mbit和1Gigabit以太網中的時鐘復用等。此外,在設計源同步時鐘接口(例如DDR和DDR2接口所采用的)時,采用傳統的FPGA時序分析很難分析這些時鐘方案。在方法上,設計人員的效率取決于使用業界標準SDC格式來進行設計約束的能力。從技術觀點看,時序分析引擎必須能夠與綜合和布局布線集成到一起,具有功能強大的GUI,支持對關鍵路徑的快速訪問,確保快速可靠的時序逼近。
這些需求是TimeQuest時序分析儀產生和發展的推動力量,這一新的ASIC功能時序分析儀能夠自然的支持業界標準SDC格式。Quartus Ⅱ軟件從6.0訂購版開始提供該時序分析儀。設計人員采用TimeQuest時序分析儀可以在高端FPGA設計中進行高級時序驗證,迅速高效的達到并保持時序逼近。