LEON2應(yīng)用于數(shù)字機(jī)頂盒CPU的FPGA仿真
摘 要:采用免費(fèi)軟核LEON2作為數(shù)字機(jī)頂盒的CPU可以降低產(chǎn)品成本。為了使LEON2軟核能更快更好地應(yīng)用于數(shù)字機(jī)頂盒,選擇先在FPGA開(kāi)發(fā)板上建立基于LEON2處理器的一個(gè)原型,通過(guò)這個(gè)原型對(duì)硬件性能進(jìn)行仿真,并且還可以在線修改程序,這樣就很容易驗(yàn)證系統(tǒng)的性能,加速軟件開(kāi)發(fā)調(diào)試流程。經(jīng)過(guò)在FPGA開(kāi)發(fā)板上的仿真,對(duì)基于LEON2的系統(tǒng)測(cè)試取得了預(yù)期的效果。
關(guān)鍵詞:LEON2;片上系統(tǒng);嵌入式系統(tǒng);知識(shí)產(chǎn)權(quán)核;現(xiàn)場(chǎng)可編程門(mén)陣列
0 引 言
近年來(lái),隨著數(shù)字多媒體業(yè)務(wù)和Internet網(wǎng)絡(luò)的迅速發(fā)展,新型數(shù)字機(jī)頂盒可以有效利用我國(guó)巨大的有線電視網(wǎng)絡(luò)資源,完成視頻點(diǎn)播、數(shù)字電視的接收及接入Internet等綜合業(yè)務(wù)功能。
1 數(shù)字機(jī)頂盒總體設(shè)計(jì)方案
數(shù)字機(jī)頂盒分為兩個(gè)通道,下行通道接收來(lái)自電纜或光纖的有線電視信號(hào),上行通道傳輸從客戶端到服務(wù)器端的指令。
下行通道方案如圖1所示,調(diào)諧器接收來(lái)自有線網(wǎng)的高頻信號(hào),通過(guò)QAM解調(diào)器完成信道解碼,從載波中分離出包含音、視頻和其他數(shù)據(jù)信息的傳送流(TS)。傳送流中一般包含多個(gè)音、視頻流及一些數(shù)據(jù)信息。解復(fù)用器則用來(lái)區(qū)分不同的節(jié)目,提取相應(yīng)的音、視頻流和數(shù)據(jù)流,送入MPEG一2解碼器和相應(yīng)的解析軟件,完成數(shù)字信息的還原。對(duì)于付費(fèi)電視,條件接收模塊對(duì)音、視頻流實(shí)施解擾,并采用含有識(shí)別用戶和進(jìn)行記賬功能的智能卡,保證合法用戶正常收看。MPEG一2解碼器完成音、視頻信號(hào)的解壓縮,經(jīng)視頻編碼器和音頻D/A變換,還原出模擬音、視頻信號(hào),在常規(guī)彩色電視機(jī)上顯示高質(zhì)量圖像,并提供多聲道立體聲節(jié)目。
上行通道方案如圖2所示,用戶發(fā)送指令,然后經(jīng)過(guò)編碼符合網(wǎng)絡(luò)通信協(xié)議,從以太網(wǎng)接口傳輸?shù)秸{(diào)制器,再經(jīng)物理信道傳給終端服務(wù)器。
2 LEON2處理器
嵌入式CPU是數(shù)字電視機(jī)頂盒的心臟,當(dāng)數(shù)據(jù)完成信道解碼以后,首先要解復(fù)用,把傳輸流分成視頻、音頻,使視頻、音頻和數(shù)據(jù)分離開(kāi)。CPU是嵌入式操作系統(tǒng)的運(yùn)行平臺(tái),它要與操作系統(tǒng)一起完成網(wǎng)絡(luò)管理,顯示管理、有條件接收管理、圖文電視解碼、數(shù)據(jù)解碼、視頻信號(hào)的上下變換等功能。
LEON系列32位RISC處理器核的第一個(gè)版本是LEONl,它是由歐洲航天局主持設(shè)計(jì)開(kāi)發(fā)的。LEONl的設(shè)計(jì)初衷是為了使歐洲能夠擺脫在航空航天高性能嵌入式處理器上對(duì)美國(guó)的嚴(yán)重依賴。以Jiri Caisler為首的設(shè)計(jì)團(tuán)隊(duì)在完成LEONl后從歐洲航天局獨(dú)立出來(lái),成立了Gaisler Research公司,后來(lái)就推出了LE―ON2處理器。LEON2是一個(gè)可配置的微處理器核,使用SPARC V8指令集,它的源代碼由可綜合的VHDL代碼構(gòu)成。LEON2內(nèi)部結(jié)構(gòu)如圖3所示。
LEON2的整數(shù)處理單元是5級(jí)流水線設(shè)計(jì),采用SPARC V8(IEEE一1754)指令和體系結(jié)構(gòu),具有分離的數(shù)據(jù)Cache和指令Cache。LEON2的整數(shù)單元包括一個(gè)可選的16×16的MAC單元,能夠完成基本的DSP運(yùn)算,同時(shí)還提供了浮點(diǎn)運(yùn)算單元(FPU)的接口和協(xié)處理器(CP)的接口,可以擴(kuò)展浮點(diǎn)運(yùn)算和DSP處理。LEON2選用了ARM公司的AMBA 2.0片上總線標(biāo)準(zhǔn),用于連接內(nèi)存控制器、定時(shí)器、中斷控制器、UART接口、PCI接口、10/100 Mb/s以太網(wǎng)接口等模塊。LEON2同時(shí)還提供1個(gè)調(diào)試支持單元和1個(gè)調(diào)試串口,用于支持片內(nèi)調(diào)試。LEON2的一個(gè)非常重要的特點(diǎn)就是具有很好的可配置性。使用者根據(jù)自己的需要,通過(guò)一個(gè)用tcl/tk腳本編寫(xiě)的圖形化界面,對(duì)LEON2內(nèi)核的絕大多數(shù)模塊進(jìn)行配置,比如可以配置Cache的大小和訪問(wèn)方式,是否支持硬件乘/除法,是否需要內(nèi)存。
Gaisler Research公司還提供了比較完善的基于LEON2的GNU軟件開(kāi)發(fā)環(huán)境。使用者可以使用TSIM或GRMON進(jìn)行LEON內(nèi)核的調(diào)試仿真。 LECCS是專(zhuān)門(mén)針對(duì)LEON的交叉編譯系統(tǒng),可以進(jìn)行C/C++的編譯和調(diào)試。SnapGear Linux是基于LClinux的實(shí)時(shí)Linux內(nèi)核,它的LEON版提供了對(duì)LEON處理器的全面支持,可以支持MMU和NOM―MU等不同配置方案。
由以上描述可以看出,LEON2具有強(qiáng)大的硬件配置和完備的軟件開(kāi)發(fā)環(huán)境支持,可以承擔(dān)數(shù)字機(jī)頂盒CPU要求的各種信號(hào)處理任務(wù)。
3 在FPGA開(kāi)發(fā)板上建立LEON2的SoC平臺(tái)
3.1 硬件平臺(tái)的建立
圖4就是基于LEON2的平臺(tái)的模塊框圖。LE―ON2處理器作為核心部分,片內(nèi)ROM存放Monitor負(fù)責(zé)系統(tǒng)初始化和將程序拷貝到片外SRAM內(nèi)的任務(wù),片外RAM是FPGA開(kāi)發(fā)板上Memory,用來(lái)存放程序和數(shù)據(jù)。設(shè)計(jì)的IP核通過(guò)AHB總線和LEON2相互交互。
FPGA開(kāi)發(fā)板主要有以下資源:50 MHz有源時(shí)鐘;1塊Altera公司的核心FPGA芯片EP2C20F484一C8,邏輯單元18 752個(gè);2片512 KB的IS61LV25616一AL SRAM芯片組成32 b寬共1 MB容量,其中每片設(shè)計(jì)為可兼容1 MB,總共最大可擴(kuò)充到2 MB;JTAG接口(通過(guò)JTAG接口可以從PC機(jī)上對(duì)EP2C20F484C8進(jìn)行編程);串口與計(jì)算機(jī)COMl相連,可以用于程序下載。
將配置好的LEON2的VHDL代碼,加入設(shè)計(jì)的HDL代碼,一起使用Synplify綜合工具生成FPGA的網(wǎng)表文件;然后使用Quartus進(jìn)行布局布線,將LEON2核同片內(nèi)ROM和片外SRAM連接,布局布線完成后生成相應(yīng)的SOF文件;通過(guò)JTAG端口將SOF文件下載到片子上去,對(duì)FPGA硬件進(jìn)行配置,最后占用FPGA資源是5 800個(gè)邏輯單元,可以達(dá)到的時(shí)鐘頻率最大為46 MHz。
3.2 軟件設(shè)計(jì)
由于Quartus軟件可以預(yù)先配置EP2C20F484C8片上ROM,所以可以在LEON2的片上ROM預(yù)先配置好的1 KB大小的Monitor軟件。Monitor的主要作用是在LEON2系統(tǒng)reset初始化時(shí)首先對(duì)處理器初始化,對(duì)LEON2的存儲(chǔ)配置寄存器進(jìn)行配置;然后向UART口發(fā)送啟動(dòng)信息;等待UART信息。當(dāng)軟件部分使用交叉編譯器LECCS在PC上編譯完畢后,PC機(jī)通過(guò)UART口和FPGA開(kāi)發(fā)板相互通信,就可以將編譯好的srec文件下載到:FPGA開(kāi)發(fā)板上,放置在片內(nèi)ROM里面的Monitor程序就讀入程序的內(nèi)容以及程序的起始地址。開(kāi)始Monitor將srec程序拷貝到SRAM程序區(qū),等全部程序下載好以后,Monitor最后1條程序就會(huì)自動(dòng)跳轉(zhuǎn)到程序的起始位置,執(zhí)行SRAM里的程序。這樣就可以反復(fù)修改程序,反復(fù)下載程序,便于軟件的開(kāi)發(fā)和調(diào)試。
4 結(jié) 語(yǔ)
通過(guò)將片上系統(tǒng)映射到FPGA,這樣可以在接近運(yùn)行速度的前提下,驗(yàn)證硬件和軟件。這樣不僅為軟件部分能盡早地進(jìn)行開(kāi)發(fā)與調(diào)試工作提供了原型,同時(shí)也可以在實(shí)際運(yùn)行中發(fā)現(xiàn)一些在系統(tǒng)設(shè)計(jì)中沒(méi)有注意的地方。最終可以縮短設(shè)計(jì)周期,同時(shí)為ASIC設(shè)計(jì)一次成功提供了更大的把握。
在FPGA開(kāi)發(fā)板上建立基于LEON2處理器的SoC平臺(tái)后,使用這個(gè)原型系統(tǒng),就可以很容易驗(yàn)證系統(tǒng)的性能,并且加速軟件開(kāi)發(fā)調(diào)試流程。
評(píng)論