ASIC原型驗證是整個驗證環節中非常重要的步驟之一,也是將ASIC的代碼移植到FPGA平臺上最重要的原因,本文章的意義在于:
對于系統構架師,將幫助他們在選擇商用模擬器還是自行設計方案之間做出更好的選擇;
對于邏輯工程師,他們能夠更好的將ASIC設計移植到FPGA原型驗證平臺中;
對于驗證工程師,其價值在于如何將現有的測試平臺移植到新的驗證環境中。
將ASIC設計移植到FPGA芯片中,對于大部分設計團隊來講都是巨大的挑戰。主要體現在:ASIC的設計一般都非常大,往往需要做多FPGA芯片劃分;需要支持足夠的處理性能;需要保證其功能的正確性;需要保證移植前后的功能具有等價性。
當時ASIC設計的移植還沒有出現‘原型驗證設計’這樣的方法學,但是整個移植的任務大致相似:邏輯資源和處理性能評估:選擇硬件模擬器或者原型驗證平臺;FPGA多芯片劃分;RTL源代碼修改;邏輯綜合和物理實現;驗證移植后的整個設計。圖1說明了整個驗證過程中的每一個環節。
移植過程的總體原則是盡量少地修改原始設計,以免產生新的問題。
資源評估
從任何一個角度來看,精確的資源評估都是ASIC移植工作的重點。首先它的結果將直接影響到硬件模擬器或者原型驗證平臺的選型,其次對于整個設計的多芯片劃分和成本都有直接的影響。資源估計過少,那么ASIC設計就不能完整的移植到FPGA中;而資源估計過多,則會導致毫無必要的成本開銷。
對于ASIC資源評估的不同方法。
性能評估
性能評估的結果,會直接影響驗證方案的選擇,對于大部分的設計來說,不可能期望ASIC設計在FPGA平臺上擁有相同的性能指標。除了FPGA內核本身帶來的性能降低之外,芯片與芯片之間的通信延遲也降低了整體的性能。如果一個平臺的性能指標能夠達到ASIC設計的幾分之一,那么這個方案就具有了可行性。但是如果只有原始性能的幾十分之一,很多驗證任務就無法完成。
在多核處理器的SOC芯片中,某些嵌入式操作系統的啟動時間甚至會高達5分鐘左右。如果驗證平臺的性能只有十分之一,那么就要耗費接近1小時,某些程度上還能接受。但是如果性能只有一百分之一,那么基本上要耗費半天來啟動這個操作系統。對于絕大部分的嵌入式系統的驗證來講,該方案將變的毫無可行性。
關于性能評估的內容。
硬件模擬器與原型驗證平臺
選擇硬件模擬器還是原型驗證平臺,對于驗證團隊來講一直都是長期而艱巨的任務。最終的選擇需要滿足所有的需求,例如資源容量、整體性能、系統成本、驗證范圍及能夠支持的工具等
FPGA多芯片劃分
ASIC設計所占用的資源一般非常大,常常需要劃分到多顆FPGA芯片中才能實現。簡單來說就是將ASIC設計的不同部分(一般是以功能模塊為劃分邊界)映射到不同的FPGA芯片中。劃分及優化的過程較為復雜,需要考慮到整個方案的系統成本、整體性能、資源容量、FPGA芯片之間如何互聯、劃分的復雜度等指標。
源代碼移植
雖然ASIC和FPGA都是使用相同的RTL編碼方式,但是將適合ASIC芯片的RTL源代碼移植到FPGA芯片中時,需要進行相當多的重編碼和優化工作。特別是ASIC設計中的時鐘樹結構,需要正確的分配到FPGA芯片的各種時鐘資源上,這將是一項非常大的挑戰。
同時,ASIC設計中的某些資源,例如晶體管、傳輸門、雙向信號甚至是模擬電路,在FPGA芯片內根本無法找到對應的結構,因此需要找到其他方式進行模擬(替代)。
幾乎所有的ASIC設計都會使用到各式各樣的IP核:從Synopsys Design Ware庫中的簡單功能模塊(大部分模塊都可以使用FPGA結構實現)復到復雜的存儲器控制器,PCIE,USB等總線子系統,以及CPU內核等。像Xilinx這樣的FPGA供應商能夠提供許多可替代的對應IP核,但并不是所有都可替代。
關于時鐘、鎖存器、存儲器、三態門、組合邏輯及不可綜合電路的移植。
邏輯綜合和物理實現
完成了代碼移植后,剩下的工作主要就是邏輯綜合和物理實現。其中包括解決由于ASIC和FPGA綜合工具的差異引起額問題,添加時序、資源、引腳約束、優化工具的參數設置,最終達到時序收斂。
雖然最新的FPGA工具和設計流程和ASIC很相似,但是一些根本性的差異所造成的問題還是需要工程師解決。通常,ASIC綜合工具所支持的Verilog語法要比FPGA綜合工具更加寬松,而且由于設計優化的目標不同,ASIC和FPGA綜合工具所支持的引導語句和工具選項也不盡相同。另外,無論是資源占用還是布線密度,ASIC工具需要處理的工作遠遠比FPGA復雜的多。在某些復雜的情況下,FPGA工具甚至會無法布局布線。因此某些情況下必須要修改RTL源代碼,甚至是重新規劃多芯片劃分方案。
驗證移植后的設計
驗證移植后的代碼是整個過程的最終環節,其目標就是保證移植前后的設計在功能上保持一致,并且符合原始的設計規范。驗證的方法有基于軟件的功能仿真,基于硬件的模擬器或者原型驗證平臺,以及基于純數字推導的等價性驗證。
系統集成和功能驗證
ASIC流片之后,需要進行系統集成和功能測試,其主要目的就是保證芯片的功能在整個系統中能夠正確的運行。首先芯片被安置于特殊設計的PCB上,測試程序負責向芯片注入激勵向量,芯片的輸出和預期結果進行比較,以判斷其功能是否正確。整個硅片的測試基本都是自動化的測試過程,并且通常會在不同的條件下同時測試硅片。激勵向量的產生有多種方式:預先定義的激勵向量,使用多輸入移位寄存器產生隨機序列等。當其中某項測試失敗時,可以通過硬件模擬器進行相同的測試來定位問題的根本原因。
審核編輯 :李倩
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605969 -
asic
+關注
關注
34文章
1206瀏覽量
120750
原文標題:FPGA知識匯集-ASIC向FPGA的移植
文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術聯盟】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論