張立學+尹東輝
DOI:10.16644/j.cnki.cn33-1094/tp.2016.02.012
摘 ?要: 應用FPGA設計數(shù)字電路時,芯片的運行速度優(yōu)化與資源利用優(yōu)化常常是相互矛盾的。以Viterbi譯碼器中加比選單元(ACS)的設計為例,對采用傳統(tǒng)方法和流水線技術方法的設計進行對比,顯示采用流水線技術的設計方法在占用較小系統(tǒng)資源情況下可以獲得更高的系統(tǒng)運行速度,更適用于FPGA的數(shù)字電路設計。
關鍵詞: 流水線技術; FPGA; ACS; Viterbi
中圖分類號:TN79.1 ? ? ? ? ?文獻標志碼:A ? ? ?文章編號:1006-8228(2016)02-42-02
Application of pipeline technology in FPGA design
Zhang Lixue1, Yin Donghui2
(1. The Research of Information and Communication Engineering, Shijiazhuang Non-commissioned Officer Academy of CAPF, Shijiazhuang, Hebei 050061, China; 2. The 3rd Communication Department, Shijiazhuang Non-commissioned Officer Academy of CAPF)
Abstract: When using FPGA to design digital circuit, the optimization of the operation speed and resource utilization of the chip is often contradictory. In this paper, taking the design of add compare select unit (ACS) of Viterbi decoder as an example, compares the design of traditional approach with the design of pipeline technology method, the result showed that the pipelining design method can get higher system running speed with less system resource occupation, more suitable for FPGA digital circuit design.
Key words: pipeline technology; FPGA; ACS; Viterbi
0 引言
FPGA(Field Programmable Gate Array)以其可重構與現(xiàn)場可編程的靈活性被人們所接受,相比于ASIC而言,有著更短的開發(fā)周期和更小的前期研發(fā)資金投入,在原型板的開發(fā)中占據(jù)著重要的地位,獲得了越來越多的人的青睞[1]。但是EDA技術面對超大規(guī)模可編程器件PPGA進行系統(tǒng)設計時,面向芯片運行速度和面向芯片占用面積的兩種選擇常常是相互矛盾的。對速度指標進行優(yōu)化的設計,往往占用較多的芯片資源;而對芯片面積指標進行優(yōu)化的設計,一般難以擺脫系統(tǒng)速度下降的代價。隨著深亞微米半導體制造工藝的不斷創(chuàng)新和百萬門可編程器件的不斷推出,系統(tǒng)速度指標的意義日趨重要,采用流水線技術只需增加少量硬件,便可以大大提高系統(tǒng)速度[2]。
1 流水線技術的應用原理
流水線設計就是把規(guī)模較大、層次較多的組合邏輯電路分為幾個級別,在每一級插入寄存器組暫存中間數(shù)據(jù)。例如K級的流水線就是從組合邏輯的輸入到輸出恰好有K個寄存器組(分為K級,每一級都有一個寄存器組),上一級的輸出是下一級的輸入而又無反饋的電路。
流水線結構電路屬于同步時序電路,在同步系統(tǒng)中,時鐘速度越快,電路處理數(shù)據(jù)的時間間隔越短,電路在單位時間內處理的數(shù)據(jù)量就越大[3]。對于同步系統(tǒng)的時鐘速率計算公式為:
⑴
其中:Tco是數(shù)據(jù)輸出的延時,Tdelay是組合邏輯的延時,Tsetup是觸發(fā)器的建立時間。
在本例中(圖2)ACS的延時就是Tdelay,ACS前級輸入的鎖存輸出時間就是Tco,ACS的建立時間就是Tsetup。在FPGA中,由于Tco和Tsetup是由具體的器件和工藝決定的,芯片型號一旦選定,Tco和Tsetup也就固定不變了,因此設計電路時只可以改變Tdelay。所以縮短Tdelay是提高同步電路速度的關鍵,而在Viterbi譯碼器的設計中不只有一級鎖存,要使電路工作穩(wěn)定,時鐘周期必須滿足最大延時要求,縮短最大延時路徑,才可以提高電路的工作頻率。在應用流水線技術時,如圖1所示可以把較大組合邏輯分解為較小的幾塊,中間插入寄存器,在圖1的下半部分,系統(tǒng)的最高工作頻率決定于兩個組合邏輯延時的最大值,因此,在系統(tǒng)的設計中應盡量減小這個最大值,這樣可以提高電路的工作頻率。
2 系統(tǒng)設計實現(xiàn)
下面以Viterbi譯碼器中的ACS(加比選單元)的設計為例,對比分析采用流水線設計和不采用流水線設計性能和資源占用的差異。
2.1 直接實現(xiàn)
ACS是Viterbi譯碼器核心部分,圖2為ACS的組成邏輯結構圖,主要完成度量值的加比選,具體的工作過程是:得到BMU單元送過來的分支度量值和分支狀態(tài)值之后,將相應的分支狀態(tài)值對應的度量值從度量存儲單元取出來再相加,比較兩種狀態(tài)度量值的大小,將小的度量值存入次態(tài)的地址并更新原有的度量值。
直接按照圖2的邏輯關系用Verilog語言描述形成ACS模塊,包括一個加法器、一個比較器和一個多路選擇器,將其下載到EPF10KE30ETC144-1上,得到的部分參數(shù)如下:
最大延時為18.2ns,工作頻率為86.7MHz,占用55個邏輯單元。
由此可以看出,直接實現(xiàn)該電路整個運算至少需要經(jīng)過3級門延時,即使用5ns延時的器件運算最快也需要15ns相應的工作速度為66.7MHz,隨著相關位數(shù)的增加速度還將隨之降低。
2.2 三級流水線實現(xiàn)
用組合邏輯的方式直接生成的ACS的電路延時主要集中在兩個加法器和一個比較器上。
延時的粗略計算式如下:
⑵
其中,Tadd為加法器的延時,Tc為比較器的延時,Tx為多路選擇器的延時,主要延時為Tadd和Tc。
在ACS中應用流水線技術,可以把ACS的大的組合邏輯延時分成三個較小的組合邏輯,分別是加法組合邏輯、比較組合邏輯和多路選擇組合邏輯,它們的延時比較平均,有利于提高ACS的整體工作頻率,因為系統(tǒng)的最高頻率決定于系統(tǒng)中的最大延時,然后在三個小的組合邏輯中間加入寄存器,這樣就得到流水線結構的ACS框圖,如圖3所示。
其運算過程是對每一步運算結果進行鎖存,按照時鐘的節(jié)拍逐步完成運算的全過程,雖然每組輸入值需要經(jīng)過三個節(jié)拍才能得到運算結果,但是由于每個節(jié)拍都有一組新值輸入到下一級運算電路,每級運算電路上都有一組數(shù)據(jù)同時進行運算,所以總的來看,每步運算花費的時間只有一個時鐘周期。將采用流水線結構的ACS下載到在EPF10KE30ETC144-1,得到的部分參數(shù)如下:
最大延時6.9ns,工作頻率153.84MHz,占用63個邏輯單元。
與沒有采用流水線時相比,工作頻率提高了65.5MHz,輸出延時縮短了11.3ns,而從資源占用上來看,僅僅多占用了8個邏輯單元,可見在FPGA上采用流水線代價還是較小的。
3 結論
通過上面分析可以看出,采用流水線技術對Viterbi譯碼器中的ACS進行設計,提高了數(shù)字系統(tǒng)運行速度,并不會增加太多的系統(tǒng)資源占用量,有效解決了應用FPGA進行數(shù)字電路設計中選擇芯片的運行速度優(yōu)化與資源利用優(yōu)化之間相互矛盾的問題。所以流水線技術是提高數(shù)字系統(tǒng)運行速度的一種有效方法,其設計的關鍵在于整個時序的合理安排[4],這對于實施性要求高,運算量大的系統(tǒng)(例如DDS[5])流水線方法尤其適用。
參考文獻(References):
[1] 李宏鈞,胡小龍.流水線的FPGA低功耗設計[J].計算機系統(tǒng)
應用,2010.19(8):234-237
[2] 孫啟良.CPU流水線技術中的結構相關和數(shù)據(jù)相關[J].福建
電腦,2010(7):49-50
[3] 李云鵬,王新梅,謝顯中等.基于FPGA自適應高速RS編譯碼
器的IP核設計[J].重慶郵電大學學報,2004.15(1):25-28
[4] 邱志宏.信號線速度處理的FPGA流水實現(xiàn)[J].柳州職業(yè)技術
學院學報,2009.9(2):79-82
[5] 岳偉甲,劉昌錦.一種基于FPGA的32位快速加法器設計[J].
四川兵工學報,2011.32(7):78-81