FPGA 可以支持具有超過 2000 萬個等效門、處理器平臺和一系列通信、數(shù)字信號處理 (DSP) 和其他功能塊的設(shè)計(jì)。這些設(shè)備與過去的簡單可編程芯片相去甚遠(yuǎn),過去設(shè)計(jì)人員可以快速將幾千個邏輯門加載到 FPGA 中并立即看到它們運(yùn)行。今天的設(shè)備需要一個全面的驗(yàn)證策略,就像 ASIC 一樣詳盡。
傳統(tǒng)FPGA驗(yàn)證
早期的 FPGA 設(shè)計(jì)流程包括輸入門級原理圖設(shè)計(jì),將其下載到測試板上的設(shè)備上,然后使用真實(shí)測試數(shù)據(jù)驗(yàn)證整個系統(tǒng)。即使只有幾千個門,很明顯,在下載之前對設(shè)計(jì)進(jìn)行某種形式的仿真提供了一種通過早期檢測解決問題的更簡單、更快捷的方法。
隨著 FPGA 技術(shù)的改進(jìn),更先進(jìn)的設(shè)計(jì)技術(shù)是不可避免的。與 ASIC 設(shè)計(jì)類似,硬件描述語言 (HDL) 的使用變得司空見慣,并且設(shè)計(jì)的黃金表示從門轉(zhuǎn)移到了寄存器傳輸級 (RTL) 代碼。高級仿真用于在綜合之前對設(shè)計(jì)進(jìn)行徹底的功能驗(yàn)證,如今,所有高級 ASIC 功能驗(yàn)證技術(shù)也用于 FPGA RTL 代碼。
然而,綜合后的 FPGA 驗(yàn)證是另一回事。
依賴于制造的驗(yàn)證
ASIC 和定制 IC 制造成本高、耗時(shí)且風(fēng)險(xiǎn)大。這導(dǎo)致了嚴(yán)格的簽核過程,最終設(shè)計(jì)以多種方式進(jìn)行測試,以確保其正確性。此外,硬件仿真通常用于大型 IC,以使用真實(shí)數(shù)據(jù)和/或?qū)⒃谏a(chǎn)中運(yùn)行的軟件進(jìn)一步測試設(shè)備。
當(dāng)然,F(xiàn)PGA 是不同的。由于 FPGA 可能會根據(jù)需要多次快速更新新設(shè)計(jì)代碼以使其正確,因此似乎沒有必要進(jìn)行詳盡的簽核和單獨(dú)的仿真。
FPGA 的一個特別有用的特性是快速原型設(shè)計(jì)的能力。事實(shí)證明,這對于高速驗(yàn)證非常寶貴,F(xiàn)PGA 甚至被用于針對其他 IC 類型的原型設(shè)計(jì)。事實(shí)上,由于這一特性,一些仿真器將 FPGA 作為其核心技術(shù)。
過去,假設(shè)對于大型 FPGA,對 RTL 代碼進(jìn)行功能測試并對原型設(shè)備本身進(jìn)行最終檢查就足夠了。然而,現(xiàn)在正在使用具有數(shù)百萬個等效門的 FPGA,新的設(shè)計(jì)流程要求改變了這種情況。
大型 FPGA 設(shè)計(jì)流程問題
可以將兩種類型的硬件錯誤引入 IC,包括 FPGA。在功能驗(yàn)證期間消除了人為錯誤造成的設(shè)計(jì)錯誤。另一方面,系統(tǒng)性問題是由自動化設(shè)計(jì)改進(jìn)工具鏈引入的,通常不會通過功能驗(yàn)證過程進(jìn)行檢查。如果它們進(jìn)入最終設(shè)備,它們可能很難被發(fā)現(xiàn)和損壞。
高質(zhì)量的 FPGA 解決方案依賴于工具鏈的有效性,尤其是綜合和布局布線 (P&R) 功能提供的優(yōu)化。寄存器與可用寄存器間邏輯的比率是固定的,如果該比率在設(shè)計(jì)代碼中不平衡,則允許浪費(fèi)矩陣的部分。因此,觸發(fā)器位置相對于邏輯門發(fā)生變化的順序優(yōu)化是重要的 FPGA 綜合和 P&R 能力(圖 1)。
圖 1:基本 FPGA 設(shè)計(jì)。
這些要求促使 FPGA 供應(yīng)商投資于復(fù)雜的、最先進(jìn)的綜合技術(shù)。為了設(shè)計(jì)出最高質(zhì)量的設(shè)計(jì),在這些工具中采用了極其積極的優(yōu)化,這是整個 FPGA 設(shè)計(jì)結(jié)果質(zhì)量 (QoR) 的關(guān)鍵驅(qū)動因素。
對于較小的 FPGA,由 RTL 代碼細(xì)化過程導(dǎo)致的系統(tǒng)性錯誤相對不常見,并且會在硬件內(nèi) FPGA 的最終測試期間發(fā)現(xiàn)。對于利用現(xiàn)代設(shè)計(jì)流程的大型 FPGA,這種假設(shè)已被證明是有缺陷的,并可能導(dǎo)致嚴(yán)重的設(shè)計(jì)問題。
系統(tǒng)性錯誤的等價(jià)檢查解決方案
采用積極優(yōu)化的綜合和 P&R 工具的組合容易出現(xiàn)系統(tǒng)錯誤。因?yàn)檫@些工具對 RTL 代碼中看似微小的差異很敏感,所以不可能測試每個設(shè)計(jì)和工具優(yōu)化組合。因此,通過提高優(yōu)化級別并檢查以確保不會為特定設(shè)計(jì)引入系統(tǒng)錯誤,可以獲得最佳結(jié)果。
由于系統(tǒng)設(shè)計(jì)問題的性質(zhì),在大型 FPGA 中測試門級設(shè)計(jì)表示已成為一項(xiàng)關(guān)鍵要求。系統(tǒng)性問題可能發(fā)生在 FPGA 中與正在開發(fā)的設(shè)計(jì)部分幾乎沒有關(guān)系的任何地方。它們通常會產(chǎn)生意外行為或由不尋常的極端情況觸發(fā),從而使驗(yàn)證測試的創(chuàng)建變得復(fù)雜且耗時(shí)。它們對調(diào)試很煩人,因?yàn)橥ǔ1仨氃趲缀鯖]有關(guān)于問題根源的信息的情況下檢查整個設(shè)計(jì)。最糟糕的是,他們可以輕松地將其制成最終產(chǎn)品,從而導(dǎo)致后期制作重新旋轉(zhuǎn)。
用于 ASIC 設(shè)計(jì)的基于形式驗(yàn)證的等效檢查 (EC) 將 RTL 代碼與派生的門級等效代碼進(jìn)行了詳盡的比較,特別針對系統(tǒng)問題(圖 2)。由于 RTL 代碼已經(jīng)過全面驗(yàn)證,因此整體解決方案代表了保證設(shè)計(jì)功能的最有效方式。
圖 2:等價(jià)檢查必須支持順序優(yōu)化。
對于 FPGA 設(shè)計(jì),需要一種能夠支持最新 FPGA 綜合工具利用的高級順序優(yōu)化的新型 EC。由于 FPGA 設(shè)計(jì)流程在邏輯設(shè)計(jì)空間內(nèi)移動鎖存器,標(biāo)準(zhǔn)等效性檢查無法輕松地將 RTL 寄存器映射到門觸發(fā)器。這可以通過利用更常見的與屬性檢查相關(guān)的高級形式技術(shù)來解決,例如,OneSpin 的 360 EC-FPGA 中使用的 EC 工具的一項(xiàng)新的重要功能。這是從 FPGA 設(shè)計(jì)中有效消除系統(tǒng)錯誤的絕對要求。
在 FPGA 流程中使用 EC 有以下好處:
確信在最終 FPGA 測試中觀察到的任何問題都與設(shè)計(jì)相關(guān),并且不是系統(tǒng)性的,從而推動了更快、更輕松的調(diào)試過程。
消除了創(chuàng)建一系列復(fù)雜測試以針對系統(tǒng)錯誤或嘗試預(yù)測系統(tǒng)錯誤故障條件的耗時(shí)需求。
確信最終設(shè)計(jì)中不存在系統(tǒng)性、極端情況錯誤,確保經(jīng)過驗(yàn)證的 RTL 代碼和門級最終設(shè)計(jì)之間的一致性。
有信心利用可用的最激進(jìn)的優(yōu)化,而不必?fù)?dān)心引入錯誤,從而實(shí)現(xiàn)最高質(zhì)量的設(shè)計(jì)。
EC 的使用直接關(guān)系到最終設(shè)計(jì)質(zhì)量、可靠性、設(shè)計(jì)進(jìn)度和工程效率。毫不奇怪,全球許多使用大型 FPGA 的電子公司都在使用它。
FPGA實(shí)現(xiàn)驗(yàn)證
隨著 FPGA 變得越來越大和越來越復(fù)雜,它們的設(shè)計(jì)和功能驗(yàn)證趨向于 ASIC。在現(xiàn)代 FPGA 設(shè)計(jì)流程的先進(jìn)性的推動下,這種趨勢現(xiàn)在正在擴(kuò)展到實(shí)現(xiàn)驗(yàn)證領(lǐng)域。EC 現(xiàn)在是該流程的必要組成部分,保留了 FPGA 生產(chǎn)過程中的固有效率。
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601232 -
asic
+關(guān)注
關(guān)注
34文章
1183瀏覽量
120221
發(fā)布評論請先 登錄
相關(guān)推薦
評論