當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于LEON微處理器的SOC原型平臺設(shè)計(jì)

隨著IC制造工藝水平的快速發(fā)展,片上系統(tǒng)(SOC)在ASIC設(shè)計(jì)中得到廣泛應(yīng)用。微處理器IP核是SOC片上系統(tǒng)的核心部分。但是大多數(shù)公司和研究機(jī)構(gòu)沒有足夠的財(cái)力與人力開發(fā)自己的處理器,所以業(yè)界比較流行的做法就是購買微處理器的IP核,例如ARM核或MIPS核,但需要數(shù)十萬美金的許可證費(fèi)用的投入。

   除了昂貴的ARM核與MIPS核以外,我們還有另外一種選擇,就是選擇開放源代碼的微處理器的IP核。目前可以實(shí)際使用的開放源代碼處理器有LEON系列與OPENRISC系列兩種。本文就介紹了LEON2微處理器核,快速的建立起一個(gè)SOC的平臺的原型對于驗(yàn)證系統(tǒng)性能與加快軟件開發(fā)都是相當(dāng)重要的。本文還詳細(xì)闡述了如何在Altera的FPGA開發(fā)板上建立基于LEON2微處理器的SOC原型平臺。

  1 LEON2微處理器

  LEON處理器系列是歐洲航天局的下屬的研究所開發(fā)的32位微處理器,應(yīng)用在航天局的各種ASIC芯片內(nèi)。目前有LEON2,LEON3系列。LEON系列處理器是一個(gè)可配置,可綜合適于在SOC設(shè)計(jì)中應(yīng)用的微處理器核。LEON2處理器是一個(gè)使用SPARC V8指令集的32位的RISC處理器,它的源代碼由可綜合的VHDL代碼構(gòu)成。同時(shí)LEON2的性能也很不錯(cuò),使用Dhrystone2.1的測試平臺,LEON可以達(dá)到大約0.85MIPS/MHz。更大的好處是LEON處理器是一個(gè)公開源代碼,遵循GNU LGPL協(xié)議。任何人都可以其網(wǎng)站上免費(fèi)下載其硬件代碼和各種開發(fā)軟件工具與相關(guān)文檔。并且在自己ASIC項(xiàng)目中使用。

       LENO2的處理器具有以下的特點(diǎn):

       內(nèi)部使用了5級流水線,兼容SPARC V8指令集。

       具有硬件乘法,除法和MAC的功能。

       具有分開的指令和數(shù)據(jù)cache結(jié)構(gòu)(哈佛結(jié)構(gòu)),可以根據(jù)需求靈活的配置cache的容量,大小范圍是1-64kbyte。

       片上總線規(guī)范使用了AMBA2.0規(guī)范,支持APB,和AHB標(biāo)準(zhǔn)。

       具備一些片上常用外設(shè),包括UART,中斷控制,I/O端口,實(shí)時(shí)時(shí)鐘,看門狗等。

       支持硬件調(diào)試功能。

