針對(duì)FPGA的完全可配置LatticeMico32位RISC處理器
出處:Alexander Hahn 萊迪思半導(dǎo)體公司 發(fā)布于:2011-07-09 17:14:34
使用嵌入式微處理器的FPGA設(shè)計(jì)不斷增長(zhǎng)。根據(jù)Dataquest的統(tǒng)計(jì),一年大約啟動(dòng)10萬(wàn)個(gè)FPGA設(shè)計(jì)項(xiàng)目,其中約30%包含某種形式的微處理器。從傳統(tǒng)上而言,對(duì)嵌入式FPGA微處理器有一些限制,包括成本,速度和設(shè)計(jì)性能。隨著工藝技術(shù)和設(shè)計(jì)技術(shù)的進(jìn)步,這些限制正在不斷改善,現(xiàn)在設(shè)計(jì)人員更有可能在他們的應(yīng)用中考慮使用嵌入式FPGA微處理器。
FPGA一般來(lái)說(shuō)比ASIC(專用集成芯片)的速度要慢,無(wú)法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開(kāi)發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。
與過(guò)去相比,現(xiàn)成的微處理器已經(jīng)大大比嵌入式微處理器便宜。編寫,測(cè)試和在微處理器上調(diào)試運(yùn)行的代碼需要多久?在過(guò)去幾年中,在整體功能和易用性方面,針對(duì)嵌入式微處理器開(kāi)發(fā)的軟件工具也有了明顯的改善。因此,現(xiàn)在可以在幾分鐘內(nèi)運(yùn)行設(shè)計(jì),并且進(jìn)行測(cè)試。產(chǎn)品上市的時(shí)間縮短了,因?yàn)楝F(xiàn)在用軟件實(shí)現(xiàn)功能比硬件更快,更簡(jiǎn)單。
用現(xiàn)成的微處理器達(dá)到的性能有良好的歷史記錄。隨著技術(shù)的改進(jìn),F(xiàn)PGA在功能和整個(gè)系統(tǒng)的速度方面有了顯著的進(jìn)步。由于現(xiàn)在的FPGA能夠處理更大的帶寬,嵌入式處理器對(duì)于許多設(shè)計(jì)有很大的吸引力。此外,由于FPGA與其他專用模塊的緊密配合,軟IP核的擴(kuò)展性提供了一個(gè)系統(tǒng)接口,就性能和吞吐量方面而言,現(xiàn)在一個(gè)片上處理器可以提供卓越的設(shè)計(jì)方案。
當(dāng)評(píng)估諸如LatticeMico32這樣的特殊處理器時(shí),使用嵌入式軟處理器的優(yōu)點(diǎn)非常清楚。
一個(gè)典型的嵌入式處理器子系統(tǒng)
嵌入式處理器是嵌入式系統(tǒng)的,是控制、輔助系統(tǒng)運(yùn)行的硬件單元。范圍極其廣闊,從初的4位處理器,目前仍在大規(guī)模應(yīng)用的8位單片機(jī),到的受到廣泛青睞的32位,64位嵌入式CPU。
讓我們來(lái)看看一個(gè)典型的嵌入式處理器子系統(tǒng),例如,LatticeMico32軟處理器。該處理器需要有能與外界通信的功能,因此通常核連接到一個(gè)片上總線系統(tǒng),在此情況下是WISHBONE開(kāi)放源代碼總線。對(duì)外部通信而言,在一個(gè)典型的系統(tǒng)中有各種接口,從簡(jiǎn)單的通信接口和連接、更復(fù)雜的協(xié)議到應(yīng)用中的專用硬件模塊?,F(xiàn)在該處理器總線架構(gòu)需要連接外設(shè)和存儲(chǔ)器系統(tǒng)。一個(gè)典型的系統(tǒng)如圖1所示。

