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