孫思偉 張猛 周青 石潤(rùn)彬 吳迪
摘要:該文介紹了歐洲地面數(shù)字視頻廣播標(biāo)準(zhǔn)DVB-T無線基帶接收機(jī)中的Reed-Solomon解碼器的算法及芯片實(shí)現(xiàn)。從解碼器的硬件架構(gòu)到RTL實(shí)現(xiàn),再到后端的版圖設(shè)計(jì)與驗(yàn)證,該文對(duì)整個(gè)芯片的設(shè)計(jì)流程進(jìn)行了系統(tǒng)的研究。
關(guān)鍵詞:Reed-Solomon編碼;數(shù)字芯片;DVB-T
中圖分類號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)25-5971-03
Reed-Solomon (RS)編碼是歐洲地面數(shù)字視頻廣播標(biāo)準(zhǔn)DVB-T中用于糾錯(cuò)的信道編碼技術(shù)。作為DVB-T無線數(shù)字基帶接收機(jī)的重要組成部分,RS解碼器的設(shè)計(jì)對(duì)芯片的面積、成本和功耗都有影響。在參考文獻(xiàn)[1][2]中,作者對(duì)RS解碼器算法進(jìn)行了描述。隨著集成電路制造工藝的進(jìn)步,現(xiàn)在28nm CMOS工藝已經(jīng)成為消費(fèi)類電子設(shè)備芯片的主流。在新的工藝下如何進(jìn)行RS解碼器設(shè)計(jì)的優(yōu)化是一個(gè)值得探討的問題。該文針對(duì)DVB-T無線數(shù)字接收機(jī)中的RS解碼器算法和架構(gòu)進(jìn)行了研究,在完成RTL設(shè)計(jì)的基礎(chǔ)上,進(jìn)行了詳細(xì)系統(tǒng)的后端版圖設(shè)計(jì)與仿真。不僅完成了RS解碼器的芯片設(shè)計(jì)全流程,而且進(jìn)行了跨層次的面積和功耗優(yōu)化。
1 RS解碼的原理和算法
RS解碼數(shù)學(xué)理論比較繁瑣,其中錯(cuò)誤位置多項(xiàng)式及估計(jì)值多項(xiàng)式的求解成為解碼成功的關(guān)鍵。RS 解碼主要步驟如下:1) 求伴隨多項(xiàng)式S(x);2) 計(jì)算錯(cuò)誤位置多項(xiàng)式及估計(jì)值多項(xiàng)式;3) 求錯(cuò)誤位置;4) 計(jì)算錯(cuò)誤值;5) 完成糾錯(cuò)。
具體由圖1所示:
2 RS解碼器的RTL實(shí)現(xiàn)
譯碼流程主要包括輸入并緩存碼字、計(jì)算碼字伴隨式S、計(jì)算差錯(cuò)位置多項(xiàng)式lamda(x)、計(jì)算關(guān)鍵等式omega(x)、根據(jù)lamda(x)和omega(x)計(jì)算錯(cuò)誤位置和錯(cuò)誤圖樣、糾錯(cuò)、輸出碼字,這幾個(gè)步驟,該文介紹的流水線結(jié)構(gòu)如圖2所示。
RTL設(shè)計(jì)中,Top層模塊RS_dec依據(jù)功能劃分為如下幾個(gè)子模塊:input_syndromes、GF_mult_add_syndromes、BM_lamda、lamda_roots、omega_phy、error_correction、transport_in2out、output_stage、DP_RAM、GF_matrix_dec、GF_matrix_ascending_binary。
其中input_syndromes、GF_mult_add_syndromes實(shí)現(xiàn)伴隨式計(jì)算功能;BM_lamda計(jì)算lamda(x)系數(shù);omega_phy計(jì)算omega(x)系數(shù);lamda_roots計(jì)算lamda(x)方程的根;error_correction實(shí)現(xiàn)糾錯(cuò)過程;transport_in2out完成第二級(jí)延時(shí)中從mem_in到mem_out的碼字乒乓搬移;output_stage實(shí)現(xiàn)第三級(jí)延時(shí)中輸出正確碼字的過程;GF_matrix_dec為GF(256)有限域數(shù)值從power域到decimal域的轉(zhuǎn)換表,地址位表示在power域的數(shù)值大小加1,即地址1到255對(duì)應(yīng)0到254冪次項(xiàng)的decimal域?qū)?yīng)值,地址0的對(duì)應(yīng)值為0;GF_matrix_ascending_binary為GF(256)有限域數(shù)值從decimal域到power域的轉(zhuǎn)換表,地址位表示在decimal域的數(shù)值大小,地址1到255存儲(chǔ)decimal域1到255所對(duì)應(yīng)的的power數(shù)值,地址0存儲(chǔ)數(shù)值為255(事實(shí)上power域只有0到254冪次項(xiàng),255冪次等價(jià)于0冪次,即255個(gè)數(shù)。而decimal域有0到255共256的數(shù)。Decimal域的0在power域是找不到冪次項(xiàng)與其對(duì)應(yīng)的。這里地址0存儲(chǔ)255的作用是,power域運(yùn)算時(shí),如果一個(gè)運(yùn)算數(shù)是直接從decimal域通過GF_matrix_ascending_binary查表的來的,那么當(dāng)這個(gè)數(shù)值是255時(shí),可以確定它事實(shí)上是decimal域的0,從而在運(yùn)算中做一些特殊處理)。系統(tǒng)結(jié)構(gòu)如圖3所示。
3 RS解碼器的芯片后端設(shè)計(jì)
3.1 流程簡(jiǎn)介
數(shù)字后端設(shè)計(jì)基本的流程包括Data Setup(數(shù)據(jù)庫(kù)建立),Design Planning(設(shè)計(jì)規(guī)劃),Placement (布局),Clock Tree Synthesis(時(shí)鐘樹綜合),Routing(布線),Chip Finishing(芯片完成優(yōu)化)這幾個(gè)階段。
3.2 數(shù)據(jù)庫(kù)建立
后端設(shè)計(jì)的第一步就是建立數(shù)據(jù)庫(kù)。只有建立了與網(wǎng)表符合匹配的數(shù)據(jù)庫(kù),物理設(shè)計(jì)才能繼續(xù)下去。數(shù)據(jù)建立包括版圖設(shè)計(jì)與物理庫(kù)生成,標(biāo)準(zhǔn)單元模型生成。
版圖設(shè)計(jì)是建庫(kù)的主要工作之一,它與工藝緊密相關(guān)。它經(jīng)過DRC和LVS的檢驗(yàn)合格后,根據(jù)實(shí)際情況來建立邏輯單元物理庫(kù)。單元庫(kù)的各種模型庫(kù)建立完成后需要通過EDA工具將數(shù)據(jù)輸入到設(shè)計(jì)流程中以驗(yàn)證它們的一致性和工具的兼容性。為了驗(yàn)證單元庫(kù)質(zhì)量,設(shè)計(jì)者通常會(huì)利用單元庫(kù)設(shè)計(jì)一些測(cè)試電路調(diào)用所有邏輯單元進(jìn)行功能性參數(shù)驗(yàn)證。
邏輯單元分為標(biāo)準(zhǔn)單元,模塊宏單元和輸入輸出單元三種。與單元庫(kù)相關(guān)的標(biāo)準(zhǔn)數(shù)據(jù)格式包括以下幾種:電路級(jí),符號(hào)級(jí),版圖級(jí),硬件描述語(yǔ)言,物理庫(kù)文件,時(shí)序庫(kù)文件,功耗庫(kù),噪聲庫(kù)和其他庫(kù)。
3.3 設(shè)計(jì)規(guī)劃
布圖規(guī)劃是物理設(shè)計(jì)的最重要的步驟,一般布圖規(guī)劃占用整個(gè)物理設(shè)計(jì)三分之一的時(shí)間,布圖規(guī)劃的主要內(nèi)容有:芯片大小的規(guī)劃、IO單元的規(guī)劃、硬盒的規(guī)劃。
布圖規(guī)劃的主要內(nèi)容有:1) 確定芯片的面積;2) 確保時(shí)序的收斂;3) 保證芯片的穩(wěn)定;4) 滿足布線的要求。
3.4 布局
在布局時(shí),將所有宏單元固定,報(bào)告忽略的金屬層,報(bào)告電源網(wǎng)blockage的布置,查看硬盒和軟核的設(shè)置,最后定義時(shí)鐘的布線規(guī)則。圖4為布局后的版圖。
3.5 時(shí)鐘樹綜合
在時(shí)鐘樹綜合之前,所有的時(shí)鐘引腳都是用一個(gè)時(shí)鐘源(clock source )時(shí)鐘驅(qū)動(dòng)的,這時(shí),這個(gè)資源時(shí)鐘被定義被理想時(shí)鐘,時(shí)鐘樹綜合后,理想時(shí)鐘(ideal clock)變成了傳播時(shí)鐘此時(shí)的傳播時(shí)鐘不足以驅(qū)動(dòng)那么多單元,這時(shí)它通過插入一級(jí)級(jí)的時(shí)鐘緩沖器驅(qū)動(dòng)。為了迎合時(shí)鐘樹的設(shè)計(jì)規(guī)則約束,對(duì)時(shí)鐘樹很大的設(shè)計(jì),可采用時(shí)鐘網(wǎng)絡(luò)實(shí)現(xiàn)較小的時(shí)鐘偏差。
本設(shè)計(jì)側(cè)重解決低偏差(skew),我們采用以下優(yōu)化策略:
1) 合理的clock root和through pin;2) 不要用太大或者太小的clock buf/inv;3) 選用RC最小的金屬層;4) 選用double width clock wire,適當(dāng)增大clock buf/inv的size;5) 合理的max fanout;6) 合理設(shè)置skew大??;7) 合理設(shè)置transition time;9) 使用postCTS的CTS_opt;10) 設(shè)計(jì)clock tree時(shí),直接完成clock net走線。
設(shè)置好這些優(yōu)化策略后,進(jìn)行時(shí)序的優(yōu)化。
3.6 布線和優(yōu)化
布線是繼布局和時(shí)鐘樹綜合之后的重要物理實(shí)施任務(wù),其內(nèi)容是將分步在芯片核內(nèi)的模塊、標(biāo)準(zhǔn)單元和輸入輸出借口單元按邏輯關(guān)系互聯(lián),要求百分之百地完成它們之間的所有邏輯信號(hào)的互連,并為滿足各種約束條件進(jìn)行優(yōu)化。超大規(guī)模集成電路多層布線采用自動(dòng)布線方法,它是一種復(fù)雜的布線方法,實(shí)施過程分為全局布線和詳細(xì)布線以及布線修正三個(gè)部分來完成。圖5所示為布線優(yōu)化完成后的RS解碼器電路版圖。
3.7 后端仿真結(jié)果
通過ICC后端仿真,從area report中得到芯片總的cell面積為48003um2,芯片的利用率為74.22%.時(shí)鐘的周期為1.5ns,表示它的頻率可以達(dá)到666Mhz,芯片工作時(shí)的功耗為34.9842mw。
4 總結(jié)
本文介紹了DVB-T協(xié)議中RS解碼器算法流程,通過RTL級(jí)的建模、仿真,實(shí)現(xiàn)了RS解碼的基本功能,通過后端的時(shí)鐘樹設(shè)計(jì)、布局布線優(yōu)化,基本完成了RS解碼器芯片硬核的設(shè)計(jì)。
參考文獻(xiàn):
[1] 曾德才.基于DVD應(yīng)用的RS編譯碼器的研究和FPGA實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2007.
[2] 張雪竹.RS編譯碼方法及軟判決譯碼應(yīng)用的研究[D].成都:西南交通大學(xué),2003.
[3] 林灶生, 劉紹漢.Verilog FPGA 芯片設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2006.