使用可編程邏輯器件(PLD)的主要優勢之一是PLD提供了一個硬體平臺,在這個平臺上,在設計的早期就可以進行軟體發展、建構模型、系統層級模擬、知識產權(IP)內核整合和聯合驗證。現在,一類新的產品正在浮現出來,在複雜的單晶片系統(SoC)設計中,它將PLD在靈活性和產品面市時間上的優勢與預先設計好的處理器內核、記憶體和外部設置結合在一起,這在過去是不可能的。這些器件要求新的設計輸入和模擬工具,以及用於各種IP模組之高速周期精確的特性模型。
儘管PLD在規模、速度和複雜度方面都有所發展,但是,僅僅這些還不足以使可編程單晶片系統(SOPC)的設計得到普及。設計和提供使用方便的嵌入式處理器內核以及其他的硬式IP巨集功能或者IP軟式核心,從而提供ASIC所不具備的靈活性和產品面市時間優勢,也同樣是很重要的。這些預先設計好的內核,在SOPC設計中可以很容易地例化和模擬,它們的應用消除了冗長的內部開發和第三方IP授權的保護,從而加速了整個設計的流程。
解決系統層級問題的完整模型
處理器是一個在PLD結構中可執行合成的軟式核心,還是一個預先放置好的硬式巨集單元架構的設計,將影響最終設計的實際性能、規模和功耗水準。並且,每一種實現方法都有它自己的設計流程要求。在進行一個CPU架構的設計時,一個基本的要求是使用一個周期精確的指令集模擬器(ISS)。就標準的嵌入式處理器內核而言,ISS是普遍存在的,MIPS Technologies和ARM Ltd就提供這樣的ISS。例如,在特定的應用程式中,動作驅動的模擬器執行指令並模擬它們的性能,而事件架構的模擬器則可以提供性能統計、特徵總結和包含逐個周期指令資訊的追蹤文件。對特定的應用程式,ISS的速度可能還不夠快,並且,安裝在硬體評估板上的處理器經常是通過除錯埠來除錯的。
為了最佳地解決系統層級的問題,關於處理器內核與記憶體,與其他器件以及與I/O單元如何相互作用的精確完整的模型是至關重要的。當設計一個硬式的處理器巨集功能時,通常需要一個匯流排功能模型,這個模型描述SoC設計內部特定的系統匯流排操作、時脈以及處理器與其他模組的介面。當利用處理器軟式核心進行設計時,為了驗證實際的PLD物理實現是否滿足處理器子系統的時脈規範,特性模型是必不可少的。另外,上層對PLD架構的整個SoC設計之VHDL形式或者Verilog形式的RTL模擬的支援、特性模擬,以及對VHDL和Verilog測試手段支援也是必需的。
對於嵌入式系統軟體發展來說,標準軟體工具設計套件支援的嵌入式架構處理器解決方案是很重要的。這個標準軟體工具設計套件由編譯程序、除錯程式、組合程式、連結程式、載入程式以及必需的軟體程式庫和應用功能組成。像MIPS和ARM這樣的工業標準結構為系統軟體發展提供了多種即時操作系統(RTOS)支援和軟體工具鏈支援。
很明顯的,可編程單晶片系統的設計要求一種設計方法,這種設計方法與軟體發展和傳統的PLD合成、模擬和佈局佈線並行展開的能力,與模型和除錯嵌入式處理器和其他IP模組的能力緊密的聯繫在一起。
可編程單晶片系統設計案例
以下將以Altera的32位元軟式核心RISC處理器 - Nios為例,說明可編程單晶片系統要求新的設計方法。
當在Altera的PLD系列產品中最佳化執行時,Nios的性能可達50 MIPS。Altera還提供MIPS和ARM架構的硬式核心產品,這些產品在與各種規模的APEX20KE PLD結構相鄰的嵌入式處理器“帶”上,除整合了計時器和UART等外部設置,也整合了中斷控制器、外部記憶體介面、追蹤能力以及單埠SRAM和雙埠SRAM。(圖一)顯示了使用ARM992T處理器內核的Excalibur硬式核心實現的範例圖。基本的嵌入式處理器“帶”與各種數量的晶片內單埠SRAM、雙埠SRAM以及相應規模的PLD結構一起實現,為設計者提供了多種選擇。Altera還為嵌入式處理器“帶”提供了一個周期精確的模型,用來實現模擬功能。
《圖一 ARM架構的Excalibur SOPC實現》 |
|
在其功能插件MegaCore中,Altera還提供了多種自行開發的軟式核心以及通過Altera的Megafunctions合作專案(AMPP)由第三方合作者開發經過最佳化的軟式核心。Megafunctions模組包括數位訊號處理(DSP)、網路通訊、PCI控制器和外部設置等內核,並對器件的驅動程式提供支援。MIPS和ARM架構的Excalibur產品都將使用符合先進微控制器匯流排結構(AMBS)工業標準的高性能匯流排(AHB)與Altera的Megacore或者其AMPP合夥人的IP內核介面。
(圖二)顯示了Excalibur的工作流程以及完成一個設計舉例所需的各種軟體工具。SOPC Builder是一個圖形用戶介面(GUI)架構的開發工具,用來簡化系統設計。大多數系統由通過匯流排相互連接的各種IP模組組成。使用SOPC Builder時,設計者需要做的就是選擇所需的模組,並利用Altera的MegaWizard GUI為每個模組選擇不同的參數和不同的時脈區域。SOPC Builder為每個模組產生可合成的程式碼,生成匯流排,配置暫存器,並提供模擬模型。
像Mentor Graphics的LeonardoSpectrum、Synplicity的Synplify和Synopsys的FPGA Express這樣的第三方合成工具是用來產生閘級網表的。Altera的軟體Quartus接收閘級網表,並在APEX PLD結構中進行實際的佈局佈線,從而最佳地實現設計。SOPC Builder還可以產生C語言的檔頭文件和外部設置驅動程式,這些檔頭文件和驅動程式可以用在標準的嵌入式軟體發展套件中。
ARM和MIPS架構的Excalibur SOPC產品都支援Quartus軟體提供的,稱為SignalTap 的邏輯分析器megafunction。這是一個參數化的嵌入式邏輯分析器,它使得用戶可以通過IEEE Std. 1149.1的聯合測試行動組(JTAG)電路存取PLD結構內部的信號。當器件工作時,SignalTap從內部節點上捕獲信號,並且可以使用APEX PLD的嵌入式系統區塊(ESB)中的RAM儲存採集的資料。利用SignalTap,設計者可以快速分析器件的內部邏輯,而不用將內部信號引到I/O引腳上。
MIPS架構的Excalibur產品支援一種增強的JTAG(EJTAG)埠,這個埠可以掛接在第三方廠商的解決方案上,實現軟體跟蹤除錯、中斷點設置和原始碼的單步執行。
ARM的原始碼跟蹤除錯軟體是用來除錯運行在Windows架構環境或者UNIX環境的應用程式,這些應用程式可以用C++、C或者組合語言編寫。該跟蹤除錯軟體也支援ARM架構的Excalibur產品。
提供標準的運行控制除錯功能的嵌入式ICE邏輯業已存在,它是通過一個JTAG埠來控制的。這種邏輯可以通過編程產生中斷點,使處理器停止運行並進入一個除錯狀態,在這個狀態下,記憶體和暫存器內容可以檢查或者修改,原始碼可以單步執行。ARM內核還支援一種嵌入式追蹤巨集單元。嵌入式追蹤巨集單元監視ARM系統匯流排並通過一個追蹤埠將經過壓縮的資訊傳送到一個稱為追蹤埠分析器的外部器件儲存起來。除錯工具從追蹤埠分析器獲取資料並重構處理器操作的歷史。追蹤顯示包括符號資訊以及與被除錯原始碼的鏈結。嵌入式追蹤巨集單元也是通過JTAG埠來控制的。
結論
可編程單晶片系統的解決方案以質優價廉的方式提供一流的技術、設計靈活性和過去不可能實現的更高系統層級性能,將使設計者完成微處理器架構的設計方式發生革命性變化。系統設計者將不必再保護自己的CPU或者其他IP內核和授權,從而避免高額的NRE和晶圓光罩成本,避免單元架構的ASIC設計之冗長開發周期。
從產品面市時間的角度來看,尤其是在那些工業標準或者演算法處於變動狀態(例如,第三代無線基地台)的應用中,在設計或者生產過程中修改設計的靈活性是極具吸引力的。重要的是,這些新的可編程單晶片系統的出現和採用,提供了一個完整合成的硬體軟體解決方案,使得系統軟體發展、IP內核整合、設計輸入、建構模型、模擬、除錯和合成等過程在一個緊湊且容易使用的設計環境中實現。