圖1是LEON2的結(jié)構(gòu)框圖,虛線部分內(nèi)是LEON2處理器的組成部分。

 

  

                             圖1  LEON處理器的結(jié)構(gòu)框圖

     從上面的介紹可以看出,LEON2的性能相當(dāng)不錯(cuò),但是作為一個(gè)處理器,除了本身的性能以外,同時(shí)還必須要有高效的編譯器軟件開發(fā)環(huán)境,各種應(yīng)用軟件和操作系統(tǒng)的支持。ARM和MIPS在嵌入式的廣泛應(yīng)用,與其背后的高效的軟件編譯開發(fā)工具,以及眾多支持ARM和MIPS的實(shí)時(shí)操作系統(tǒng)軟件有很大關(guān)系。很多公司選擇ARM或MIPS,不僅看重微處理器的性能,更大的方面是看重其背后的軟件支持環(huán)境。雖然LEON系列在這一點(diǎn)上不如商用微處理器,但是也是相當(dāng)不錯(cuò)了。和硬件代碼一起,可以下載LECCS,一個(gè)基于GCC的免費(fèi)的C/C++的交叉編譯系統(tǒng),同時(shí)也可以使用GDB調(diào)試工具做源代碼級別的調(diào)試。開源社區(qū)還提供免費(fèi)的實(shí)時(shí)系統(tǒng)RTEMS,UClinux,eCos等免費(fèi)實(shí)時(shí)操作系統(tǒng)。上述實(shí)時(shí)操作系統(tǒng)都已在LEON2處理器上移植成功了。

   由于LEON2處理器的源代碼是公開的,任何人都可以免費(fèi)得到和使用。很多研究機(jī)構(gòu)和公司沒有自己的處理器的核,如果去開發(fā),需要大量的人力物力支持,而且附帶的各種軟件編譯器的開發(fā)也需要大量的工作,對于中小型的公司或研究院很難做到。如果通過購買ARM或者M(jìn)IPS的核,通常都需要幾十萬美金的許可證的費(fèi)用,同時(shí)以后的產(chǎn)品也必須要付一定的費(fèi)用。而LEON系列處理器就給了這些公司和研究機(jī)構(gòu)另外的一種選擇。雖然在功耗和性能上同常用的ARM,MIPS等處理器還有些不足,但是完全可以使用。LEON處理器是經(jīng)過了多個(gè)ASIC芯片流片成功的實(shí)踐檢驗(yàn)。目前基于LEON系列的ASIC芯片也有幾十個(gè)項(xiàng)目。

       2 在FPGA開發(fā)板上建立基于LEON2的SOC原型平臺

  隨著片上系統(tǒng)復(fù)雜性的不斷增加,為了克服片上系統(tǒng)(SOC)設(shè)計(jì)的挑戰(zhàn),半導(dǎo)體業(yè)界正在采取一種基于系統(tǒng)原型的平臺設(shè)計(jì)方法。這種方法就是通過將片上系統(tǒng)映射到FPGA,這樣可以在接近運(yùn)行速度的前提下,驗(yàn)證硬件和軟件。這樣不僅給為軟件部分能盡早的進(jìn)行開發(fā)與調(diào)試工作提供了一個(gè)原型,同時(shí)也可以在實(shí)際運(yùn)行中發(fā)現(xiàn)一些在系統(tǒng)設(shè)計(jì)中沒有注意的地方。這樣最終可以縮短設(shè)計(jì)周期,同時(shí)為ASIC設(shè)計(jì)一次成功提供了更大的把握。

   在我們的設(shè)計(jì)中,為了上述的目的,所以決定在FPGA開發(fā)板上建立基于LEON2處理器的SOC平臺。使用這個(gè)原型系統(tǒng),就可以很容易驗(yàn)證系統(tǒng)的性能,并且加速軟件開發(fā)調(diào)試流程。圖2 就是我們的一個(gè)基于LEON2的平臺的模塊框圖。LEON2處理器作為核心部分,片內(nèi)ROM存放monitor負(fù)責(zé)系統(tǒng)初始化和將程序拷貝到片外SRAM內(nèi)的任務(wù),片外RAM是FPGA開發(fā)板上memory,用來存放程序和數(shù)據(jù)。我們自己設(shè)計(jì)的IP核通過AHB總線和LEON2相互交互。

    FPGA開發(fā)板是Altera公司的FPGA開發(fā)板NIOS。板上主要有以下資源,一塊APEX20KE的FPGA,256K字節(jié)的RAM(2個(gè)64K*16bit的片子),JTAG接口(通過JTAG接口我們可以從PC機(jī)上對APEX20KE進(jìn)行編程),串行口和計(jì)算機(jī)的COM1口相連。APEX20KE是Altera公司的可編程邏輯器件,標(biāo)準(zhǔn)門數(shù)為20萬門左右,片上可配置RAM或ROM為10K。

  開發(fā)流程如圖3開發(fā)流程圖。

       硬件流程: LEON2軟核用VHDL代碼編寫的,和我們的VHDL設(shè)計(jì)文件一起使用Synplify綜合工具生成FPGA的網(wǎng)表文件,然后使用Altera公司的布局布線和下載的工具Quartus生成相應(yīng)的SOF文件。通過JTAG端口將SOF文件下載到片子上去。對FPGA硬件進(jìn)行配置。由于Quartus軟件可以預(yù)先配置APEX20KE片上ROM,所以我們可以利用這一點(diǎn),在LEON2的片上ROM預(yù)先配置好1K大小的Monitor軟件。

       軟件開發(fā)流程,當(dāng)軟件代碼完成以后,使用LEON2的基于GCC的LECCS交叉編譯系統(tǒng)對C代碼編譯,得到二進(jìn)制代碼以后,就可以通過串行口下載到FPGA開發(fā)板上。

       3 軟硬件詳細(xì)設(shè)計(jì)

  在LEON的開發(fā)網(wǎng)站上可以下載VHDL代碼, LEON2是一個(gè)可配置的處理器核,可以根據(jù)具體系統(tǒng)的應(yīng)用范圍,對處理器的性能進(jìn)行權(quán)衡。例如可以將指令和數(shù)據(jù)cache進(jìn)行設(shè)置,選擇從1kbyte到64kbyte的大小。同時(shí)選擇處理器是否要支持硬件乘法器。是否要有硬件debug的功能等等。圖四是LEON2的處理器配置的界面,將各個(gè)選項(xiàng)部分配置完畢,系統(tǒng)生成對應(yīng)的VHDL代碼。

  

 

                    圖四   LEON2處理器的配置

  在最終的設(shè)計(jì)中,選取了指令和數(shù)據(jù)cache分別是1kbyte,不帶有硬件乘法功能的模塊。得到LEON2的VHDL代碼,然后加入我們自己設(shè)計(jì)的HDL代碼,使用modelsim做簡單的功能仿真。等功能仿真通過后,使用synplify對VHDL綜合,應(yīng)用 APEX20KE器件,最終的綜合結(jié)果是:占用 FPGA資源是5800個(gè)LE,可以達(dá)到的時(shí)鐘頻率最大46M。應(yīng)當(dāng)注意的是,由于APEX20KE器件是Altera公司2000年的產(chǎn)品,如果采用Altera新一代的FPGA器件,例如StratixII器件,時(shí)鐘頻率可以達(dá)到107M,可以滿足大多數(shù)的應(yīng)用領(lǐng)域。

  使用quartus進(jìn)行布局布線時(shí),需要將LEON2和外圍的memory連接起來, LEON2對程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是統(tǒng)一尋址。但是在FPGA原型平臺設(shè)計(jì)時(shí),軟件需要多次修改調(diào)試,所以不能采取將程序固化在片外flash這種做法。所以采用了圖5的結(jié)構(gòu),LEON2核同片內(nèi)ROM和片外SRAM連接。其中ROM存放了一個(gè)monitor程序。由于這個(gè)部分是整個(gè)平臺正常工作的核心,所以下面我專門對它做詳細(xì)的解釋。

                                     圖 5 LEON2與存儲(chǔ)器的連接

  LEON2的平臺中有兩個(gè)memory,分別是片內(nèi)ROM,片外SRAM,LEON2對存儲(chǔ)器是統(tǒng)一尋址的。分配如下:

       Monitor的主要作用是在LEON2系統(tǒng)reset初始化的時(shí)候首先對處理器初始化,對LEON2的存儲(chǔ)配置寄存器進(jìn)行配置。然后向UART口發(fā)送啟動(dòng)信息,然后等待從UART信息。當(dāng)軟件部分使用交叉編譯器LECCS在PC上編譯完畢后, PC機(jī)通過UART口和FPGA開發(fā)板相互通信,就可以將編譯好的srec文件下載到FPGA開發(fā)板上去,放置在片內(nèi)rom里面的monitor程序就讀入程序的內(nèi)容以及程序的起始地址。起先monitor將srec程序拷貝到SRAM程序區(qū),等全部程序下載好以后, monitor最后一條程序就會(huì)自動(dòng)跳轉(zhuǎn)到程序的起始位置,執(zhí)行SRAM里的程序。

  使用圖5的連接。由于data_to_leon[31:0]的數(shù)據(jù)線是單向的,我們使用多路復(fù)用器來選擇從外部SRAM的數(shù)據(jù)輸入或者內(nèi)部ROM數(shù)據(jù)輸入和data_to_leon[31:0]相互連接,使用romsn[0]來選擇。romsn[0]只有當(dāng)訪問PROM時(shí)才會(huì)置低,也就是地址為0x00000000-0x1FFFFFFF的時(shí)候。根據(jù)上面的描述只有系統(tǒng)reset初始化的時(shí)候訪問PROM,也就是romsn[0]置低,等下載的程序全部都拷貝到SRAM程序區(qū)以后,monitor會(huì)控制LEON2處理器跳轉(zhuǎn)到程序的起始位置,也就是片外的SRAM內(nèi),這時(shí)候romsn[0]保持高電平,也就是data_to_len[31:0]于ram_datain[31:0]連接。這樣系統(tǒng)就只會(huì)接收外部SRAM的數(shù)據(jù)。

  也就是,程序下載完畢后,就只會(huì)執(zhí)行下載的程序。這樣就可以反復(fù)修改程序,反復(fù)下載程序??梢栽诶眠@個(gè)原型平臺開發(fā)和調(diào)試軟件硬件程序。

  最終,在FPGA里根據(jù)上面圖5的連接將LEON2分別和片內(nèi)ROM,片外SRAM相互連接,其中片內(nèi)rom放入了前面所說的monitor的程序。使用quartus做布局布線和下載。最終在FPGA開發(fā)板上建立了LEON2的SOC原型平臺,系統(tǒng)可以穩(wěn)定的工作在33M的時(shí)鐘下,并且由于FPGA的可多次配置的特性,極大的方便了軟件模塊和硬件模塊的開發(fā)調(diào)試工作。

    4 總結(jié)和題外話

  上面的內(nèi)容論述了如何利用Altera的FPAG開發(fā)板資源,使用開放源代碼的LEON2微處理器,建立一個(gè)基于LEON2SOC原型開發(fā)平臺。并且從軟件結(jié)構(gòu)和硬件設(shè)計(jì)的兩個(gè)方面詳細(xì)介紹了這個(gè)平臺的建立。經(jīng)過實(shí)際使用,完全滿足要求,加快了我們的項(xiàng)目開發(fā)進(jìn)度。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