《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NiosII的智能多接口片上系統(tǒng)設計
基于NiosII的智能多接口片上系統(tǒng)設計
來源:電子技術應用2012年第7期
張興堂1,高 勇2,王偉強1
1.江蘇自動化研究所,江蘇 連云港222006; 2.空軍駐揚州地區(qū)軍代室,江蘇 揚州225000
摘要: 設計了一種基于NiosII處理器的片上系統(tǒng)(SoC),集成了NiosII處理器IP、PCI接口IP、網(wǎng)絡接口IP以及基于Wishbone總線的串行接口IP核、CAN接口IP核等。系統(tǒng)具有可重配置、可擴展、靈活、兼容性高、功耗低等優(yōu)點,適合于片上系統(tǒng)開發(fā)與應用。本設計使用Verilog HDL硬件描述語言在QuartusII環(huán)境下進行IP軟核設計、綜合、布局布線,在Model Sim下完成功能、時序仿真,在SoPC下完成系統(tǒng)的定制與集成,在NiosII IDE環(huán)境下完成片上系統(tǒng)軟件程序的開發(fā),最后在FPGA器件上實現(xiàn)了智能多接口功能的片上系統(tǒng)。
中圖分類號: TN47
文獻標識碼: B
文章編號: 0258-7998(2012)07-0061-04
Design of a multi-interface SoC based on NiosII
Zhang Xingtang1,Gao Yong2,Wang Weiqiang1
1.Jiangsu Automation Research Insititute,Lianyungang 222006,China; 2.Airforce Military Representation Oftice in Yangzhou Area,Yangzhou 225000,China
Abstract: This paper analyses the design of a SoC based on NiosII,that composed of the NiosII Processor and the Interface of PCI,Network,UART and CAN that based on Wishbone bus. The SoC has the advantages of flexibility, configurability, opening, extending, smallness and low consuming. So it is ideal for the research and develop of SoC. Verilog hardware description language in the Quartus II environment has been used for its design, compilation and simulation. The multi-interface SoC based on NiosII has been implemented using FPGA technology in the SoPC environment of Nios II IDE.
Key words : FPGA;NiosII;SoC;IP core

    隨著超大規(guī)模片上系統(tǒng)需求的日益增多,基于傳統(tǒng)IC芯片的微電子應用系統(tǒng)設計技術正在轉(zhuǎn)向基于知識產(chǎn)權IP(Intellectual Property)核的片上系統(tǒng)技術發(fā)展[1]。因此,基于資源IP核的復用設計方式已開始逐漸成為國內(nèi)外微電子系統(tǒng)設計的一項支撐技術。從應用功能角度劃分IP核有三大類[2]:微處理器IP核(如8位8051核、32位NiosII、Microblaze核等)、各種接口IP核(如SDRAM控制器、PCI總線接口、CAN總線接口、串行總線接口IP核等)和專用算法IP核(圖形編解碼H.264、加密核等)。使用IP核復用技術,將IP集成到FPGA芯片上,可縮小PCB板體積,降低功耗;還可以根據(jù)需要進行功能的升級、擴充和裁減[3]。本文以Altera公司的NiosII為主處理器并集成PCI接口、串行接口、CAN接口、網(wǎng)絡接口設計為例,說明片上系統(tǒng)的設計方法。