圖1 典型的嵌入式RISC處理器子系統(tǒng)
嵌入式微控制器的典型代表是單片機(jī),從70年代末單片機(jī)出現(xiàn)到今天,雖然已經(jīng)經(jīng)過(guò)了20多年的歷史,但這種8位的電子器件目前在嵌入式設(shè)備中仍然有著極其廣泛的應(yīng)用。單片機(jī)芯片內(nèi)部集成ROM/EPROM、RAM、總線、總線邏輯、定時(shí)/計(jì)數(shù)器、看門狗、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A、Flash RAM、EEPROM等各種必要功能和外設(shè)。和嵌入式微處理器相比,微控制器的特點(diǎn)是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。微控制器的片上外設(shè)資源一般比較豐富,適合于控制,因此稱微控制器。
讓我們來(lái)看看處理器核本身:LatticeMico32是基于哈佛總線結(jié)構(gòu)的RISC架構(gòu)的微處理器(圖2)。 RISC體系結(jié)構(gòu)提供了一個(gè)簡(jiǎn)單的指令集和更快的性能。哈佛總線架構(gòu)提供獨(dú)立的指令和數(shù)據(jù)總線,能夠執(zhí)行單周期指令。該處理器擁有32個(gè)通用寄存器,可處理多達(dá)32個(gè)外部的中斷。定制的處理器可以插入乘法器或桶形移位器,以及不同的調(diào)試功能。
RISC(reduced instruction set computer,精簡(jiǎn)指令集計(jì)算機(jī))是一種執(zhí)行較少類型計(jì)算機(jī)指令的微處理器,起源于80 年代的MIPS主機(jī)(即RISC 機(jī)),RISC機(jī)中采用的微處理器統(tǒng)稱RISC處理器。這樣一來(lái),它能夠以更快的速度執(zhí)行操作(每秒執(zhí)行更多百萬(wàn)條指令,即MIPS)。因?yàn)橛?jì)算機(jī)執(zhí)行每個(gè)指令類型都需要額外的晶體管和電路元件,計(jì)算機(jī)指令集越大就會(huì)使微處理器更復(fù)雜,執(zhí)行操作也會(huì)更慢。
RISC概念已經(jīng)引領(lǐng)了微處理器設(shè)計(jì)的一個(gè)更深層次的思索。設(shè)計(jì)中必須考慮到:指令應(yīng)該如何較好的映射到微處理器的時(shí)鐘速度上(理想情況下,一條指令應(yīng)在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行完);體系結(jié)構(gòu)需要多“簡(jiǎn)單”;以及在不訴諸于軟件的幫助下,微芯片本身能做多少工作等等。

圖2 LatticeMico32:一個(gè)可配置的RISC處理器核
Mico32可以用于各種存儲(chǔ)系統(tǒng),同時(shí)使用內(nèi)嵌存儲(chǔ)器用于存儲(chǔ)指令和數(shù)據(jù)。內(nèi)嵌存儲(chǔ)器可以建立一個(gè)本地哈佛結(jié)構(gòu),并允許單周期訪問(wèn)指令和數(shù)據(jù)。對(duì)于更大的存儲(chǔ)器需求,諸如SSRAM、Flash和DRAM。處理所有訪問(wèn)協(xié)議至外部存儲(chǔ)器的合適接口模塊是由MSB提供的。提供可選的指令和數(shù)據(jù)高速緩存,能夠配置成各種選擇(高速緩存的大小,高速緩存塊的大小等等)。
通過(guò)一個(gè)開(kāi)放源碼Wishbone總線接口,該處理器連接到各種外圍元件。針對(duì)快速周轉(zhuǎn)周期,圖形用戶界面可以輕松和快速地創(chuàng)建處理器平臺(tái)。除了標(biāo)準(zhǔn)存儲(chǔ)器控制器,這可能包括各種接口,不僅支持I2C、通用IO、定時(shí)器,UART以及SPI,還能支持更復(fù)雜的模塊,如PCI接口或TriSpeed以太網(wǎng)MAC。
除了外圍元件和DMA,用戶可以自定義仲裁方案??偩€結(jié)構(gòu)產(chǎn)生器支持主器件(master)方和從器件(Slave)方的總線仲裁。如果能夠滿足系統(tǒng)性能的要求,主器件方總線仲裁提供了一個(gè)簡(jiǎn)單的低成本解決方案。在許多設(shè)計(jì)中,通過(guò)兩個(gè)或兩個(gè)以上的總線主器件同時(shí)與獨(dú)立的從器件進(jìn)行通信,從器件方仲裁改進(jìn)了性能。圖3展示了可用的仲裁方案。

