<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于OR1200的嵌入式SoPC硬件平臺設計

基于OR1200的嵌入式SoPC硬件平臺設計

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


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


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


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


  實(shí)際下載驗證證明,以上兩種配置都可以40MHz的速度運行μClinux系統。目前,已經(jīng)選定使用該系統作為基于SoPC的數控系統的基礎實(shí)現。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>