《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于OR1200的嵌入式SoPC硬件平臺(tái)設(shè)計(jì)

基于OR1200的嵌入式SoPC硬件平臺(tái)設(shè)計(jì)

2008-09-01
作者:孫 愷, 魏洪興, 陳友東

  摘 要: 針對(duì)現(xiàn)有商業(yè)SoPC系統(tǒng)的固有問(wèn)題,提出了基于開(kāi)源" title="開(kāi)源">開(kāi)源IP核與軟件資源的SoPC系統(tǒng)硬件平臺(tái)構(gòu)建方案,并使用Cyclone FPGA進(jìn)行了實(shí)際驗(yàn)證,證明了該硬件平臺(tái)的實(shí)用性。探討了該平臺(tái)在普及SoPC技術(shù)和研究更高性能系統(tǒng)方面的積極作用。
  關(guān)鍵詞: OpenRISC1200 可編程片上系統(tǒng) IP核 FPGA


  SoC(System on Chip)片上系統(tǒng)是現(xiàn)代電子系統(tǒng)設(shè)計(jì)的一個(gè)發(fā)展方向,它將原先分立的多個(gè)芯片集成在一塊芯片上,通過(guò)提高芯片的集成度、減少系統(tǒng)芯片的數(shù)量和相互之間的PCB連線、減小PCB面積來(lái)降低整個(gè)系統(tǒng)的成本,同時(shí)使系統(tǒng)的性能、功能和可靠性都有很大的提高。隨著新型的高性能、低成本FPGA的出現(xiàn)和綜合技術(shù)的提高,基于FPGA的SoPC(System on Programmable Chip)可編程片上系統(tǒng)正逐步走向市場(chǎng)?;贔PGA的SoPC與基于ASIC技術(shù)的SoC相比,具有設(shè)計(jì)周期短、產(chǎn)品上市速度快、設(shè)計(jì)風(fēng)險(xiǎn)和設(shè)計(jì)成本低、集成度高、靈活性大、維護(hù)和升級(jí)方便、硬件缺陷修復(fù)和排除簡(jiǎn)單等優(yōu)點(diǎn)。因此基于FPGA和包括32位CPU在內(nèi)的各種IP核的系統(tǒng)級(jí)應(yīng)用開(kāi)發(fā)將是下一代電子系統(tǒng)設(shè)計(jì)的發(fā)展方向。
  順應(yīng)這個(gè)潮流,F(xiàn)PGA器件的主要供應(yīng)商AlteraXilinx都推出了各自的SoPC解決方案:Nios系統(tǒng)和MicroBlaze系統(tǒng)。它們功能強(qiáng)大、開(kāi)發(fā)環(huán)境和配套IP核完善,是工程應(yīng)用的首選。但是它們只能用在各自廠商的FPGA上,不但配套IP核價(jià)格昂貴,而且用戶無(wú)法獲得所有源代碼,不利于我國(guó)SoPC技術(shù)的發(fā)展。
  針對(duì)這種情況,筆者使用Altera公司的Cyclone FPGA和OpenCores組織提供的各種免費(fèi)、開(kāi)源的IP核,構(gòu)建了以O(shè)penRISC1200 CPU為核心,配以各類外圍IP核的完全開(kāi)源的SoPC系統(tǒng),并成功地運(yùn)行了μClinux系統(tǒng)。同時(shí)本系統(tǒng)采用的所有IP核在源代碼不變的情況下可以使用Xilinx的開(kāi)發(fā)工具進(jìn)行綜合、布線,為該系統(tǒng)在其他FPGA平臺(tái)上的運(yùn)行打下了良好的基礎(chǔ)。
1 OR1200
  本系統(tǒng)使用的OpenRISC1200處理器(以下簡(jiǎn)稱OR1200)是OpenRISC系列RISC處理器內(nèi)核的一員。OpenRISC是由OpenCores組織負(fù)責(zé)開(kāi)發(fā)和維護(hù)、免費(fèi)、開(kāi)源的RISC處理器內(nèi)核家族。OpenRISC1200出現(xiàn)于2001年7月,支持ORBIS32指令集。該指令集包括32位整數(shù)指令、基本的DSP指令、32位的Load和Store指令、程序流程控制指令和特殊指令(實(shí)際上還不支持除法指令)。2002年8月,OpenRISC1200基本成熟,配有比較完善的軟件開(kāi)發(fā)環(huán)境和操作系統(tǒng),改進(jìn)和維護(hù)一直持續(xù)到現(xiàn)在。
  OR1200是一種32位、標(biāo)量、哈佛結(jié)構(gòu)、5級(jí)整數(shù)流水線的RISC處理器,它有32個(gè)32位通用寄存器,支持緩存、虛擬存儲(chǔ)器和基本的DSP功能,外部數(shù)據(jù)和地址總線接口符合Wishbone標(biāo)準(zhǔn)。輔助功能包括用于實(shí)時(shí)調(diào)試的調(diào)試單元、計(jì)數(shù)器、可編程中斷控制器和電源管理單元,這些功能大大增強(qiáng)了CPU獨(dú)立工作的能力,對(duì)軟件調(diào)試和操作系統(tǒng)的支持較好,簡(jiǎn)化了整體系統(tǒng)的設(shè)計(jì)。OR1200的標(biāo)準(zhǔn)組成結(jié)構(gòu)如圖1所示。
  CPU/DSP單元是OR1200處理器的核心,其基本結(jié)構(gòu)框圖如圖2所示。


  當(dāng)使用0.18μm和6層金屬工藝時(shí),OR1200的主頻可達(dá)300MHz,此時(shí)可以提供300 Dhrystone 2.1 MIPS和300M次/秒的32×32的DSP乘加操作能力。
  OR1200在2002年9月被Flextronics公司選中,用于集成在Flextronics的設(shè)計(jì)中,并提供商業(yè)服務(wù)。2003年8月,F(xiàn)lextronics公司成功實(shí)現(xiàn)了集成OR1200、10Mbps/100Mbps" title="100Mbps">100Mbps自適應(yīng)以太網(wǎng) MAC控制器、32位 33MHz/66MHz PCI接口、16550兼容UART和Memory控制器的SoC芯片,并成功運(yùn)行了μClinux和Linux操作系統(tǒng)。
