3级调度 fpga_FPGA的软核、硬核、固核
“核”
????現在的FPGA設計,規模巨大而且功能復雜,因此設計的每一個部分都從頭開始是不切實際的。一種解決的辦法是:對于較為通用的部分可以重用現有的功能模塊,而把主要的時間和資源用在設計中的那些全新的、獨特的部分。這就像是你在開發應用程序的時候就不用直接去寫驅動物理硬件的代碼,而是直接調用Windows提供的API就行了。這種功能模塊我們稱作IP核(Intelligent Property) 。
核
????核(CORE)是一個數字系統的核心,負責整個系統的內存調度,中斷管理,算術邏輯運算等,如同整個系統的大腦,是由物理電氣實現邏輯功能的關鍵。盡管復雜,但不可忽略的是,核同其他數字器件一樣,也是一個典型的邏輯器件(準確的說是時序邏輯),也由邏輯門、觸發器構成,那么也就可以由硬件描述語言來描述。
既然核可以由HDL來描述,那么對于每一個特定功能和性能(即邏輯的時序和功能特定)的核而言,必有一組HDL描述等價于它,而具體的器件信號、封裝等,只不過是這組HDL依賴具體工藝的一種物理實現罷了。因此,我們應該認識到,所謂核,本質上是一種知識產權,是一種特定的可描述的邏輯結構。?
IP核
????IP核是具有知識產權的集成電路芯核總稱,是經過反復驗證過的、具有特定功能的宏模塊,與芯片制造工藝無關,可以移植到不同的半導體工藝中。到了SOC 階段,IP 核設計已成為ASIC 電路設計公司和FPGA 提供商的重要任務,也是其實力體現。對于FPGA 開發軟件,其提供的IP 核越豐富,用戶的設計就越方便,其市場占用率就越高。目前,IP 核已經變成系統設計的基本單元,并作為獨立設計成果被交換、轉讓和銷售。
核的分類
????從IP核的提供方式上,通常將其分為軟核、固核和硬核這3類。從完成IP核所花費的成本來講,硬核代價最大; 從使用靈活性來講,軟核的可復用使用性最高。與軟核實現方式相比,硬核可以把功耗降低5~10 倍, 節約將近90%的邏輯資源。?
軟核
????軟核(Soft IP Core) : 軟核在EDA 設計領域指的是綜合之前的寄存器傳輸級(RTL) 模型;具體在FPGA 設計中指的是對電路的硬件語言描述,包括邏輯描述、網表和幫助文檔等。軟核只經過功能仿真,需要經過綜合以及布局布線才能使用。其優點是靈活性高、可移植性強,允許用戶自配置;缺點是對模塊的預測性較低,在后續設計中存在發生錯誤的可能性,有一定的設計風險。軟核是IP 核應用最廣泛的形式。?
固核
? ? 固核(Firm IP Core) :固核在EDA 設計領域指的是帶有平面規劃信息的網表;具體在FPGA 設計中可以看做帶有布局規劃的軟核,通常以RTL 代碼和對應具體工藝網表的混合形式提供。將RTL 描述結合具體標準單元庫進行綜合優化設計,形成門級網表,再通過布局布線工具即可使用。和軟核相比,固核的設計靈活性稍差,但在可靠性上有較大提高。 目前,固核也是IP 核的主流形式之一。?
硬核
????硬核 (Hard IP Core) :硬核在EDA 設計領域指經過驗證的設計版圖;具體在FPGA 設計中指布局和工藝固定、經過前端和后端驗證的設計,設計人員不能對其修改。不能修改的原因有兩個:首先是系統設計對各個模塊的時序要求很嚴格,不允許打亂已有的物理版圖;其次是保護知識產權的要求,不允許設計人員對其有任何改動。IP 硬核不允許修改的特點使其復用有一定的困難,因此只能用于某些特定應用,使用范圍較窄。
軟核、硬核優缺點
制程技術獨立性
????軟核是用FPGA的通用邏輯資源(LUT+FF)搭建而成的。從用戶使用角度來看,二者沒有什么開發難度上的區別;性能上,一般硬核速度比軟核高,整體功耗也要低一些。?
????硬核是固化在FPGA內部的特殊硬件電路,簡單理解的話,可以把硬核看成是嵌入在FPGA內部的ASIC。如嵌入式RAM,嵌入式乘法器,PLL等。?
????軟核的其中一項優點就是制程技術獨立性。高階的Verilog或VHDL程序不需要運用某一特定的制程技術或標準的單元庫(cell library)。這意謂同一套IP核心可重復應用在多種設計,或是未來新世代的設計方案中。(部份軟核IP供貨商開發出針對特定制程的方案,讓其核心不具制程技術的獨立性,但這種模式的優點尚不明確)。
另一方面,硬核則具有相當高的制程技術特定性。事實上,若廠商變更其制程參數或單元庫變量(cell library factor),硬核有可能就無法正常運作。因為IP供貨商在制程參數改變后,須重新檢驗硬核,所以這種特性即衍生出運用上的風險。
????硬核可移植到新的制程技術,但須投入相當可觀的心力與成本來重新進行最佳化調校。對于某些先進的微處理器核心而言,須耗費兩年甚至更長的時間。因此,硬核的尺寸通常會針對新制程等比例縮小。這種方法雖簡單且迅速,但可能減低研發團隊針對最初制程進行的最佳客制化效益。
????事實上,軟核可能是針對單一制程技術與單元庫為設計依據,設計本身與此一技術無關。針對制程技術與單元庫提供最佳的效能,類似的技術可能達到接近最佳化的成效,但是差異性較大的技術(例如搭配速度較慢的RAM)可能就無法達到相同的結果。此種現象并非絕對重要,所以軟核在最佳化的彈性方面優于等比例光學縮小的硬核。
客制化彈性
????軟核另一項超越硬核的優勢就是:編譯當時才做客制化,在建置之前,可自行選擇許多設計選項。
????高速緩存大小是編譯時常見的一種客制化項目。軟核處理器讓使用者選擇其特定嵌入式系統所需的快取記憶容量。而硬核則無法進行這種客制化設定。
許多軟核具有的另一種客制化設計就是自行定義指令集,也就是自行支持特定指令的功能。例如若SOC有特殊需要,可使用外部協同處理器,有些系統或許需要運用具有壓縮功能的指令碼,但若系統不需要這些功能時,這些多余硬件就可從軟核中移除,以節省芯片面積與功耗。
軟核同時也有一些建置組態參數,這些特殊的客制化參數能使軟核進一步融入SOC團隊所進行的設計環境。例如,微處理器核心通常運用邏輯閘頻率電路進行建置,但這種頻率可能無法搭配部分頻率路由工具。若處理器核心有提供編譯時的設定功能,能將所有邏輯閘頻率變更成等效的再流通MUX(多任務)組件,就能減少建置過程中所遇到的困難。
整合的難易度
????除非硬核由內部研發小組所建置,否則軟核通常比較容易整合至作業流程。其原因是研發團隊將在獲得授權的IP核心周圍加入各種RTL模塊。此時核心就如同SOC中的其它模塊,亦能采用相同的建置處理方式。
????硬核比較像一個黑箱RAM組件(black-box RAM),尤其是采用全客制化技術所建置的核心。這代表硬核供貨商須提供更多的黑箱式核心模型,讓SoC研發業者能針對這些處理器設計其模塊。這種流程應用難度原本就高于軟核。例如,一套全客制化的硬核可能沒有邏輯閘層級的電路清單(netlist)。這是因為設計工作是在晶體管層級中進行,并未涉及邏輯閘。但設計團隊可能需要做含有回饋(back-annotated)時序機制的邏輯閘層級功能仿真測試,此時若缺乏邏輯閘層級的電路圖就很難進行這種模擬。
????軟核通常以可綜合的HDL提供,因此具有較高的靈活性,并與具體的實現工藝無關,其主要缺點是缺乏對時序、面積和功耗的預見性。由于軟核是以源代碼的形式提供,盡管源代碼可以采用加密方法,但其知識產權保護問題不容忽視。硬核則以經過完全的布局布線的網表形式提供,這種硬核既具有可預見性,同時還可以針對特定工藝或購買商進行功耗和尺寸上的優化。盡管硬核由于缺乏靈活性而可移植性差,但由于無須提供寄存器轉移級(RTL)文件,因而更易于實現IP保護。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? 固核則是軟核和硬核的折衷。大多數應用于FPGA的IP內核均為軟核,軟核有助于用戶調節參數并增強可復用性。軟核通常以加密形式提供,這樣實際的RTL對用戶是不可見的,但布局和布線靈活。在這些加密的軟核中,如果對內核進行了參數化,那么用戶就可通過頭文件或圖形用戶接口(GUI)方便地對參數進行操作。對于那些對時序要求嚴格的內核(如PCI接口內核),可預布線特定信號或分配特定的布線資源,以滿足時序要求。這些內核可歸類為固核,由于內核是預先設計的代碼模塊,因此這有可能影響包含該內核的整體設計。由于內核的建立(setup)、保持時間和握手信號都可能是固定的,因此其它電路的設計時都必須考慮與該內核進行正確地接口。如果內核具有固定布局或部分固定的布局,那么這還將影響其它電路的布局。
總結
以上是生活随笔為你收集整理的3级调度 fpga_FPGA的软核、硬核、固核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑设置虚拟内存大小图文教程虚拟机内存大
- 下一篇: 单片机中存储器扩展位地址线怎么算_51单