1 設計原理
    采用片上系統(tǒng)設計的智能多接口模塊一般可以不需要外部主處理器操作系統(tǒng)的干預,其典型結(jié)構(gòu)如圖1所示。在工作時,片上系統(tǒng)收到的信號經(jīng)過本板上Nios II處理器處理轉(zhuǎn)換后,即可將數(shù)據(jù)信號送出或做其他處理。信號轉(zhuǎn)換、處理工作全部由片上系統(tǒng)完成,不增加外主處理器操作系統(tǒng)的軟件開銷,因而對整個系統(tǒng)的負擔更小。也可以要通過接入的PCI等系統(tǒng)總線,以中斷提請等方式向外部主處理器提請訪問,可完成與外主處理器的數(shù)據(jù)交換[4]。

    在開源OpenCores組織的網(wǎng)站上,可以獲取大量共享IP核, 但是大多數(shù)是未被驗證的,或者由于是不同人撰寫的,其代碼風格也不盡相同。其接口信號定義為標準Wishbone總線形式,Wishbone著重定義IP核的接口信號和總線周期標準來實現(xiàn)IP核的重用。通過對IP軟核代碼的分析,在原代碼的基礎上可通過修改IP核的部分邏輯功能(如增加內(nèi)嵌數(shù)據(jù)收發(fā)FIFO深度),優(yōu)化部分接口邏輯;通過對異步信號同步采樣一次,可以去干擾,消除亞穩(wěn)態(tài)以及虛假的Glitch;可通過增加復位狀態(tài)寄存器等實現(xiàn)優(yōu)化設計。最終完成基于Wishbone總線的IP軟核設計。下面以串行接口IP核設計為例說明,其他類型的IP核也可以通過類似方法獲得。串行接口IP設計是以異步串行控制器16C550為原型的。
2.1.1 波特率發(fā)生器設計
    波特率發(fā)生器通過兩個8位的分頻寄存器實現(xiàn),它提供發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的基準時鐘。波特率發(fā)生器產(chǎn)生的時鐘是串行數(shù)據(jù)波特率的16倍。上電復位后兩個分頻寄存器都為00H,不使能所有的I/O操作。
2.1.2 數(shù)據(jù)收發(fā)
    數(shù)據(jù)發(fā)送主要由線控制寄存器、計數(shù)器、FIFO控制器、發(fā)送FIFO、發(fā)送移位寄存器等實現(xiàn)。在波特率設置好后,計數(shù)器統(tǒng)計幀數(shù)據(jù)的位數(shù),確保發(fā)送的幀數(shù)據(jù)包括起始位、有效數(shù)據(jù)位、奇偶校驗位、停止位。發(fā)送FIFO可以暫存總線接口發(fā)送過來的數(shù)據(jù),數(shù)據(jù)從發(fā)送FIFO移入到輸出移位寄存器,每16個時鐘時間向外發(fā)送一位數(shù)據(jù),先發(fā)送起始位,有效數(shù)據(jù)從移位寄存器的高位逐位移出,最后輸出奇偶檢驗位和終止位。當發(fā)送FIFO內(nèi)的數(shù)據(jù)低于FIFO設置觸發(fā)深度時,會觸發(fā)發(fā)送FIFO空中斷。
    數(shù)據(jù)接收由線控制寄存器、計數(shù)器、接收FIFO和輸入移位寄存器等組成。接收數(shù)據(jù)的線控制寄存器、計數(shù)器功能同發(fā)送模塊。接收器始終監(jiān)視著串行輸入端,將8位串行數(shù)據(jù)逐位接收進來。數(shù)據(jù)接收后會通過移位寄存器暫存在接收FIFO中, FIFO深度可支持1 B、32 B、64 B、128 B等。
2.1.3 中斷設計
    串行接口IP核中包含一個8位的中斷使能寄存器(IER)和一個8位的中斷識別寄存器(IIR)。中斷使能寄存器可以使能5種中斷源,分別是:接收線狀態(tài)中斷、發(fā)送線狀態(tài)中斷、時間溢出中斷、發(fā)送寄存器空中斷、Modem狀態(tài)中斷等,共4個優(yōu)先級。上電復位時默認狀態(tài)為全部中斷屏蔽。上電復位時IIR為C1H,通過讀取IIR數(shù)值可獲取相應的4路中斷狀態(tài)信息。
