器件供應商降低制造成本的一個方法是中止老產品,這樣做就導致微處理器過時。那些微處理器核的多個版本與集成外圍器件的混合使情況更加復雜,對于特殊處理器的結構引起器件過剩。通過把外圍設備整合至有微處理器的裸片,供應商可以把微處理器用于大批量的專門應用。(文中提到的“微處理器”指整個元件,包括處理器核與集成的外圍設備)。由于應用和標準隨著時間的推移而發展,微處理器設計的狹窄市場使得微處理器更加容易過時。本文闡述設計者面對微處理器(微控制器)過時的情況,采用FPGA的可選方案。 考慮這個選擇之前,首先考慮FPGA作為應對微處理器過時的挑戰是很有用的。例如LatticeXP2FPGA,可以實現68HC11兼容的CPU核,完全可綜合的代碼只要2600個slice。如圖1所示的68HC11兼容的微處理器,把所有外設集成到這個器件將增加幾百個slice。此外,容易適配至當今的FPGA,這個實現方案可以比原來的8-12 MHz 運行快5倍。 圖1 實現D68HC11微處理器 技術曲線FPGA使設計者利用技術曲線,以防止微處理器的過時。外圍設備,或者把它們組合在一起或許也會過時。除了處理過時的微處理器,針對把周圍的功能整合到FPGA,FPGA技術曲線提供了選擇。因此降低了整個系統的成本,并解除了對其它元件不能繼續供應的擔憂。基于SoC的微處理器和FPGA遵從的技術曲線如圖2所示,用可綜合的RTL,FPGA設計者免于受到將來器件過時的影響,在大批量ASIC的NRE里未提及。 圖2 技術曲線增加了整合空間 圖2中的技術曲線展示了微處理器和微控制器的相關等效邏輯復雜性與FPGA里軟實現的比較。原來的微控制器過時的時候,可用的FPGA邏輯密度遠多于實現微處理器和外設所需的邏輯。這個額外的邏輯稱為外設整合空間,將隨著FPGA密度繼續增加而增長。圖1中的D86HC11包括了DoCD塊,提供了實時,非插入系統調試,以及沒有整合到原來微控制器的功能。 FPGA提供了對設計的折衷方法,因此實現解決方案時設計者有多種選擇。各種選擇方案如下:選擇方案1:完成再設計(將來驗證設計) 在此方案中,器件供應商也許提供替代元件,或許不是相同的指令集結構(ISA)。這個選擇需要完成硬件和軟件的再設計,使用另外的基于元件的微處理器解決方案,或者基于FPGA的解決方案。如果選擇這個方案,將來驗證這個設計是理想的,采用開放源代碼軟處理器Harvard結構的32位LatticeMico32。不像GNU公用許可證(GPL),軟件團體是相同的,用于LatticeMico32的創新開放源代碼許可證是用硬件實現的。它可以移植到任何FPGA或者免費的ASIC。選擇方案2:相同的ISA,較高的整合原來微處理器元件的軟實現(μP核和集成外設)編程至FPGA。軟處理器實現和外圍設備比原來的元件運行速度高。采用這個選擇,外設或者時序環有任何變化,軟件只要做較小的改動。這個選擇的優點是軟件變化最小,降低了電路板的成本,因為電路板的其它功能都整合至FPGA。 選擇方案3:二進制兼容,較高的整合 原來微處理器元件的軟實現(μP核和集成外設)及精確的時序編程至FPGA。目標是用原始的二進制代碼而不需要修改。通過整合其它電路板的功能至FPGA,這個選擇降低了電路板的成本。 選擇方案4:二進制兼容,插座兼容(典型方案) 這個選擇使用中間層電路板實現FPGA,針對原來的微控制器,最小化相關的邏輯有準確的引腳對引腳的替換。除了中間層電路板之外,這個方法不用改變軟件和硬件。例如,供應商停止68HC11MCU生產。對這個問題評估可能的方法,客戶也許會規定替代的部件必須與原來的功能和時序一樣,運行相同的二進制程序而無需修改。客戶決定將DCD的D68HC11 IP核用在LatticeXP2FPGA中。LatticeXP2的片上Flash能用于較少部件的簡單設計,見圖3,因為非易失LatticeXP2不需要外部的Flash存儲器,或者其它的電路下載FPGA配置。 圖3 針對選擇方案4的實現方案 最初客戶考慮用完全不同的處理器代替68HC11,但是這個方法要求取代應用軟件。這是一個很困難的任務,因為軟件與68HC11指令和內部的外設緊密相關。因此轉到新的處理器需要為軟件的再設計付出大量的時間和精力。結果大多數解決方案是用FPGA取代68HC11。這個選擇將專注FPGA里D68HC11 IP核的確認,避免改變系統的任何部分(軟件應用,外部電路板元件),系統已完好地運行了15年多。 最重要的要求是能夠得到與原來的微處理器完全兼容的軟件。必須是運行在D68HC11上相同的二進制代碼,對二進制代碼的任何改變都是不可接受的。在這樣的情況下,另外的限制是保持指令周期的精確性。這是很關鍵的,因為軟件會使用指令循環構成的時序延時。此外,有些功能或外圍接口也許會依賴精確根據指令和時鐘周期確定的執行時間。使用這個方法時,很難達到外設兼容。然而在此情況,所有的數字部分都容易實現,并具有相同的功能和時序。大多數現成的IP核都是設計好的,并在DCD核庫中驗證過。 通常的問題是替代微控制器的模擬元件,例如模數轉換器(ADC),上電/電源故障復位產生和時鐘振蕩器。數字可編程器件FPGA可以實現與這些功能相關的任何數字接口邏輯,但不是模擬電路。 用FPGA取代先前整合的ADC數字功能是可能的。采用外部ADC轉換器和設計D68HC11接口是必須的。因為目前沒有ADC具有和原來的元件有相同的精度,要選擇性能好的。要求是有寄存器功能,與原來的ADC接口相同,包括ADC和CPU之間控制和狀態信號的翻譯。轉換時序必須是相同的。這是ADC接口的主要功能,D68HC11的附加模塊在FPGA中實現。 因此,用FPGA、ADC、時鐘發生器和PLCC插座取代了老的器件,構成了小的印刷電路板并直接與客戶的系統相連。對原來的電路板無需開發軟件或改變。 用這個FPGA實現的大多數IP核源于DCD庫,且已完全經過驗證。任何新的外設都要設計成與68HC11的要求相匹配。對照舊的外設時序和功能,要仔細地驗證新的外設。對驗證來說FPGA是理想的,可以在FPGA中立即驗證改變的HDL。 結論 本文中我們強調了微處理器的過時問題。提出了基于FPGA的選擇方案,向涉及到過時微處理器問題的設計者提出了基于FPGA的選擇,提供了將來驗證需要微處理器的新設計方法。說明了FPGA如何針對過時問題的解決方案,以及整合功能、降低電路板成本的一些選擇,并提高了調試設計的可見性。 |