圖3 仲裁方案
為了加快微控制器平臺(tái)的開(kāi)發(fā),幾個(gè)外圍元件可與LatticeMico32微處理器一起使用。通過(guò)Wishbone總線接口把這些元件連接到處理器,這是一個(gè)由OpenCores組織制定的開(kāi)放協(xié)議。通過(guò)使用這個(gè)開(kāi)放源總線接口,用戶可以把自己的WISHBONE元件放入其嵌入式設(shè)計(jì)。
用戶還可以創(chuàng)建自己的基于Wishbone總線的外設(shè)元件,然后通過(guò)整合到MSB自動(dòng)連接到總線。因此,LatticeMico32的架構(gòu)提供了兩種可能性:,人們可以創(chuàng)建定制的元件,將它放人MSB中的可用元件列表(圖4)。第二,可以構(gòu)建出所謂的Passthru元件,可以將Wishbone接口引出到核的外面,因此,用戶可以在FPGA的其他部分添加任何邏輯塊。

圖4 創(chuàng)建定制的外圍組件
這些配置選項(xiàng)能夠針對(duì)不同的應(yīng)用定制LatticeMico32。帶寬范圍從小的和片內(nèi)或片外存儲(chǔ)器面積優(yōu)化的控制器到具有多個(gè)接口的全功能平臺(tái),以及訪問(wèn)更大的存儲(chǔ)器(可能是片外)。從FPGA訪問(wèn)其他的邏輯模塊還允許處理器系統(tǒng)和FPGA專用模塊之間的密切互動(dòng),以便進(jìn)一步改進(jìn)性能。取消了傳統(tǒng)上使用并行于FPGA的外部控制器的復(fù)雜訪問(wèn)機(jī)制。
可擴(kuò)展性
由于處理器代碼是可讀的Verilog RTL代碼,用戶可以輕松識(shí)別IP功能塊,諸如取指令單元,指令譯碼或ALU,以及各種流水線階段。因此,通過(guò)定制指令,這些也可以修改和增強(qiáng)。用戶也可以執(zhí)行操作碼。因此,在指令字中,LatticeMico32提供了備用的操作碼域。
遵照以下一些基本的步驟,可以構(gòu)建自定義指令:
增強(qiáng)的指令譯碼器。這是一個(gè)簡(jiǎn)單的情況,提取內(nèi)部操作碼的功能,并生成需要整合此命令至LatticeMico32的所有必須的控制信號(hào)。
寫功能的實(shí)現(xiàn)并將其整合至LatticeMico32 的ALU。
對(duì)于多周期命令,構(gòu)建必要的拖延信號(hào),以便妥善處理處理器流水線。
如果需要其他的專門邏輯(例如額外的專用寄存器),這可以單獨(dú)的添加到核。
通過(guò)定制指令和添加定制外設(shè),擴(kuò)展處理器核是一個(gè)非常有效的方式,用來(lái)定制處理器的核以便實(shí)現(xiàn)系統(tǒng)的性能要求。通常情況下,一些專門的功能用硬件實(shí)現(xiàn)比軟件更好?;虿⑿刑幚砜梢垣@得額外的性能。這將保持用同樣的方式處理這些部件的功能,如同正常的軟件代碼或使用標(biāo)準(zhǔn)外設(shè)。
對(duì)于需要數(shù)據(jù)/信號(hào)處理功能的應(yīng)用,往往需要組合RISC處理器的功能和DSP,以達(dá)到系統(tǒng)的性能和吞吐量。添加擴(kuò)展和定制元件還可以包括信號(hào)處理單元??梢杂糜布浅S行У貙?shí)現(xiàn),使用專用的DSP塊,諸如乘/累加,用各種FPGA的硬件都可以實(shí)現(xiàn)這些功能。
設(shè)計(jì)環(huán)境
LatticeMico32系統(tǒng)擁有三個(gè)集成工具:
MicoSystem Builder(MSB)
針對(duì)硬件實(shí)現(xiàn),MSB產(chǎn)生平臺(tái)描述和相關(guān)的硬件描述語(yǔ)言(HDL)代碼。設(shè)計(jì)人員可以選擇連接到微處理器的外圍組件,以及指定它們之間的連接。
C/C++軟件工程環(huán)境(SPE)
C/C++ SPE調(diào)用編譯器,匯編器和連接器,使代碼的開(kāi)發(fā)針對(duì)運(yùn)行于用MSB構(gòu)建的平臺(tái)??梢酝ㄟ^(guò)C/C++ SPE來(lái)完成,用MSB構(gòu)建的平臺(tái)可以作為參考。
調(diào)試器和Reveal邏輯分析器
在C/C + +源代碼調(diào)試器提供匯編中的調(diào)試功能,并能夠觀察處理器的寄存器和存儲(chǔ)器。設(shè)計(jì)人員還可以使用萊迪思的Reveal邏輯分析器觀察和控制硬件中代碼的執(zhí)行情況。
在構(gòu)建過(guò)程中,用完全可讀的RTL Verilog源代碼創(chuàng)建處理器的代碼及其外圍設(shè)備。提供用于綜合和仿真的腳本,約束文件關(guān)注硬件的設(shè)置和引腳。
目前有3種操作系統(tǒng): Theobroma Systems的uClinux 和U-Boot、Micriμm的μC/OS-II RTOS和TOPPERS/JSP的μITRON RTOS。
LatticeMico32提供了一個(gè)開(kāi)放源碼許可證。萊迪思的開(kāi)放IP核許可協(xié)議將與MSB工具生成的HDL代碼一起使用。大部分圖形用戶界面將在Eclipse的授權(quán)許可下使用,同時(shí)對(duì)軟件的內(nèi)部運(yùn)作,如編譯器、匯編器,連接器和調(diào)試器,許可協(xié)議將遵循GNU-GPL。
因?yàn)檫@是開(kāi)放源碼軟IP,這個(gè)處理器的IP核還可以遷移到其他技術(shù)并加以實(shí)現(xiàn)。
性能和資源利用
LatticeMico32是采用哈佛存儲(chǔ)器架構(gòu)的RISC設(shè)計(jì)。哈佛架構(gòu)允許執(zhí)行單周期指令,因?yàn)樵试S同時(shí)訪問(wèn)獨(dú)立的32位指令和數(shù)據(jù)總線。LatticeMico32有32個(gè)通用寄存器,可處理多達(dá)32個(gè)外部中斷。有兩個(gè)可選方法來(lái)改善吞吐量,以避免Wishbone總線訪問(wèn)指令和數(shù)據(jù)存儲(chǔ)器。種方法是使用高速緩存。第二種方法是使用“內(nèi)聯(lián)”存儲(chǔ)器。內(nèi)聯(lián)存儲(chǔ)器是直接與指令和/或數(shù)據(jù)流水線相連的存儲(chǔ)器,而不是通過(guò)WISHBONE 來(lái)訪問(wèn)。這兩種方法可在一起使用。
LatticeMico32具有很高的性能并占用的資源。對(duì)那些關(guān)心資源的設(shè)計(jì)者來(lái)說(shuō),基本配置不使用指令或數(shù)據(jù)高速緩存、單周期移位器,也沒(méi)有乘法器。對(duì)于那些更加關(guān)心性能的設(shè)計(jì)人員而言,全面配置使用8K字節(jié)指令高速緩存、8K字節(jié)的數(shù)據(jù)高速緩存、3個(gè)周期的移位器和乘法器。對(duì)需要考慮折衷方案的用戶,標(biāo)準(zhǔn)配置類似于全面配置,但沒(méi)有8K字節(jié)的數(shù)據(jù)高速緩存。表1展示了針對(duì)LatticeECP3 FPGA的資源利用率和性能。

