基于fpga的嵌入式系統(tǒng)設(shè)計_修改版.doc_第1頁
基于fpga的嵌入式系統(tǒng)設(shè)計_修改版.doc_第2頁
基于fpga的嵌入式系統(tǒng)設(shè)計_修改版.doc_第3頁
基于fpga的嵌入式系統(tǒng)設(shè)計_修改版.doc_第4頁
基于fpga的嵌入式系統(tǒng)設(shè)計_修改版.doc_第5頁
免費預(yù)覽已結(jié)束,剩余146頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

摘 要本文設(shè)計完成的是基于FPGA的嵌入式系統(tǒng)開發(fā)板,它可以完成FPGA、嵌入式系統(tǒng)和SOPC等的設(shè)計和開發(fā)。開發(fā)板以Altera公司的Cyclone系列FPGAEP1C6為核心,在其外圍擴展FLASH、SRAM、A/D、D/A、鍵盤、LED顯示、LCD顯示、串口通信、VGA接口、PS2接口和USB接口等器件,使其成為一個完整的嵌入式開發(fā)系統(tǒng),系統(tǒng)采用模塊化設(shè)計,各個模塊之間可以自由組合,使得該開發(fā)板的靈活性和可擴展性大大提高。同時開發(fā)板所提供的豐富的接口模塊,供人機交互和器件間通信使用,方便了開發(fā)者的設(shè)計和系統(tǒng)的嵌入,可以滿足普通高等院校、科研人員等的需求。開發(fā)者可以使用VHDL語言、Verilog HDL語言、原理圖輸入等多種方式進行邏輯電路和功能模塊設(shè)計,也可以利用Altera公司提供的IP資源和Nios 16/32位處理器開發(fā)嵌入式系統(tǒng),借助QuartusII和Nios SDK Shell軟件進行編譯、下載,并通過本嵌入式系統(tǒng)開發(fā)板進行調(diào)式和結(jié)果驗證。關(guān)鍵詞:嵌入式系統(tǒng),Nios嵌入式處理器,SOPC,F(xiàn)PGA ABSTRACTThe thesis completes a design of an embedded system development board based on FPGA.The development board can complete the design of FPGA,embeded system,SOPC and so on.The development board is based on Altera Cyclone deviceEP1C6,the board extends several peripheral devices such as,FLASH,SRAM,A/D,D/A,LED,LCD,keyboard,serial port,VGA interface,PS2 interface,USB interface and so on.All the devices constitute an integrated embeded development system. The development board offers us plenty of interfaces to meet the need of the device communication and the intercommunion between human and computer,which makes the design and the embedding of the system more easier.The Nios Development Board can meet the need of scientific researchers and other college researchers.The developers can use VHDL,Verilog HDL,schematic input mode and so on to design logic circuit and function block,they can alse use the IP core and Nios microprocessor which are offered by Altera to develop embedded systems. The developers can utilize Quartus and Nios SDK Shell to compile and download,then they can use this development board to debug and validate the result. KEY WORDS: embeded system, Nios embeded CPU,SOPC,F(xiàn)PGA目 錄前 言1第1章 緒 論31.1嵌入式系統(tǒng)概述31.1.1嵌入式系統(tǒng)的特點31.1.2 片上系統(tǒng)和可編程片上系統(tǒng)61.2 Nios嵌入式處理器71.2.1 Nios嵌入式處理器特性71.2.2 Nios嵌入式處理器系統(tǒng)組件101.2.3 Avalon交換結(jié)構(gòu)總線11第2章 Nios嵌入式系統(tǒng)開發(fā)板整體理論分析162.1 系統(tǒng)設(shè)計目標162.2 系統(tǒng)設(shè)計原理162.3 開發(fā)板組件與理論分析192.4 開發(fā)板電路設(shè)計原理圖與PCB布線圖24第3章 Nios嵌入式系統(tǒng)開發(fā)板硬件開發(fā)環(huán)境263.1 硬件開發(fā)環(huán)境概述263.2 FPGA:EP1C6QC240C8的特性和電路設(shè)計263.2.1 特性和封裝273.2.2 引腳說明283.2.3 工作條件283.3 串行配置器件:EPCS1的特性和電路設(shè)計283.3.1 Cyclone FPGA的配置283.3.2串行配置器件: EPCS1/EPCS4313.3.3 EPCS1的電路設(shè)計343.4 SRAM:IDT71V016的特性和電路設(shè)計343.4.1 器件特性343.4.2 IDT71V016工作方式353.4.3 IDT71V016的電路設(shè)計373.5 FLASH:AM29LV800B的特性和電路設(shè)計393.5.1 器件特性393.5.2 器件工作方式描述403.5.3 AM29LV800總線操作423.5.4 AM29LV800的電路設(shè)計44第4章 軟件開發(fā)環(huán)境:Quartus和SOPC Builder454.1 Quartus及其開發(fā)流程454.2 SOPC Builder464.3 GERMS監(jiān)控49第5章 Nios嵌入式系統(tǒng)開發(fā)板調(diào)試525.1 片內(nèi)RAM、ROM調(diào)試525.2 GERMS監(jiān)控調(diào)試595.3 擴展SRAM調(diào)試665.4 擴展FLASH調(diào)試69第6章 底板部分766.1 底板概述766.2 高速A/D:TLC5540776.3 高速D/A:DAC908796.4低速A/D:MCP3202826.5 低速D/A:DAC7512836.6 LED數(shù)碼管及鍵盤管理器件:ZLG7289A856.7 圖形LCD液晶顯示屏:HD6120288第7章 應(yīng)用實例:利用Nios嵌入式系統(tǒng)開發(fā)板完成DDS的設(shè)計917.1 理論分析917.2 利用開發(fā)板實現(xiàn)的優(yōu)點947.3系統(tǒng)設(shè)計與實現(xiàn)957.3.1 參數(shù)選取957.3.2 系統(tǒng)設(shè)計967.3.3 系統(tǒng)實現(xiàn)97第8章 總 結(jié)988.1 主要工作總結(jié)988.2 結(jié)論988.3 改進意見99致 謝100參考文獻101附 錄102附1 英文原文102附2 中文翻譯113附3 Cyclone器件引腳功能、定義和工作條件121附4 測試程序led.c142144 前 言FPGA的特點及其發(fā)展趨勢:嵌入式系統(tǒng),是一個面向應(yīng)用、技術(shù)密集、資金密集、不可壟斷的產(chǎn)業(yè),隨著各個領(lǐng)域應(yīng)用需求的多樣化,嵌入式設(shè)計技術(shù)和芯片技術(shù)也經(jīng)歷著一次又一次的革新。雖然ASIC的成本很低,但設(shè)計周期長、投入費用高、風(fēng)險較大,而可編程邏輯器件(Programmable Logical Device,PLD)設(shè)計靈活、功能強大,尤其是高密度現(xiàn)場可編程邏輯器件(Field Programmable Gate Array,FPGA)其設(shè)計性能已完全能夠與ASIC媲美,而且由于FPGA的逐步普及,其性能價格比已足以與ASIC抗衡。因此,F(xiàn)PGA在嵌入式系統(tǒng)設(shè)計領(lǐng)域已占據(jù)著越來越重要的地位。可編程片上系統(tǒng)(SOPC)是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(SOC),即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計方式,可裁減、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。SOPC結(jié)合了SOC和FPGA各自的優(yōu)點,一般具備以下基本特征: l 至少包含一個嵌入式處理器內(nèi)核 l 具有小容量片內(nèi)高速SRAM資源 l 豐富的IP Core資源可供選擇 l 足夠的片上可編程邏輯資源 l 處理器調(diào)試接口和FPGA編程接口 l 可能包含部分可編程模擬電路 l 單芯片、低功耗、微封裝本文設(shè)計完成的是基于FPGA的嵌入式系統(tǒng)開發(fā)板,它可以完成FPGA、嵌入式系統(tǒng)、SOPC的設(shè)計和開發(fā)。 第1章 緒 論1.1嵌入式系統(tǒng)概述嵌入式系統(tǒng)是嵌入到對象體系中的專用計算機系統(tǒng),包括硬件和軟件兩大部分。硬件包括處理器、存儲器、輸入輸出接口和外部設(shè)備等,軟件包括系統(tǒng)軟件和應(yīng)用軟件,嵌入式系統(tǒng)的系統(tǒng)軟件和應(yīng)用軟件緊密結(jié)合。嵌入式處理器是嵌入式系統(tǒng)的核心,有硬核和軟核之分。常用的嵌入式處理器硬核有ARM、MIPS、PowerPC、Intel x86和Motorola 68000等;Altera公司開發(fā)的Nios是16/32位嵌入式處理器軟核。和硬核相比,軟核的使用靈活方便。Nios嵌入式處理器是可配置的通用RISC處理器,可以很容易地與用戶邏輯相結(jié)合,集成到Altera FPGA器件中。Nios具有16位指令系統(tǒng),用戶可選擇16位或32位數(shù)據(jù)寬度和可靈活配置的標準外圍設(shè)備及軟件庫。Nios系統(tǒng)將處理器、存儲器、輸入輸出接口和其他IP核靈活地集成到SOPC設(shè)計中。1.1.1嵌入式系統(tǒng)的特點嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),硬件和軟件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗等嚴格要求的專用計算機系統(tǒng)??梢詮囊韵聨讉€方面來理解嵌入式系統(tǒng)的含義:l 嵌入式系統(tǒng)面向用戶、面向產(chǎn)品和面向應(yīng)用,必須與具體應(yīng)用相結(jié)合才會具有生命力,才更具有優(yōu)勢。嵌入式系統(tǒng)與應(yīng)用緊密結(jié)合,具有很強的專用性。l 嵌入式系統(tǒng)將先進的半導(dǎo)體技術(shù)、計算機技術(shù)和電子技術(shù)以及各個行業(yè)的具體應(yīng)用相結(jié)合,是一個技術(shù)密集、資金密集和不斷創(chuàng)新的知識集成系統(tǒng)。l 嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對硬件和軟件進行裁剪,以滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積和功耗等要求。比較好的發(fā)展模式是:首先建立相對通用的硬件和軟件基礎(chǔ),然后開發(fā)出適應(yīng)各種需要的嵌入式系統(tǒng)。同時還應(yīng)該看到,嵌入式系統(tǒng)是一個外延極廣的概念。凡是與產(chǎn)品結(jié)合在一起的具有嵌入式特點的系統(tǒng)都可以稱為嵌入式系統(tǒng)。一般而言,嵌入式系統(tǒng)和通用計算機系統(tǒng)類似,由處理器、存儲器、輸入輸出接口和設(shè)備以及軟件等部分組成。但作為專用計算機系統(tǒng)的嵌入式系統(tǒng)與通用計算機系統(tǒng)相比,具有以下幾個重要特征。l 系統(tǒng)簡練。由于嵌入式系統(tǒng)一般應(yīng)用于小型電子裝置,系統(tǒng)資源相對有限,所以系統(tǒng)內(nèi)核與傳統(tǒng)的系統(tǒng)相比要小得多。嵌入式系統(tǒng)一般沒有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求功能的設(shè)計和實現(xiàn)過于復(fù)雜,這既有利于控制系統(tǒng)成本,同時也有利于保障系統(tǒng)安全。l 專用性強。嵌入式系統(tǒng)的個性化很強,軟件和硬件的結(jié)合非常緊密,一般要針對硬件進行軟件的設(shè)計,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)硬件的變化和增減對軟件不斷進行修改。同時針對不同的任務(wù),往往需要對系統(tǒng)進行較大更改,程序的編譯下載也要同系統(tǒng)相結(jié)合。l 實時操作系統(tǒng)支持。嵌入式系統(tǒng)的應(yīng)用程序可以不需要操作系統(tǒng)的支持直接運行,但為了合理地調(diào)度多任務(wù),充分利用系統(tǒng)資源,用戶必須自行選配實時操作系統(tǒng)(Real-Time Operating System,RTOS)開發(fā)平臺,這樣才能保證程序執(zhí)行的實時性和可靠性,減少開發(fā)時間,保障軟件質(zhì)量。l 專門開發(fā)工具支持。嵌入式系統(tǒng)本身不具備自主開發(fā)能力,即使在設(shè)計完成以后用戶通常也不能對程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。開發(fā)工具和環(huán)境一般基于通用計算機的軟硬件設(shè)備、邏輯分析儀和示波器等。在嵌入式系統(tǒng)的軟件開發(fā)過程中,采用C語言將是最佳的選擇。由于匯編語言是非結(jié)構(gòu)化的語言,不能勝任大型的結(jié)構(gòu)化程序設(shè)計,必須采用更高級的C語言進行設(shè)計。1.1.2 片上系統(tǒng)和可編程片上系統(tǒng)隨著半導(dǎo)體技術(shù)的不斷發(fā)展,片上系統(tǒng)(System on a Chip,SOC)成為嵌入式應(yīng)用領(lǐng)域的熱門方向之一。SOC最大的特點是成功實現(xiàn)了軟硬件的無縫結(jié)合,直接在處理器芯片內(nèi)嵌入操作系統(tǒng)的代碼模塊。此外,SOC有極高的綜合性,在一個芯片內(nèi)部運用VHDL等硬件描述語言可以實現(xiàn)復(fù)雜的系統(tǒng)。用戶使用SOC,不需要再像傳統(tǒng)的系統(tǒng)設(shè)計一樣繪制龐大復(fù)雜的電路板,而只需要使用相應(yīng)的開發(fā)工具,將處理器、存儲器和接口邏輯集成在一起,并開發(fā)相應(yīng)的軟件,編譯仿真之后就可以直接交付芯片廠商進行生產(chǎn)。SOC通常是專用集成電路(ASIC),所以不為用戶所熟知,而且其開發(fā)周期長,生產(chǎn)成本高,產(chǎn)品不能進行修改。隨著可編程邏輯器件(Programmable Logic Device,PLD)的廣泛應(yīng)用,可編程片上系統(tǒng)(System on a Programmable Chip,SOPC)越來越多地受到人們的關(guān)注。SOPC是在PLD上實現(xiàn)SOC,PLD的可編程性使SOPC的設(shè)計和實現(xiàn)非常方便。用戶可以靈活地進行系統(tǒng)硬件和軟件設(shè)計,還可以在現(xiàn)場進行系統(tǒng)修改。PLD性能的不斷提高,也使SOPC的性能越來越高。Altera是PLD的大型生產(chǎn)商,生產(chǎn)的PLD有CPLD(Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)和FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)兩大系列。CPLD和FPGA的結(jié)構(gòu)有所不同,但功能差別不大,作為新產(chǎn)品的FPGA要比早期的CPLD性能強大。Altera的SOPC嵌入式處理器(Embedded Processor)解決方案有兩種:嵌入ARM922T硬核的Excalibur器件和用于FPGA的可配置Nios嵌入式處理器軟核。1.2 Nios嵌入式處理器1.2.1 Nios嵌入式處理器特性Nios嵌入式處理器是用戶可配置的通用RISC嵌入式處理器,它是一個非常靈活和強大的處理器。Nios處理器的易用和靈活已經(jīng)使它成為世界上最流行的嵌入式處理器。嵌入式設(shè)計者利用SOPC Builder系統(tǒng)開發(fā)工具能夠很容易地創(chuàng)建自己的處理器系統(tǒng)。SOPC Builder可用于集成一個或多個可配置的帶有許多標準外圍設(shè)備的Nios CPU,并利用自動形成的Avalon交換結(jié)構(gòu)總線將這些系統(tǒng)連接在一起??膳渲肗ios CPU是Nios處理器系統(tǒng)的核心,它能夠被靈活配置而適用于各種各樣的應(yīng)用。例如一個16位Nios CPU,在片內(nèi)ROM中運行一個小程序,可以制作成一個實際的序列發(fā)生器或控制器,并且能夠代替固定編碼的狀態(tài)機。又如一個32位Nios CPU,與外圍設(shè)備、硬件加速單位和自定義指令一起,構(gòu)成一個功能強大的32位嵌入式處理器系統(tǒng)。Nios嵌入式處理器的獨特性(例如自定義指令和并行的多控制器Avalon交換結(jié)構(gòu)總線)使它不同于市場上其他的處理器軟核。這些特性允許Nios用戶通過用簡單的而非傳統(tǒng)的方法加速和優(yōu)化自己的設(shè)計。32位和16位Nios嵌入式處理器典型配置的比較如表1-1所示。表1-1 Nios嵌入式處理器典型配置比較特 性32位Nios CPU16位Nios CPU數(shù)據(jù)總線寬度/bit3216算術(shù)邏輯單元(ALU)寬度/bit3216內(nèi)部寄存器寬度/bit3216地址總線寬度/bit3216指令長度/bit1616邏輯單元數(shù)(LEs)(典型值)1500125MHz125MHz注:其具體數(shù)值與器件結(jié)構(gòu)有關(guān)Nios嵌入式處理器指令系統(tǒng)結(jié)構(gòu)的設(shè)計具有以下特性:(1) 在Altera FPGA中有效實現(xiàn)。l 使用最少的邏輯單元。l 使用最少的存儲單元。l 最大的時鐘速度。(2) 用SOPC Builder容易進行系統(tǒng)集成。l 簡單的存儲器接口。l 標準的可配置外圍設(shè)備庫。l 在CPU、外圍設(shè)備和存儲器之間自動形成Avalon交換結(jié)構(gòu)接口邏輯電路。(3) 為編譯嵌入式軟件優(yōu)化指令系統(tǒng)結(jié)構(gòu)。l 靈活的尋址方式。l 大容量內(nèi)部寄存器組的有效利用。l 快速的中斷處理。(4) 硬件加速模塊。l 有效算法實現(xiàn)。l MSTEP指令:單步乘法單元。l MUL指令:快速整數(shù)乘法單元。Nios嵌入式處理器支持Altera主流FPGA的全部系列,器件支持如表1-2所示。表1-2 Nios嵌入式處理器器件支持器 件說 明Stratix II最高的性能,最高的密度,大量的存儲資源,特性豐富的平臺Stratix GX最高的性能結(jié)構(gòu),高速串行收發(fā)器Cyclone低成本,替代ASIC,適用于價格敏感的應(yīng)用APEX II高密度,高性能,支持高速差分I/O標準Mercury高性能,高帶寬,中密度,包括時鐘數(shù)據(jù)恢復(fù)支持Excalibur高性能,處理器硬核解決方案APEX 20K/KE/KC高性能,中到高密度FLEX 10K/KE低成本,低到中密度ACEX 1K低成本,低到中密度HardCopy高密度,大批量ASIC替換器件隨著超過1萬個Nios開發(fā)套件的交付使用,Nios嵌入式處理器已經(jīng)成為嵌入式處理器軟核的標準。Nios嵌入式處理器的系統(tǒng)組件、開發(fā)工具和開發(fā)平臺如表1-3所示。表1-3 Nios嵌入式處理器系統(tǒng)組件、開發(fā)工具和開發(fā)平臺系 統(tǒng) 組 件開 發(fā) 工 具開 發(fā) 平 臺CPUSOPC Builder開發(fā)套件Avalon交換結(jié)構(gòu)總線Quartus II設(shè)計軟件軟件授權(quán)外圍設(shè)備GNUPro嵌入式軟件開發(fā)工具片內(nèi)調(diào)試模塊第三方工具1.2.2 Nios嵌入式處理器系統(tǒng)組件Nios嵌入式處理器系統(tǒng)包括一個或多個Nios CPU、Avalon交換結(jié)構(gòu)總線和其他組件。Altera的SOPC Builder系統(tǒng)開發(fā)工具可以自動生成這些組件以及連接它們的總線。下列組件可用于生成基于Nios處理器的嵌入式系統(tǒng):l Nios CPU。 l Avalon總線。l 外圍設(shè)備和存儲器接口。l 片內(nèi)調(diào)試模塊。設(shè)計者能夠使用SOPC Builder設(shè)計Nios處理器系統(tǒng),如圖1-1所示。圖1-1 Nios處理器系統(tǒng)Nios處理器系統(tǒng)包含帶指令和數(shù)據(jù)高速緩存的Nios CPU、片內(nèi)調(diào)試模塊、直接存儲器存取(DMA)控制器、常用外圍設(shè)備(PIO、UART、以太網(wǎng)端口和存儲器接口等)和并行多控制器Avalon交換結(jié)構(gòu)總線。1.2.3 Avalon交換結(jié)構(gòu)總線 Avalon交換結(jié)構(gòu)總線是Altera開發(fā)的用于Nios嵌入式處理器的參數(shù)化接口總線,由一組預(yù)定義的信號組成,用戶用這些信號可以連接一個或多個IP模塊。Altera的SOPC Builder系統(tǒng)開發(fā)工具自動地產(chǎn)生Avalon交換結(jié)構(gòu)總線邏輯。Avalon交換結(jié)構(gòu)總線需要極小的FPGA資源,提供完全的同步操作,它的重要特性有:l 簡單的基于向?qū)У呐渲谩 并行的多控制器。l 多達4GB的地址空間。l 同步接口。l 嵌入的地址譯碼。l 帶延遲的讀寫操作。l 數(shù)據(jù)流處理。l 動態(tài)的外圍設(shè)備接口大小。(1)簡單的基于向?qū)У呐渲肁ltera的SOPC Builder系統(tǒng)開發(fā)工具中易于使用的圖形用戶界面引導(dǎo)用戶進行增加外圍設(shè)備、指定控制器和從屬設(shè)備關(guān)系以及定義存儲地址等操作。Avalon交換結(jié)構(gòu)總線按照用戶從向?qū)Ы缑娴妮斎胱詣有纬?。?)并行的多控制器Nios開發(fā)者可以按照自己的特殊操作需要創(chuàng)建自定義的系統(tǒng)總線結(jié)構(gòu),優(yōu)化自己的系統(tǒng)數(shù)據(jù)流。Avalon交換結(jié)構(gòu)總線支持所有總線控制器的并行事務(wù)處理,并自動地為共享外圍設(shè)備和存儲器接口進行仲裁。另外,直接存儲器存?。―MA)設(shè)備能被用于與其從屬設(shè)備一起提供總線控制能力。在傳統(tǒng)的總線中,單個仲裁器控制一個或多個總線控制器跟總線從屬設(shè)備進行通信,由于每次只能有一個控制器可以存取系統(tǒng)總線而形成帶寬瓶頸,如圖1-2所示。圖1-2 傳統(tǒng)總線結(jié)構(gòu)Avalon交換結(jié)構(gòu)總線使用從屬設(shè)備側(cè)仲裁技術(shù),使并行多控制器操作最大限度地提高系統(tǒng)性能。如果多個控制器同時存取從屬設(shè)備,則由從屬設(shè)備側(cè)仲裁決定哪一個控制器得到從屬設(shè)備的存取權(quán),如圖1-3所示。圖1-3 并行多控制器Avalon交換總線結(jié)構(gòu)在這樣的系統(tǒng)中,快速以太網(wǎng)等高速外圍設(shè)備可以在不暫停CPU的情況下直接存取數(shù)據(jù)存儲器。通過允許獨立于CPU的存儲器存取,Avalon交換結(jié)構(gòu)總線優(yōu)化了數(shù)據(jù)處理過程,提高了系統(tǒng)吞吐量。(3)多達4GB的地址空間存儲器和外圍設(shè)備可以映射到32位地址空間的任何地方。換句話說,CPU(或其他的總線控制器)有多達4GB的可尋址存儲器范圍。(4)同步接口所有的Avalon信號和Avalon總線時鐘同步,這使相應(yīng)的Avalon交換結(jié)構(gòu)總線時間性能簡單化,便于高速外圍設(shè)備的集成。(5)嵌入的地址譯碼SOPC Builder創(chuàng)建的Avalon交換結(jié)構(gòu)總線自動地為所有外圍設(shè)備(甚至用戶自定義外圍設(shè)備)形成片選信號,這可極大地簡化基于Nios處理器系統(tǒng)的設(shè)計。分離的地址和數(shù)據(jù)通路為片內(nèi)用戶邏輯提供了一個極其容易的連接,用戶自定義外圍設(shè)備不需要數(shù)據(jù)和地址總線周期譯碼。(6)帶延遲的讀寫傳輸Avalon交換結(jié)構(gòu)總線可以完成帶延遲的讀寫操作,這種延遲傳輸是很有用的。這是因為,控制器可以先發(fā)出讀寫請求,在執(zhí)行一個無關(guān)的任務(wù)后接收數(shù)據(jù)。這項特性對發(fā)送多個讀寫請求到一個已知延遲的從屬設(shè)備也非常有用。例如,這對在連續(xù)的地址內(nèi)同時進行取指令操作和DMA傳輸非常有好處。在這種情況下,CPU或DMA控制器可以預(yù)取預(yù)定的數(shù)據(jù),以減少同步存儲器的平均存取延遲。(7)數(shù)據(jù)流處理帶Avalon交換矩陣的數(shù)據(jù)流處理在數(shù)據(jù)流控制器和數(shù)據(jù)流從屬設(shè)備之間建立一個開放的通道,以完成連續(xù)的數(shù)據(jù)傳送。這些通道允許數(shù)據(jù)在控制器和從屬設(shè)備對之間流動。控制器不必連續(xù)地讀取從屬設(shè)備中的狀態(tài)寄存器來決定從屬設(shè)備是否可以發(fā)送或接收數(shù)據(jù)。數(shù)據(jù)流處理在控制器和從屬設(shè)備對之間獲得最大的數(shù)據(jù)吞吐量,并避免在從屬設(shè)備上出現(xiàn)數(shù)據(jù)溢出。這對DMA傳輸尤其有用。(8)動態(tài)的外圍設(shè)備接口大小動態(tài)的總線大小允許Nios開發(fā)者使用低成本的窄的存儲器件,這些存儲器件可以和Nios CPU的總線大小不匹配。例如,32位數(shù)據(jù)總線的系統(tǒng)可以容易地集成8位閃速存儲器器件。在這樣的系統(tǒng)中,如果必要的話,動態(tài)的總線大小調(diào)整邏輯自動地執(zhí)行多總線周期,以便從窄的外圍設(shè)備中取出寬的數(shù)據(jù)值。SOPC Builder自動地添加完成大小調(diào)整和定位調(diào)整所需要的專用邏輯。第2章 Nios嵌入式系統(tǒng)開發(fā)板整體理論分析2.1 系統(tǒng)設(shè)計目標以Altera公司的Cyclone系列的FPGAEP1C6為核心,在其外圍擴展FLASH、SRAM、A/D、D/A、鍵盤、LED顯示、LCD顯示、串口通信、VGA接口、PS2接口、USB接口等器件,使其成為一個完整的嵌入式開發(fā)系統(tǒng),系統(tǒng)要盡量采用模塊化設(shè)計,各個模塊之間可以自由組合。2.2 系統(tǒng)設(shè)計原理系統(tǒng)設(shè)計原理框圖如下圖2-1所示。圖2-1 系統(tǒng)設(shè)計原理框圖當(dāng)開發(fā)板加電時,開發(fā)板上的配置邏輯使用保存在串行配置器件EPCS1中的硬件配置數(shù)據(jù)配置Cyclone,器件配置完成后Cyclone中的Nios處理器開始工作,執(zhí)行Flash中的啟動代碼程序,然后Flash中的用戶程序加載到SRAM中執(zhí)行。系統(tǒng)提供3.3V、1.5V穩(wěn)定電壓,支持JTAG下載口配置FPGA,通過兩個歐式396插座引出剩余用戶I/O口、FPGA鎖相環(huán)輸出、3.3V穩(wěn)定電源和多個接地引腳等。系統(tǒng)設(shè)計時,在器件的每一電源引腳上都并接0.1u,0.01u,0.001u三個濾波電容,不僅濾除低頻干擾信號,而且有效的消除了高頻干擾,保證了系統(tǒng)能夠穩(wěn)定可靠的工作。 系統(tǒng)布線時充分考慮到PCB布局對信號傳輸?shù)挠绊懀M量使所有的地址線到達FPGA的距離接近,避免高頻信號傳輸過程中的相位變化引起誤判,數(shù)據(jù)線的布局也遵循同樣的原則。最終,用兩層板實現(xiàn)了一般四層板的功能,不僅面積合適、工作穩(wěn)定,而且降低了開發(fā)板成本。與主開發(fā)板配套使用的,還有另一塊底板,底板可以看作是一個載體,在其上不僅留出了主開發(fā)板的接口,而且留出了A/D、D/A、LCD和鍵盤等模塊的接口,這些??旒床寮从?,配合主開發(fā)板工作,使其能夠完成復(fù)雜的EDA設(shè)計。主板和底板的配合使用見圖2-2所示。圖2-2 開發(fā)板組合結(jié)構(gòu)圖2.3 開發(fā)板組件與理論分析Nios嵌入式系統(tǒng)開發(fā)板為開發(fā)嵌入式系統(tǒng)提供硬件平臺,本畢設(shè)這次使用的FPGA為Cyclone系列的EP1C6Q240C8,其具有5980個邏輯單元和234kbits的片內(nèi)存儲器。另外,開發(fā)板上有Cyclone器件專用的串行配置器件(EPCS1)及其JTAG插座。默認參考設(shè)計提供從主計算機向開發(fā)板下載新的用戶定義硬件和軟件配置數(shù)據(jù)的功能,下載可以使用串行電纜、JTAG電纜等。GERMS監(jiān)控程序(Altera提供的Nios處理器監(jiān)控程序)通過RS-232串行口進行控制。Nios開發(fā)板具有如下組件:l Cyclone EP1C6Q240C8器件l 8MBit Flashl 256kByte SRAMl 兩個RS-232 DB9串行口l 兩個3.3V擴展插座,一共包括92個Cyclone用戶I/O引腳l 八個連接到Cyclone用戶I/O引腳的發(fā)光二極管l 四個連接到Cyclone用戶I/O引腳的按鈕開關(guān)l EPCS1串行配置器件l 用Altera下載電纜連接Cyclone器件的JTAG插座l 50MHz振蕩器和零偏移時鐘分配電路l 加電復(fù)位電路當(dāng)開發(fā)板加電時,開發(fā)板上的配置邏輯使用保存在串行配置器件EPCS1中的硬件配置數(shù)據(jù)配置Cyclone,器件配置完成后Cyclone中的Nios處理器開始工作,執(zhí)行Flash中的啟動代碼程序。Nios開發(fā)板的組件簡單介紹如下。(1)Cyclone EP1C6Q240C8器件本Nios開發(fā)板上的FPGA是240腳FBGA封裝的Cyclone EP1C6Q240C8器件,其特性如下表2-1所示。表2-1 Cyclone EP1C6Q240C8器件特性特性數(shù)目邏輯單元數(shù)5980M4K RAM塊數(shù)20總RAM位數(shù)92160鎖相環(huán)個數(shù)2用戶I/O引腳數(shù)185Cyclone器件有兩種配置方法:l 使用運行在主機算計上的Quartus軟件,通過連接到JTAG插座的Altera下載電纜直接配置Cyclone器件l 通過主動串行配置器件EPCS1/EPCS4配置Cyclone器件(2)Flash存儲器件Nios上用的Flash為8MBit的存儲器件AM29LV800B,它用于兩個目的:l 在FPGA器件上實現(xiàn)的Nios嵌入式處理器可以使用Flash存儲器作為通用只讀存儲器和非易失性存儲器l Flash存儲器可以保存FPGA配置數(shù)據(jù),配置數(shù)據(jù)在加電時通過配置控制器裝入FPGA器件Nios參考設(shè)計的硬件配置數(shù)據(jù)預(yù)存在Flash存儲器中,參考設(shè)計的硬件配置數(shù)據(jù)裝入后,其中的監(jiān)控程序可以將文件下載到Flash存儲器,Nios嵌入式處理器軟件包括擦寫Flash存儲器的程序。Flash存儲器與SRAM共用地址和數(shù)據(jù)總線。(3)雙SRAM器件Nios開發(fā)板上有兩個64k16位的異步SRAM器件IDT71V016S,它們和FPGA器件相連作為Nios嵌入式處理器的通用存儲器使用,兩個16位器件可以構(gòu)成32位存儲器,預(yù)裝的Nios參考設(shè)計把SRAM器件作為連續(xù)的128k16位零等待主存儲器。SRAM和Flash存儲器共用地址和數(shù)據(jù)總線。(4)RS-232串行口插座Nios開發(fā)板上有兩個標準的9針串行口插座,用連接到串行口的標準9針串行電纜實現(xiàn)與主計算機的串行通信。開發(fā)板上的兩個串行口一個用來調(diào)試,另一個用來提供給用戶使用,兩個串行口以相同的方式連接到FPGA,Nios處理器系統(tǒng)可以將任何一個串行口用于任何目的,不受原理圖上標記的限制。兩個FPGA邏輯端口能夠傳送所有的RS-232信號,設(shè)計時可以只使用需要的信號,例如RXD(接收數(shù)據(jù))和TXD(發(fā)送數(shù)據(jù))。當(dāng)發(fā)送或接收數(shù)據(jù)時RXD和TXD信號的發(fā)光二極管給出相應(yīng)的指示。(5)擴展插座在Nios開發(fā)板上有兩個96針的歐式插座396作為FPGA用戶I/O引腳的擴展插座。兩個插座包含以下引腳:l 96個用戶I/O引腳,全部連接到FPGA器件的用戶I/O引腳,每個信號與擴展插座之間有一個33歐姆以實現(xiàn)隔離和電平保護l 經(jīng)過緩沖的零偏移FPGA鎖相環(huán)PLL輸出l 3.3V電源引腳l 5V電源引腳l 多個地引腳(6)發(fā)光二極管Nios開發(fā)板上有八個發(fā)光二極管LED1LED8,其直接連接到FPGA的I/O引腳上,當(dāng)FPGA引腳輸出高電平時對應(yīng)的發(fā)光二極管亮。(7)按鈕開關(guān)Nios開發(fā)板上有五個按鈕開關(guān),其中四個為普通按鍵開關(guān),每個開關(guān)一端通過下拉電阻接地,同時這一端還要通過帶史密特觸發(fā)的反向器連接到FPGA的通用I/O引腳,以實現(xiàn)消抖功能,另一端直接接3.3V電源,當(dāng)開關(guān)按下時FPGA引腳輸入高電平。另一個位是復(fù)位開關(guān),用于系統(tǒng)的全局復(fù)位,按下時輸入低電平。(8)串行配置器件串行配置器件是具有串行接口的Flash存儲器件,可以存儲Cyclone器件的配置數(shù)據(jù)并在上電或重新配置時將配置數(shù)據(jù)重新裝入到Cyclone器件。利用Cyclone器件新的數(shù)據(jù)壓縮特性,設(shè)計者可以使用較小的串行配置器件配置大的Cyclone器件,串行配置器件不能級連。SOPC Builder主動串行存儲器接口組件允許微處理器系統(tǒng)訪問串行配置存儲器。(9)電源電路Nios開發(fā)板可以用5V未穩(wěn)壓的電壓源,板上電源電路產(chǎn)生3.3V、1.5V穩(wěn)定電源。3.3V電源用于所有Cyclone器件I/O引腳的電源,也用于FLASH和SRAM等3.3V供電的器件。1.5V電源只用做Cyclone器件核心的電源,不用于任何插座。(10)JTAG連接JTAG插座直接與Cyclone器件的專用JTAG引腳相聯(lián)(TCK、TDI、TDO和TMS),Quartus軟件可以通過ByteBlaster下載電纜用新的硬件映像直接配置Cyclone器件,Nios嵌入式處理器調(diào)試程序也可以通過連接到插座的電纜訪問Nios片內(nèi)調(diào)試模塊OCI。2.4 開發(fā)板電路設(shè)計原理圖與PCB布線圖原理圖如下圖2-3所示。圖2-3 Nios嵌入式開發(fā)板原理圖印制電路板PCB圖如下圖2-4所示。圖2-4 印制電路板PCB圖第3章 Nios嵌入式系統(tǒng)開發(fā)板硬件開發(fā)環(huán)境3.1 硬件開發(fā)環(huán)境概述Nios開發(fā)板為開發(fā)嵌入式系統(tǒng)提供硬件平臺,Nios開發(fā)板具有如下組件:Cyclone EP1C6Q240C8器件、8MBit Flash、256kByte SRAM、兩個RS-232 DB9串行口、兩個3.3V擴展插座,一共包括92個Cyclone用戶I/O引腳、八個連接到Cyclone用戶I/O引腳的發(fā)光二極管、四個連接到Cyclone用戶I/O引腳的按鈕開關(guān)、EPCS1串行配置器件、用Altera下載電纜連接Cyclone器件的JTAG插座、50MHz振蕩器和零偏移時鐘分配電路和加電復(fù)位電路等。下面詳細的介紹主要組件。3.2 FPGA:EP1C6QC240C8的特性和電路設(shè)計Cyclone器件是基于1.5V、0.13um、全銅SRAM工序,多達20060個邏輯單元(LE)和288KB SRAM的FPGA器件,具有時鐘鎖相環(huán)路(PLL)、連接DDR SDRAM的雙數(shù)據(jù)速率(DDR)接口和快速環(huán)路RAM(FCRAM)內(nèi)存需求,支持不同的I/O標準,包含數(shù)據(jù)速率達311Mb/s的LVDS和66MHz 32位外設(shè)組件互連(PCI)接口。3.2.1 特性和封裝Cyclone器件具有如下特性,如表3-1所示。l 291020060個邏輯單元(LE)l 多達294912位RAM(36864B)l 支持低成本串行配置器件(EPCS1或EPCS4)配置l 支持LVTTL、LVCMOS、SSTL-2和SSTL-3I/O標準l 支持66MHz 32位PCI標準和高速(311Mb/s)LVDSl 兩個PLL提供時鐘倍頻和相移l 多達八個全局時鐘線,每個邏輯塊陣列(LAB)可用六個時鐘源l 支持DDR SDRAM(133MHz)、FCRAM和單數(shù)據(jù)速率(SDR)SDRAMl 支持知識產(chǎn)權(quán)(IP)核,包含Altera MegaCore函數(shù)和AMPP mega函數(shù)表3-1 Cyclone器件特性特性EP1C3EP1C6EP1C12EP1C20邏輯單元(LE)291059801206020060M4K RAM塊(12836位)13205264總RAM位5990492160239616294912鎖相環(huán)(PLL)1222最大用戶I/O引腳1041852493013.2.2 引腳說明240引腳PQFP封裝的引腳功能見附3。各引腳的定義見附3。3.2.3 工作條件Cyclone器件有民用和工業(yè)兩個等級,工業(yè)級器件可能有速度等級可用性限制。Cyclone器件的絕對最大額度定值見附3。Cyclone器件推薦工作條件見附3。Cyclone器件的直流工作條件見附3。3.3 串行配置器件:EPCS1的特性和電路設(shè)計3.3.1 Cyclone FPGA的配置Cyclone器件可以用以用多種配置方式,這些配置方式包括主動串行配置、被動串行配置、基于JTAG口的配置,其中主動串行配置是用一種新的低成本的串行配置器件。除此之外,Cyclone器件還可以接收壓縮數(shù)據(jù)流,并且實時的解壓縮這些數(shù)據(jù)以減少配置所需空間的大小,縮短配置所需的時間。Cyclone器件用SRAM單元來存儲配置數(shù)據(jù),因為SRAM存儲器是不穩(wěn)定的,所以配置數(shù)據(jù)在每次系統(tǒng)上電時都需要下載到Cyclone器件中,配置數(shù)據(jù)可以通過主動串行方式、被動串行方式和JTAG等方式下載,如表3-2所示。表3-2 Cyclone配置方式配置方式配置需求描述主動串行方式串行配置器件(EPCS1或者EPCS4)被動串行方式增強型的配置器件(EPC4、EPC8或者EPC16)EPC2、EPC1串行配置器件智能主機(微處理器)下載電纜JTAG接口方式下載電纜智能主機(微處理器)標準的測試和編程Jam語言(STAPL)可以通過MSEL1和MSEL0兩個引腳的電平高低來選擇Cyclone器件的配置方式,見表3-3。如果系統(tǒng)設(shè)計只要求用到一種配置方式,那么兩個MSEL腳就可以接到VCC或者GND上,如果設(shè)計要求多于一種配置方式,那么MSEL腳在Cyclone器件配置完成以后可以轉(zhuǎn)換。在用戶模式下把這兩個腳固定起來并不會影響器件操作。盡管如此,MSEL腳在開始重新配置時必須有效。表3-3 配置數(shù)據(jù)源MSEL1.0配置電路數(shù)據(jù)源00主動串行(AS)低成本串行配置器件EPCS1或EPCS401被動串行(PS)EPC2配置器件、MasterBlaster/ByteBlasterMV下載電纜或串行數(shù)據(jù)源10或者11JTAGMasterBlaster/ByteBlasterMV下載電纜或微處理器,Jam或JBC文件配置完成以后,Cyclone器件將會初始化所有的寄存器和I/O接口,然后進入用戶模式下,執(zhí)行用戶設(shè)計文件。Cyclone器件通過串行配置器件進行配置時,串行配置器件上的4個控制引腳nCS、DCLK、ASDI、DATA分別與Cyclone器件的控制信號nCSO、DCLK、ASDO、DATA0直接相連。通過下載電纜編程的串行配置器件用AS配置方式對Cyclone器件進行配置的連接如圖3-1所示。圖3-1 用AS配置方式配置Cyclone器件Cyclone器件在配置流程中作為配置控制器使用,通過nCSO信號將nCS置為低電平選中串行配置器件,通過DCLK向串行配置器件提供串行配置數(shù)據(jù),通過ASDO向串行配置器件發(fā)送指令和地址,串行配置器件在DCLK的下降沿向Cyclone器件的DATA0發(fā)送配置數(shù)據(jù),配置數(shù)據(jù)在DCLK的上升沿鎖存到Cyclone器件中。Cyclone器件在AS配置方式配置期間控制CONF_DONE和nSTATUS引腳。如果CONF_DONE信號在配置結(jié)束時不變?yōu)楦唠娖交蜃優(yōu)楦唠娖竭^早, Cyclone將nSTATUS引腳變?yōu)榈碗娖介_始重新配置。配置成功后,Cyclone器件釋放CONF_DONE引腳,允許外部10k歐姆電阻將其上拉到高電平。CONF_DONE變?yōu)楦唠娖胶驝yclone器件開始初始化,并在136個時鐘周期內(nèi)完成,初始化后Cyclone器件進入用戶方式。 3.3.2串行配置器件: EPCS1/EPCS4基于SRAM的Cyclone器件在每次系統(tǒng)初始化或需要更新配置時必須重新裝配數(shù)據(jù)。串行配置器件是具有串行接口的Flash存儲器件,可以存儲Cyclone器件的配置數(shù)據(jù),并在上電或者重新配置時將配置數(shù)據(jù)重新載入到Cyclone器件。串行配置器件有如下特性:l 串行配置Cyclone器件的1Mb (EPCS1)和4Mb (EPCS4)存儲器件l 低成本、低引腳數(shù)和非易失性存儲器l 配置電流小,等待狀態(tài)電流接近零,3.3V工作l 易于使用的4引腳接口,8引腳小輪廓集成電路(SOIC)封裝l 允許Nios處理器通過主動串行(AS)存儲器接口存取未用的Flash存儲器l 多于10萬次擦除/編程的可編程存儲器l 支持ByteBlater2下載電纜編程l 支持Altera編程單元(AUP)編程和BP Microsystems及其他供應(yīng)商的編程硬件l 軟件設(shè)計支持Altera Quartus開發(fā)系統(tǒng)l 提供存儲器陣列擦除(所有位設(shè)置為1)串行配置器件用來配置Cyclone器件,不能配置其他已有的器件系列。使用新的數(shù)據(jù)壓縮特性,可以用小容量的串行配置器件配置大容量的Cyclone器件。Cyclone器件配置文件容量和使用的串行配置器件如表3-4所示。表3-4 Cyclone器件串行配置器件Cyclone器件配置文件大小(Mbits)串行配置器件EPCS1(1Mbits)EPCS4(4Mbits)EP1C30.628可以可以EP1C61.167可以可以EP1C122.324可以EP1C203.559可以串行配置器件的引腳說明如下表3-5所示。表3-5 串行配置器件引腳說明引腳名稱引腳號引腳類型說明nCS1輸入低電平有效片選輸入信號,在有效指令的開始和結(jié)束時改變,高電平時不選中器件,DATA信號處于三態(tài);低電平時選中器件,器件進入活動方式。加電后需要在nCS上有一個下降沿,串行配置器件才能正常操作DATA2輸出串行數(shù)據(jù)輸出信號,在讀取/配置操作期間從串行配置器件向Cyclone器件串行傳送數(shù)據(jù),通過將nCS置為低電平選中串行配置器件,DATA信號在DCLK的下降沿改變。ASDI5輸入主動串行數(shù)據(jù)輸入信號,用于向串行配置器件傳送數(shù)據(jù),接收編程輸入到串行配置器件的數(shù)據(jù),在DCLK的上升沿鎖存數(shù)據(jù)DCLK6輸入串行數(shù)據(jù)時鐘輸入信號,由Cyclone器件提供,用于串行接口定時。出現(xiàn)在ASDI上的數(shù)據(jù)在DCLK的上升沿鎖存到串行配置器件中,DATA上的數(shù)據(jù)在DCLK的下降沿改變,在DCLK的上升沿鎖存到Cyclone器件中VCC3、7、8電源3.3V電源引腳GND4地地引腳3.3.3 EPCS1的電路設(shè)計 如圖3-2所示。圖3-2 開發(fā)板上原理圖中EPCS1的連接3.4 SRAM:IDT71V016的特性和電路設(shè)計3.4.1 器件特性IDT71V016有如下特性:l 64k16位超高速CMOS靜態(tài)SRAMl 商業(yè)用(0到70)和工業(yè)用(-40到85)兩種l 與時鐘周期相等的存取時間:商業(yè)用15ns工業(yè)用20nsl 一個片選端和一個輸出使能端l 雙向的輸入和輸出與LVTTL相符l 通過未選中芯片實現(xiàn)低電源功耗l 低字節(jié)和高字節(jié)使能引腳l 單電源3.3V供電l 44腳的SOJ封裝和44腳的TSOP封裝3.4.2 IDT71V016工作方式IDT71V016是一種高速靜態(tài)的SRAM,其容量為1048576Bit(64k16位)。IDT71V016是利用IDT高性能高可靠性的CMOS工藝制造而成的。IDT先進的工藝,還有創(chuàng)造性的電路設(shè)計,為我們提供了一種解決高速存儲需要的途徑。IDT71V016有一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論