2.2 總線轉(zhuǎn)換橋接邏輯設計
    為了實現(xiàn)Wishbone和Avalon總線協(xié)議之間的協(xié)議轉(zhuǎn)換, 根據(jù)兩種片上總線的特性, 通過狀態(tài)機的使用來實現(xiàn)總線協(xié)議的轉(zhuǎn)換, 并使用軟件仿真的方法建立模型來驗證總線轉(zhuǎn)換橋的可用性。 Wishbone到Avalon總線轉(zhuǎn)換橋的總體組成原理如圖3所示。

    Wishbone到Avalon總線轉(zhuǎn)換橋的基本功能是使得符合Wishbone總線體系結(jié)構(gòu)的IP核可以在采用Avalon總線的NiosII 固核處理器片上系統(tǒng)中集成,從而實現(xiàn)對定制外設的訪問。接口支持32位總線操作??偩€轉(zhuǎn)換橋由相對獨立的Avalon主從端口單元和Wishbone主從端口單元組成,每個單元都有一套完整的功能來支持Avalon總線和Wishbone端口上所掛載的IP核之間的交易,讀寫數(shù)據(jù)實行分開存儲,由配置和狀態(tài)寄存器控制操作模式和數(shù)據(jù)的輸入輸出。Avalon總線接口邏輯與Wishbone接口邏輯兩側(cè)都包含本地狀態(tài)機及其他控制邏輯,并且總線橋接口邏輯還包括地址譯碼、命令譯碼、接口控制狀態(tài)機、數(shù)據(jù)輸出MUX、奇偶校驗輸出、地址溢出檢查等功能模塊。
2.3 片上系統(tǒng)集成設計
    基于NiosII固核處理器的片上系統(tǒng)集成是在SoPC Builder環(huán)境下完成的。片上系統(tǒng)集成主要完成對片上系統(tǒng)的定制、片上系統(tǒng)的資源分配、總線交換操作、中斷處理等幾個點關鍵技術點。
2.3.1 片上系統(tǒng)定制設計
    片上系統(tǒng)的定制設計主要是完成片上系統(tǒng)集成所需要的處理器IP和外設IP的選型,是集成設計的第一步,設置系統(tǒng)主頻,同時可選配指令、數(shù)據(jù)Cache大小、外部數(shù)據(jù)指令、硬件乘法器、流水線支持、浮點運算支持等特性,并設置NiosII的Cache和CPU直接相連的存儲器。外設IP主要包括PCI總線接口IP、外部SRAM接口IP、外部Flash接口IP、外部GPIO接口IP、外部網(wǎng)絡接口IP、自定制的基于OpenCore的串行接口IP核、CAN總線接口IP軟核等。
2.3.2 片上系統(tǒng)資源分配
    SoPC為各IP自動分配了一個默認地址??紤]到資源有效利用,還需要對系統(tǒng)資源進行重配置,主要包括:對Boot Loader的存儲器選擇和設置Boot Loader在存儲器中的偏移;存放異常向量的存儲器選擇及其偏移量;各外設在Avalon總線上的偏移地址、中斷號的分配;PCI總線對片上Avalon總線上設備的Memnry或I/O的空間以及地址映射;DMA傳輸配置;消息寄存器(Mailbox)雙口RAM的使用等。具體分配如下:
    (1)考慮到可以通過PCI到Avalon總線的地址映射,從PCI通過BAR端口直接訪問兩路UART、CAN、GPIO等設備,根據(jù)各接口IP地址特性,其他外設在Avalon端地址分配不沖突的前提下,有效分配Avalon地址資源,并可以在PCI端直接使用BAR2/BAR3以及Memory或I/O訪問此類外設。
    (2)可以通過Auto Bass Address操作,解決外設的地址分配沖突問題。通過調(diào)整其他外設地址避免與Flash地址的沖突。
    (3)可通過手動方式修改各個外設的中斷號,也可以通過Auto Assign IRQs 操作,自動分配中斷號(最低為0,最高31)。
