崔 健,劉 晉
(遼寧師范大學 計算機與信息技術學院,遼寧 大連 116081)
半導體工業(yè)和嵌入式領域所面臨的主要課題之一就是設計片上系統(tǒng),片上系統(tǒng)可以在單芯片上集成嵌入式CPU、DSP、存儲器和其他控制功能,從而可大大降低產(chǎn)品的開發(fā)周期,提高產(chǎn)品的安全性、可靠性,縮小產(chǎn)品的物理尺寸,降低成本[1]。片上系統(tǒng):(1)可以包含:微處理器,數(shù)字信號處理器,數(shù)字、模擬及混合電路模塊,總線,時鐘,電源分布,測試結構等;(2)支持標準的工業(yè)接口和通信協(xié)議?;诂F(xiàn)場可編程門陣列器件(FPGA)的片上系統(tǒng)與基于ASIC的片上系統(tǒng)相比,具有風險小、開發(fā)周期短、成本低、可擦寫等優(yōu)點,是當今業(yè)界在快速原型技術和系統(tǒng)解決方案上的流行趨勢之一。目前,F(xiàn)PGA器件不僅是邏輯門、布線資源和I/O可編程,而且隨著半導體工藝的發(fā)展,在FPGA中還增加了許多硬件核,如存儲器、時鐘管理和算法功能,甚至增加了嵌入式處理器硬核和軟核等,即在DSP和嵌入式處理器等關鍵領域發(fā)展可編程技術,F(xiàn)PGA已經(jīng)成為在單片器件上同時提供可編程邏輯、高性能DSP和嵌入式處理器的系統(tǒng)芯片[2]。在密度和性能提高的同時,極大地降低了成本和功耗,使得FPGA在更多的應用領域成為市場的主流。
FPGA其技術的關鍵在于用戶可編程性,利用FPGA作為高度并行處理器件來設計嵌入式系統(tǒng)可以提供高信號處理的能力,滿足樣機開發(fā)周期短和產(chǎn)品上市快的要求,方便、快速地構造和仿真復雜的系統(tǒng),根據(jù)用戶需要的變化或設計出現(xiàn)錯誤時,可以隨時升級或修改[3]。目前,圍繞嵌入式系統(tǒng)展開研究和開發(fā),已經(jīng)成為計算機軟、硬件技術發(fā)展最有潛力的方向之一。利用FPGA設計嵌入式系統(tǒng)已經(jīng)成為制造業(yè)的核心技術,并廣泛地應用到醫(yī)療儀器、系統(tǒng)仿真、工業(yè)控制、信息家電、通信設備等領域。本文在介紹FPGA作為設計平臺實現(xiàn)嵌入式系統(tǒng)基本原理的基礎上,研究了利用FPGA實現(xiàn)嵌入式系統(tǒng)的設計方法,并利用嵌入處理器軟核,構造和裁剪嵌入式系統(tǒng),在單個FPGA芯片上合理配置資源,實現(xiàn)多處理器的嵌入式系統(tǒng)。嵌入式處理器分為:嵌入式微處理器、嵌入式微控制器、嵌入式DSP處理器以及嵌入式片上系統(tǒng)等[4]。隨著FPGA邏輯門密度的不斷提高和設計工具軟件的不斷加強、優(yōu)化,并出于對可編程的特性以及集成度等方面的考慮,以FPGA實現(xiàn)可配置的嵌入式系統(tǒng)已越來越廣泛。FPGA已經(jīng)從最初的可編程邏輯器件發(fā)展到當今的可編程系統(tǒng),以其豐富的可編程資源成為系統(tǒng)設計的平臺[5]。因此,基于FPGA的嵌入式系統(tǒng)設計方法實際上是一個基于可編程片上系統(tǒng)的設計過程。設計出來的是一種特殊的嵌入式系統(tǒng):(1)它是片上系統(tǒng),由單個芯片完成整個系統(tǒng)的主要邏輯功能;(2)它是可編程系統(tǒng),具有靈活的設計方式,可裁剪、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。這種設計一般有如下特征:至少包含1個以上的嵌入式處理器IP Core;具有小容量片內(nèi)高速RAM資源;豐富的IP Core資源可以靈活地選擇;足夠的片上可編程邏輯資源;處理器調(diào)試接口和FPGA編程接口共用或并存;可能包含部分可編程模擬電路;單芯片、低功耗、微封裝。典型的基于FPGA的嵌入式系統(tǒng)如圖1所示。
圖1 基于FPGA的嵌入式系統(tǒng)結構示意圖
要實現(xiàn)各種應用領域的新的復雜算法,需要有更高性能的信號處理引擎。FPGA通過并行方式可以提供極高性能的信號處理能力,可編程的靈活結構降低了設計風險。對于不斷更新和變化的標準和協(xié)議,可以通過移植設計來應對。FPGA支持DSP性能的主要機制與指令集結構的信號處理器完全不同,利用FPGA器件實現(xiàn)高性能的DSP功能是一種硬件實現(xiàn)數(shù)字信號處理的方法,因此,在處理速度上可以超過指令集結構的通用DSP。FPGA實現(xiàn)DSP處理時,其并行性使FPGA成為多引擎的乘法累加器,完全的并行性可以使數(shù)據(jù)的流量達到最大化。FPGA利用分布在器件內(nèi)豐富的DSP資源來換取性能的提高,這些分布的DSP資源包括:查找表結構,可以實現(xiàn)組合邏輯、分布RAM和串行移位寄存器;嵌入式乘法器、進位鏈和乘法,專用于加速乘法運算能力;真正雙口塊RAM存儲器的多種用途,可以與嵌入乘法器配對使用;多個具有更高乘法和累加性能的DSP處理片。
FPGA實現(xiàn)數(shù)字信號處理,一般主要通過其硬件資源、算法變換和結構變換來體現(xiàn)[6],而其中的難點和關鍵也在于結構變換上,而FPGA突出的優(yōu)點就是能夠進行流水線和并行處理的結構變換。流水線處理是在數(shù)據(jù)通道中引入流水線寄存器來減少有效的關鍵路徑,在增加時鐘頻率的情況下也增加采樣速率;并行處理是利用重復的硬件來增加采樣速率,使得多個輸入可以并行地同時處理,多個輸出可以在同一時間產(chǎn)生。
寄存器是流水線的每個功能部件所必須的[7],各流水段的時間應盡量相等,否則會引起流水線的阻塞和斷流等。DSP算法的流水線轉換時在數(shù)據(jù)通道中添加寄存器,這樣使得算法可以進行流水線處理。例如在2個乘法運算單元之間放置1個寄存器,其關鍵路徑可縮短一半,關鍵路徑上的分布電容也可減少一半,從而使得電源電壓可以降低,可相應地減少功耗。圖2為2種形式的FIR濾波器,圖 2(a)為直接形式的、N=4階的 FIR濾波器,其輸入數(shù)據(jù)的速率受限于關鍵路徑的處理速度。關鍵路徑包含3個加法和1個乘法,故其處理時間的遲滯為:Tcritical=Tmultiply+(N-1)Tadd。 其中,Tcritical為臨界處理時間,Tmultiply為累加器處理時間,Tadd則為加法器處理時間。而圖2(b)則是利用割集重新定義定時,在前饋割集邊上添加寄存器,在輸入輸出的任何路徑上延時元件的數(shù)目比原始的時序電路增加了數(shù)倍,從而實現(xiàn)流水線處理和運行。
圖2 2種形式的濾波器
并行處理在結構上采用復制硬件的方法,幾個輸入并行地進行處理,在1個時鐘周期內(nèi)同時進行計算,并同時產(chǎn)生幾個輸出,因此采樣率增加數(shù)倍,如二級并行處理結構則增加2倍的采樣率[8]。在并行處理系統(tǒng)中,關鍵路徑保持不變,如圖3所示。時鐘周期必須滿足:Tclk≥Tmultiply+2Tadd,Tclk為符合要求的時鐘周期。然而因為3個采樣是在1個時鐘周期內(nèi)處理的,所以其迭代周期為:Titeration=Tsample=Tclk/L=(Tmultiply+2Tadd)/L。其中,Titeration為迭代周期,Tsample為采樣周期,Tclk為在任意1路使用寄存器產(chǎn)生有效延時為L個采樣率的時間。
圖3 三階并行處理結構
圖4 乘法累加驅(qū)動模式
如圖4所示的乘法累加驅(qū)動的濾波器,實際上是一個簡化的DSP處理器,其N個抽頭的計算必須在采樣周期T內(nèi)執(zhí)行,乘法累加的速率最小應是N倍的采樣率,時鐘速率必須比采樣率更高。RAM需要與抽頭一樣多的字,其位寬由采樣尺寸設定,而ROM則要滿足系數(shù)要求。另外,采樣和系數(shù)數(shù)據(jù)是每個周期都改變的,所以需要1個完全乘法器,其位寬是由采樣數(shù)和最大系數(shù)尺寸設定??傊?,濾波器的采樣頻率完全由處理全部濾波器組合所花費的時間來設定,即性能不是由器件的計算能力來決定,而是由存儲器的帶寬來限制。保持分布的RAM用來支持具有對稱性的乘法累加驅(qū)動,帶有1個預先加法器,由分布RAM提供系數(shù)。當數(shù)據(jù)寫入時,總是向右移位,但是可以讀進任何次序。單個譯碼器可以由幾個查找表來形成,后半個或這個抽頭則按照相反的次序讀入,并輸入到加法器。該譯碼器也保證奇數(shù)抽頭濾波器的中間抽頭沒有任何數(shù)據(jù)加到它上面。存儲器要輸出2個操作數(shù)到乘法累加器,并且要順序地讀出這對數(shù)據(jù),每2個存儲器讀出周期進行1次乘法累加操作,計算結果保持或存入存儲器,以便累加器可以被復位并開始新的計算。
FPGA具有極高并行度的信號處理引擎,能夠滿足算法復雜度不斷增加的應用要求,通過并行方式提供極高性能的信號處理能力。本文針對FPGA的特性,分析和研究了FPGA實現(xiàn)嵌入式系統(tǒng)的基本原理和實現(xiàn)方式,并通過應用來進一步解釋和分析其設計實現(xiàn)過程。
[1]KAMAI R.嵌入式系統(tǒng):體系結構、編程與設計[M].陳曙暉等,譯.北京:清華大學出版社,2005.
[2]RANDALL S.Specification and design methodology for real-time embedded systems[M].Janka Kluwer Academic Publishers,2002.
[3]DESCHAMP J P, BIOULG J A, SUTTER G D.Synthesis of arithmetic circuits: FPGA, ASIC and embedded systems[M].Hoboken, John Wiley, &Sons, Inc.2006.
[4]JANTSCH A.Modeling embedded system and SoC:concurrency and time in modes of computation[M].Morgan Kaufmann Publishers,2004.
[5]劉明章.基于 FPGA的嵌入式系統(tǒng)設計[M].北京:國防工業(yè)出版社,2007.
[6]孟憲元,錢偉康.FPGA嵌入式系統(tǒng)設計[M].北京:電子工業(yè)出版社,2007.
[7]ATKINSON C.Component-based software development for embedded systems:an overview of current research trends[M].Springer Verlag New York Inc,2005.
[8]BAESE U M.數(shù)字信號處理的FPGA實現(xiàn)[M].劉凌,譯.北京:清華大學出版社,2006.