2 板級(jí)" title="板級(jí)">板級(jí)系統(tǒng)組成
  板級(jí)系統(tǒng)以Altera的Cyclone系列FPGA EP1C12QC240為核心,配以EPCS4配置存儲(chǔ)器和配置電路組成核心系統(tǒng),再配以2片29LV160DB NOR Flash(4MB)、2片IS61LV25616 SRAM(1MB)、2片HY57V561620 SDRAM(64MB)、1個(gè)RS232串行口、1個(gè)通用JTAG接口和8段LED、按鈕、撥碼開(kāi)關(guān)組成基本系統(tǒng)。Flash、SRAM和SDRAM組成存儲(chǔ)系統(tǒng),它們共用FPGA的存儲(chǔ)器總線,大大減少了存儲(chǔ)系統(tǒng)占用的FPGA管腳數(shù),并為系統(tǒng)提供了運(yùn)行大型軟件所需要的存儲(chǔ)器空間。通用JTAG接口可以通過(guò)專用接口電纜與PC機(jī)的并口相連,實(shí)現(xiàn)對(duì)CPU的在線調(diào)試和系統(tǒng)存儲(chǔ)空間的訪問(wèn)。串行口可以為系統(tǒng)實(shí)現(xiàn)一個(gè)基本的控制臺(tái),并可以作為向系統(tǒng)下載大量數(shù)據(jù)的通道。因此,基本系統(tǒng)的組成足以調(diào)試和運(yùn)行基本的μClinux系統(tǒng)。
  完整的板級(jí)系統(tǒng)的組成框圖如圖3所示,它除了基本系統(tǒng)以外,還包括1片10Mbps/100Mbps自適應(yīng)以太網(wǎng)PHY芯片、320×240彩色STN LCD、10位×3通道視頻DAC和2個(gè)PS2接口。使用以上完整的板級(jí)系統(tǒng)可以實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)絡(luò)和人機(jī)界面應(yīng)用,再配以μClinux操作系統(tǒng)即可實(shí)現(xiàn)一個(gè)完整的計(jì)算機(jī)系統(tǒng)。