2.3.3 總線數(shù)據(jù)交換操作
    PCI總線與Avalon總線實現(xiàn)互相訪問,須先確定PCI核的資源配置,然后根據(jù)資源配置選擇總線數(shù)據(jù)操作方式。從PCI總線方向看PCI軟核主要有以下幾個部分:寄存器組、BAR0~BAR3、DMAC、PCI訪問端口。帶有PCI核的整體架構(gòu)如圖4所示。

 

 

    對于含PCI總線接口IP的片上系統(tǒng)總線操作,可以分為DMA方式和非DMA方式。非DMA方式即PCI總線通過PCI核的BAR空間訪問Avalon總線設備,而不經(jīng)過DAMC的控制。非DMA方式的操作共分為4類,其中數(shù)據(jù)類操作兩類:PCI總線讀取Avalon總線設備的數(shù)據(jù)(支持連續(xù)數(shù)據(jù))、PCI總線將數(shù)據(jù)寫入Avalon總線設備(支持連續(xù)數(shù)據(jù));配置類操作兩類:PCI總線讀取Avalon總線設備的寄存器、PCI總線寫入Avalon總線設備的寄存器。數(shù)據(jù)類操作與配置類操作沒有本質(zhì)上的區(qū)別,只是數(shù)據(jù)類操作支持連續(xù)數(shù)據(jù)操作,數(shù)據(jù)通道是雙口RAM,而配置類操作只支持單次操作,數(shù)據(jù)通道是MailBox組。PCI核的寄存器組包含兩類MailBox寄存器組:P-A MBR和A-P MBR,每類MailBox組含8個32位寄存器。
3 軟件設計
    NiosII EDS(嵌入式開發(fā)包)基于開放式、可擴展Eclipse IDE的工程以及Eclipse C/C++開發(fā)工具提供了統(tǒng)一的開發(fā)平臺,適用于所有NiosII處理器。 NiosII EDS為基于NiosII的系統(tǒng)自動生成板級支持包(BSP),包括硬件抽象層(HAL)、可選的RTOS以及設備驅(qū)動。BSP提供了C/C++運行環(huán)境,可以避免與硬件直接打交道。所有軟件開發(fā)任務都可以在Nios II IDE下完成,包括編輯、編譯和程序調(diào)試。
    基于NiosII固核處理器的片上系統(tǒng)的BSP(板級支持包)設計主要以開發(fā)板源碼為基礎進行修改移植。系統(tǒng)通過bootloader進行引導,采用Altera的集成開發(fā)環(huán)境NiosII 7.2 IDE進行操作系統(tǒng)?滋C/OSII的開發(fā)。在開發(fā)過程中采用軟件模塊化、通用化的編程思想進行設計,具體實現(xiàn)的驅(qū)動包括NiosII的驅(qū)動、PCI驅(qū)動、串行驅(qū)動、CAN接口驅(qū)動等。首先創(chuàng)建IDE的管理工程,然后選擇目標硬件,IDE會建立系統(tǒng)庫,根據(jù)向?qū)Ь涂梢詣?chuàng)建一個NiosII C/C++應用工程。最后是建立C的源文件和頭文件,對C源文件和頭文件編輯好后可對工程進行編譯,編譯中出的錯誤與警告IDE都會給出提示。
4 仿真與驗證
    為了驗證串行接口IP核設計功能,需進行仿真測試與驗證,其功能仿真如圖5所示。

    在Quartues II環(huán)境下完成該IP核編輯、編譯、綜合布局布線,并完成IP核相應的Testbench測試源代碼的編輯、編譯,在Model Sim環(huán)境下進行功能與時序仿真。對IP核的測試可以分別對Wishbone總線接口核和內(nèi)部功能核兩部分進行測試來完成。首先要對接口核部分測試,以確保能夠正常進行讀寫操作,然后對功能核的每個功能模塊和寄存器進行測試驗證。結(jié)果證明其IP功能齊備,符合設計要求。
    本文詳細介紹了基于NiosII處理器的智能多接口片上系統(tǒng)設計與實現(xiàn),采用Altera公司Cyclonell系列FPGA芯片EP2C35F672I8實現(xiàn)設計時,占用芯片資源小于50%。
    隨著超大規(guī)模片上系統(tǒng)的設計需求不斷增加,其對IP核的性能、功能、可重用性以及靈活性等方面的要求將越來越高,而目前Xilinx、Altera等公司都已經(jīng)推出了工作頻率更高、布線時延更小、容量更大的新型FPGA芯片??梢詫⑻幚砥骱恕⒖偩€接口核和專用算法核等集成在頻率更高、性能更強大的FPGA芯片上。