表1 LatticeMico32資源利用率和使用LatticeECP3的性能
開(kāi)放源代碼方法
開(kāi)放源代碼能夠觀察微處理器的細(xì)節(jié)。通過(guò)訪問(wèn)源代碼,設(shè)計(jì)人員對(duì)這個(gè)核的細(xì)節(jié)會(huì)有一個(gè)全面的了解。此外,開(kāi)放源碼對(duì)這個(gè)IP提供了更大的靈活性,并且對(duì)每個(gè)人都開(kāi)放,因此設(shè)計(jì)人員可以對(duì)它進(jìn)行核查,并對(duì)此IP作出改進(jìn)。這種采用開(kāi)放源代碼的方法使整個(gè)用戶群體幫助查明問(wèn)題所在,并制定解決方案。這意味著,不僅允許用戶修改源代碼,還鼓勵(lì)他們這樣做。這種用戶群體相互促進(jìn)導(dǎo)致開(kāi)放源代碼的IP往往比傳統(tǒng)的專有IP更加穩(wěn)健和可靠。終,開(kāi)放源碼提供了改進(jìn)的可移植性。用戶贊賞獨(dú)立的架構(gòu),因?yàn)橐粋€(gè)開(kāi)放源代碼的IP核可用于任何FPGA ,甚至可以遷移到一個(gè)更高批量,成熟設(shè)計(jì)的ASIC中。獨(dú)立的架構(gòu)是很有價(jià)值的,因?yàn)樗軌虼_保在一分鐘對(duì)器件做出修改的情況。
總結(jié)
LatticeMico32是一個(gè)完整的嵌入式微處理器設(shè)計(jì)方案。它提供了一個(gè)靈活的架構(gòu),并允許用戶定制處理器系統(tǒng)以滿足系統(tǒng)的要求(性能、成本、功耗)。處理器的IP和專用硬件的密切配合提供了一個(gè)易于使用的環(huán)境,這也可顯著提升系統(tǒng)的性能,使設(shè)計(jì)擁有很大的靈活性。
LatticeMico32開(kāi)發(fā)工具可以很容易地在FPGA中實(shí)現(xiàn)一個(gè)微處理器和與之連接的外圍元件。一些設(shè)計(jì)師對(duì)LatticeMico32評(píng)價(jià)非常高。易用性確保少的設(shè)計(jì)時(shí)間,從而使得產(chǎn)品能夠更快的上市,一些設(shè)計(jì)師對(duì)
根據(jù)開(kāi)放源代碼許可證和軟件開(kāi)發(fā)工具各自的開(kāi)放源代碼許可證,如Eclipse和GNU - GPL,提供生成的HDL,萊迪思可以讓用戶完全控制其設(shè)計(jì)。開(kāi)放源代碼為設(shè)計(jì)人員提供所需要的可視性,靈活性和便攜性。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開(kāi)發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- PCB電源完整性(PI)設(shè)計(jì)核心實(shí)操規(guī)范
- 多層PCB疊層設(shè)計(jì)核心實(shí)操規(guī)范
- 提高M(jìn)OSFET效率的電路優(yōu)化方法
- 電源管理IC在智能家居中的應(yīng)用
- 差分信號(hào)連接器設(shè)計(jì)要點(diǎn)
- PCB焊盤與過(guò)孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析