3 內(nèi)核的集成、仿真與驗(yàn)證
  內(nèi)核的集成、仿真與驗(yàn)證是建立本平臺(tái)的難點(diǎn)。要實(shí)現(xiàn)上述所有功能,除了OpenRISC1200 CPU外,至少還需要以下IP:
  ·Wishbone總線互連;
  ·CPU Debug模塊;
  ·通用I/O" title="I/O">I/O控制器;
  ·片內(nèi)高速RAM控制器;
  ·16550兼容UART控制器;
  ·Memory控制器;
  ·10Mbps/100Mbps自適應(yīng)以太網(wǎng)MAC控制器;
  ·VGA/LCD控制器;
  ·8042兼容PS/2控制器。
  以上多數(shù)IP可以從OpenCores獲得,像通用I/O控制器和片內(nèi)高速RAM控制器這類簡(jiǎn)單的IP,可以自己編寫。不過(guò)需要注意的是,為了使系統(tǒng)能夠正確地運(yùn)行或者獲得更好的綜合效果,多數(shù)IP在集成時(shí)都要進(jìn)行修改。需要修改的IP及其修改內(nèi)容如下:
  ·OR1200:通用寄存器組、緩存、MMU使用的RAM塊需要針對(duì)Synplify進(jìn)行修改,以便能夠綜合到M4K RAM塊中,MMU、DSP MAC單元根據(jù)需要決定是否在配置中去掉,以提高速度,減少邏輯資源的占用;
  ·Wishbone總線互連:添加空穴地址空間的訪問(wèn)處理;
  ·UART控制器:數(shù)據(jù)接收和發(fā)送FIFO需要針對(duì)Synplify進(jìn)行修改,以便能夠綜合到M4K RAM塊中;
  ·Memory控制器:添加復(fù)位后的默認(rèn)值配置,以便系統(tǒng)可以選擇從Flash或者SRAM啟動(dòng);
  ·以太網(wǎng)控制器:控制寄存器和FIFO需要針對(duì)Synplify進(jìn)行修改,以便能夠綜合進(jìn)M4K RAM塊中,并且需要添加對(duì)不支持Burst模式的Wishbone總線互連接口的支持;
  ·VGA/LCD控制器:顯示FIFO需要針對(duì)Synplify進(jìn)行修改,以便能夠綜合進(jìn)M4K RAM塊中,并且需要修改對(duì)掃描時(shí)鐘輸出的控制。
  使用以上IP構(gòu)建的系統(tǒng)內(nèi)核的結(jié)構(gòu)框圖如圖4所示。中間模塊是Wishbone總線互連IP,它有8個(gè)主設(shè)備、8個(gè)從設(shè)備接口" title="設(shè)備接口">設(shè)備接口。OR1200的指令和數(shù)據(jù)接口各占用了一個(gè)主設(shè)備接口。Debug模塊需要訪問(wèn)存儲(chǔ)空間,因此也用了一個(gè)主設(shè)備接口。以太網(wǎng)控制器使用主存儲(chǔ)器來(lái)存儲(chǔ)、獲得數(shù)據(jù),VGA/LCD控制器使用主存儲(chǔ)器獲得顯示緩沖數(shù)據(jù),因此它們也都占用了一個(gè)主設(shè)備接口。以太網(wǎng)、VGA/LCD和Memory控制器的控制寄存器空間各占用了一個(gè)從設(shè)備接口,Memory控制器的存儲(chǔ)器空間占用了一個(gè)從設(shè)備接口,其余的UART、PS/2、I/O和片內(nèi)RAM控制器各占用了一個(gè)從設(shè)備接口。


  為保持軟件的兼容性,在設(shè)置Wishbone總線互連IP各個(gè)主設(shè)備和從設(shè)備的地址以及分配中斷號(hào)時(shí),需要符合ORP標(biāo)準(zhǔn)。ORP(OpenRISC Reference Platform)是一個(gè)對(duì)基于OpenRISC處理器的系統(tǒng)的定義,它包括存儲(chǔ)器空間、外圍設(shè)備的地址定義和中斷向量的分配。其作用是標(biāo)準(zhǔn)化基于OpenRISC的硬件和軟件的設(shè)計(jì),提高軟件可重用性并縮短硬件設(shè)計(jì)的驗(yàn)證時(shí)間。
  在進(jìn)行完各個(gè)IP的單獨(dú)測(cè)試后,使用OR1200的軟件開(kāi)發(fā)包GCC對(duì)系統(tǒng)引導(dǎo)程序和μClinux進(jìn)行編譯,并將得到的二進(jìn)制文件嵌入到存儲(chǔ)器仿真文件中,對(duì)系統(tǒng)的初始化、引導(dǎo)和操作系統(tǒng)的啟動(dòng)進(jìn)行仿真。
  在仿真成功后,進(jìn)行了下載驗(yàn)證。由于使用的EP1C12器件的邏輯容量有限,無(wú)法同時(shí)實(shí)現(xiàn)以上所有功能,因此設(shè)計(jì)了兩個(gè)配置方案,分別面向網(wǎng)絡(luò)和個(gè)人終端。前者具備以太網(wǎng)功能,但是沒(méi)有PS/2和VGA/LCD控制器,后者相反。使用Synplify和QuartusII軟件對(duì)個(gè)人終端配置的系統(tǒng)進(jìn)行綜合、布局布線后,系統(tǒng)速度和各模塊所占邏輯單元LEs(Logic Elements)的情況如表1所示。


  實(shí)際下載驗(yàn)證證明,以上兩種配置都可以40MHz的速度運(yùn)行μClinux系統(tǒng)。目前,已經(jīng)選定使用該系統(tǒng)作為基于SoPC的數(shù)控系統(tǒng)的基礎(chǔ)實(shí)現(xiàn)平臺(tái)。
參考文獻(xiàn)
1 OpenRISC 1200 IP Core Specification. Damjan Lampret.www.opencores.org
2 OpenRISC 1000 Architecture Manual. www.opencores.org
3 SoC/OpenRISC Development Interface Rev. 1.6. Igor Mohor.www.opencores.org
4 WISHBONE System-on-Chip (SoC) Interconnection Architecture for Portable IP Cores Revision: B.3. www.opencores.org
5 UART IP Core Specification Rev. 0.6. Jacob Gorban, www.opencores.org
6 Ethernet IP Core Specification Rev. 1.19. Igor Mohor. www.opencores.org
7 VGA/LCD Core v2.0 Specifications. Richard Herveille. www.opencores.org
8 李乙成,周祖成,陳尚松. SoC片上總線技術(shù)的研究.半導(dǎo)體技術(shù),2003;28(2)
9 瞿俊杰,陳詠恩.基于Altera FPGA的軟硬件協(xié)同仿真.半導(dǎo)體技術(shù),2003;28(5)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。