參考文獻
[1] 夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2003.
[2] 牛風舉,劉元成,朱明成.基于IP復用的數(shù)字IC設計技術[M].北京:電子工業(yè)出版社,2003.
[3] 劉明業(yè),蔣敬奇,刁嵐松,等譯.硬件描述語言Verilog[M]. 北京:清華大學出版社,2002.
[4] CHANG H,COOKE L,HUNTETE M.Surviving the SoC platform baseddesign[M].USA:Kluwer Acedemic Publisher. 2005.
[5] 蔡偉剛.NiosII 軟件架構(gòu)解析[M].西安:西安電子科技大學出版社,2007.
[6] 楊強號.基于EDK的FPGA嵌入式系統(tǒng)開發(fā)[M].北京:機械工業(yè)出版社,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久久久久久看片| 欧美激情第一页xxx| 亚洲精品视频一区| 久久成人免费电影| 一区二区三区四区五区在线| 免费成人毛片| 欧美在线视频不卡| 亚洲影视综合| 亚洲一区日本| 亚洲深夜av| 日韩亚洲欧美精品| 亚洲精品欧美日韩专区| 久久精品一区二区国产| 久久精品日产第一区二区| 久久成人资源| 久久精品一区蜜桃臀影院| 亚洲第一网站| 亚洲激情成人在线| 亚洲精品久久视频| 日韩一级黄色片| 中文亚洲免费| 亚洲欧美另类国产| 美女主播精品视频一二三四| 欧美日韩岛国| 欧美成在线视频| 欧美多人爱爱视频网站| 欧美精品免费看| 欧美日韩精品免费在线观看视频| 久久精品女人天堂| 欧美在线三级| 亚洲国产精品一区二区第四页av| 亚洲精品极品| 亚洲精品午夜精品| 99精品欧美一区二区三区| 中文欧美字幕免费| 午夜精品美女自拍福到在线 | 你懂的国产精品| 美女久久网站| 欧美伦理一区二区| 欧美国产极速在线| 国产精品成人v| 欧美日韩成人一区| 国产精品久久91| 国产亚洲欧美日韩日本| 亚洲第一页在线| 夜夜嗨av一区二区三区四区 | 亚洲一区二区高清视频| 亚洲欧美日韩在线一区| 99亚洲视频| 国产精品久久久久毛片软件| 国产精品视频网址| 国产自产精品| 亚洲国产一区二区三区a毛片 | 国产精品综合网站| 国产日本欧美一区二区三区在线| 欧美久久久久免费| 欧美日本在线视频| 国产精品夜色7777狼人| 国产一区二区激情| 亚洲精品裸体| 亚洲免费视频在线观看| 午夜欧美电影在线观看| 亚洲精品久久久久中文字幕欢迎你| 性欧美xxxx视频在线观看| 亚洲天堂av高清| 亚洲国产欧美一区二区三区同亚洲| 欧美日韩视频在线第一区| 国产精品高潮呻吟视频| 激情综合色综合久久综合| av不卡免费看| 亚洲第一区在线观看| 一本久道久久综合婷婷鲸鱼| 欧美一区二区三区在线| 欧美不卡视频一区| 国产精品久久久久久久久久直播 | 韩日欧美一区二区三区| 亚洲伦理在线观看| 久久国产一区二区| 亚洲视频第一页| 久久午夜精品| 国产精品丝袜xxxxxxx| 91久久一区二区| 欧美一区免费| 亚洲天堂av综合网| 欧美1区2区视频| 国产偷自视频区视频一区二区| 国产区欧美区日韩区| 亚洲国产精品久久久久婷婷老年 | 亚洲黄网站在线观看| 亚洲社区在线观看| 91久久在线| 久久黄金**| 国产精品久久久久久久久免费| 国产精品久久77777| 亚洲国产成人av好男人在线观看| 亚洲精品国产精品乱码不99按摩| 欧美女主播在线| 国产欧美一区二区色老头 | 亚洲黑丝在线| 亚洲欧美中文日韩v在线观看| 欧美一级视频精品观看| 一区二区黄色| 欧美搞黄网站| 韩国av一区二区三区四区| 亚洲欧美国产精品va在线观看 | 亚洲深爱激情| 欧美激情一区| 亚洲国产精品一区二区第四页av| 亚洲精品网站在线播放gif| 久久精品电影| 久久精品人人做人人综合| 国产精品swag| 日韩午夜电影| 中日韩高清电影网| 欧美日韩精选| 亚洲精品美女91| 亚洲美女在线观看| 欧美国产日韩视频| 亚洲国产一区视频| 91久久国产综合久久蜜月精品| 一区二区三区视频在线| 欧美激情一区二区在线| 亚洲国产日韩一级| 亚洲日本中文字幕| 欧美暴力喷水在线| 亚洲国产毛片完整版| 亚洲国产高清视频| 久久嫩草精品久久久精品| 国产在线视频欧美| 欧美在线国产| 久久综合久久久| 在线电影一区| 亚洲精品一区二区三区av| 欧美福利电影网| 亚洲国产美女久久久久| 亚洲精品日韩在线观看| 欧美精品国产精品| 亚洲美女在线国产| 亚洲综合国产激情另类一区| 国产精品美女www爽爽爽视频| 在线观看国产精品淫| 亚洲国产精品女人久久久| 老司机精品视频一区二区三区| 欧美日韩日日骚| 亚洲美女av电影| 亚洲一区视频在线| 国产精品看片资源| 小嫩嫩精品导航| 美女精品视频一区| 日韩视频专区| 午夜精品一区二区三区在线| 国产亚洲va综合人人澡精品| 久久精品夜色噜噜亚洲aⅴ| 欧美大秀在线观看| 99在线精品观看| 欧美一区二区黄色| 亚洲大片精品永久免费| 一本大道久久a久久综合婷婷 | 最新日韩av| 一区二区三区日韩精品| 国产精品网站在线观看| 欧美一级一区| 免费成人小视频| 中日韩午夜理伦电影免费| 欧美在线一级va免费观看| 一区视频在线播放| 亚洲深夜激情| 国产一区二区三区的电影| 亚洲精品国产品国语在线app| 久久免费高清视频| 亚洲精品激情| 久久爱www.| 亚洲成人资源| 亚洲欧美资源在线| 亚洲国产黄色| 先锋影音一区二区三区| 在线精品视频一区二区三四| 在线亚洲精品| 国内成人精品一区| 亚洲午夜精品久久| 激情综合色丁香一区二区| 亚洲在线免费| 伊人精品久久久久7777| 亚洲在线国产日韩欧美| 亚洲第一在线综合在线| 亚欧美中日韩视频| 亚洲三级影片| 久久久人成影片一区二区三区 | 久久精品亚洲一区二区| 欧美另类视频| 欧美在线视频在线播放完整版免费观看| 羞羞色国产精品| 亚洲激情成人网| 久久不射2019中文字幕| 99re热精品| 欧美 日韩 国产在线| 中文一区二区| 欧美国产综合一区二区| 欧美专区在线观看| 国产精品久久久久一区|