【正文】
( 2) Flash 存儲器件 Nios 上用的 Flash 為 8MBit 的存儲器件 AM29LV800B,它用于兩個目的: ? 在 FPGA 器件上實現(xiàn)的 Nios 嵌入式處理器可以使用 Flash 存儲器作為通用只讀存儲器和非易失性存儲器 ? Flash 存儲器可以保存 FPGA 配置數(shù)據(jù),配置數(shù)據(jù)在加電時通過配置控制器裝入 FPGA 器件 Nios 參考設(shè)計的硬件配置數(shù)據(jù)預(yù)存在 Flash 存儲器中,參考設(shè)計的硬件配置數(shù)據(jù)裝入后,其中的監(jiān)控程序可以將文件下載到 Flash 存儲器, Nios 嵌入式處理器軟件包括擦寫 Flash 存儲器的程序。 Nios 開發(fā)板的組件簡單介紹如下。 GERMS 監(jiān)控程序( Altera 提供的 Nios 處理器監(jiān)控程序)通過 RS232 串行口進行控制。另外,開發(fā)板上有 Cyclone 器件專用的串行 配置器件( EPCS1)及其 JTAG 插座。 主板和底板的配合使用見圖 22 所示。最終,用兩層板實現(xiàn)了一般四層板的功能,不僅面積合適、工作穩(wěn)定,而且降低了開發(fā)板成本。 系統(tǒng)設(shè)計時,在器件的每一電源引腳上都并接 , , 三個濾波電容,不僅濾除低頻干擾信號,而且有效的消除了高頻干擾,保證了系統(tǒng)能夠穩(wěn)定可靠的工作。 圖 21 系統(tǒng)設(shè)計原理框圖 當(dāng)開發(fā)板加電時,開發(fā)板上的配置邏輯使用保存在串行配置器件 EPCS1中的硬件配置數(shù)據(jù)配置 Cyclone,器件配置完成后 Cyclone 中的 Nios 處理器開始工作,執(zhí)行 Flash 中的啟動代碼程序,然后 Flash 中的用戶程序加載到 SRAM 中執(zhí)行。 15 第 2 章 Nios 嵌入式系統(tǒng)開發(fā)板整體分析 系統(tǒng) 設(shè)計目標(biāo) 以 Altera 公司的 Cyclone 系列的 FPGA— EP1C6 為核心, 在其外圍擴展 FLASH、 SRAM、 A/D、 D/A、鍵盤、 LED 顯示、 LCD 顯示、 串口通信 、 VGA 接口、 PS2 接口、 USB 接口 等器件,使其成為一個完整的嵌 入式開發(fā)系統(tǒng), 系統(tǒng) 要盡量 采用模塊化設(shè)計,各個模塊之間可以自由組合 。在這樣的系統(tǒng)中,如果必要的話,動態(tài)的總線大小調(diào)整邏輯自動地執(zhí)行多總線周期,以便從窄的外圍設(shè)備中取出寬的數(shù)據(jù)值。 ( 8)動態(tài)的外圍設(shè)備接口大小 動態(tài)的總線大小允許 Nios 開發(fā)者使用低成本的窄的存儲器件,這些存儲器件可以和 Nios CPU 的總線大小不匹配。 數(shù)據(jù)流處理在控制器和從屬設(shè)備對之間獲得最大的數(shù)據(jù)吞吐量,并避免在從屬設(shè)備上出現(xiàn)數(shù)據(jù)溢出。這些通道允許數(shù)據(jù)在控制器和從屬設(shè)備對之間流動。在這種情況下, CPU 或 DMA控制器可以預(yù)取預(yù)定的數(shù)據(jù),以減少同步存儲器的平均存取延遲。這項特性對發(fā)送多個讀寫請求到一個已知延遲的從屬設(shè)備也非常有用。 ( 6)帶延遲的讀寫傳輸 Avalon 交換結(jié)構(gòu)總線可以完成帶延遲的讀寫操作,這種延遲傳輸是很有用的。 ( 5)嵌入的地址譯碼 SOPC Builder 創(chuàng)建的 Avalon 交換結(jié)構(gòu)總線自動地為所有外圍設(shè)備 ( 甚至用戶自定義外圍設(shè)備 ) 形成片選信號,這可極大地簡化基于 Nios 處理器系統(tǒng)的設(shè)計。換句話說, CPU( 或其他的總線控制器 ) 有多達 4GB 的可尋址存儲器范圍。 通過允許獨立于 CPU 的存儲器存取, Avalon 交換結(jié)構(gòu)總線優(yōu)化了數(shù) 據(jù)處理過程,提高了系統(tǒng)吞吐量。如果多個控制器同時存取從屬設(shè)備,則由從屬設(shè)備側(cè)仲裁決定哪一個控制器得到從屬設(shè)備的存取權(quán),如圖 13 所示。 在傳統(tǒng)的總線中,單個仲裁器控制一個或多個總線控制器跟總線從屬設(shè)備進行通信,由于每次只能有一個控制器可以存取系統(tǒng)總線而形成帶寬瓶頸,如圖 12 所示。 Avalon交換結(jié)構(gòu)總線支持所有總線控制器的并行事務(wù)處理,并自動地為共享外圍設(shè)備和存儲器接口進行仲裁。 Avalon 交換結(jié)構(gòu)總線按照用戶從向?qū)Ы缑娴妮斎胱詣有纬伞? ? 動態(tài)的外圍設(shè)備接口大小。 ? 帶延遲的讀寫操作。 ? 同步接口。 ? 并行的多控制器。 Altera 的 SOPC Builder 系統(tǒng)開發(fā)工具自動地產(chǎn)生 Avalon交換結(jié)構(gòu)總線邏輯。 以太網(wǎng) DRA M JT AG 接口 F P GA Nio s CP U CPU 數(shù)據(jù)緩存 指令緩存 片內(nèi)調(diào)試模塊 DMA 控制器 A v a lo n 交換 結(jié)構(gòu) 總線 數(shù)據(jù) 存儲器 程序 存儲器 S DRA M 控制器 P IO UA R T 10 M / 1 0 0M 以太網(wǎng) 圖 11 Nios處理器系統(tǒng) Nios 處理器系統(tǒng)包含帶指令和數(shù)據(jù)高速緩存的 Nios CPU、片內(nèi)調(diào)試模塊、直接存儲器存取 ( DMA) 控制器、常用外圍設(shè)備 ( PIO、 UART、以太網(wǎng)端口和存儲器接口等 ) 和并行多控制器 Avalon 交換結(jié)構(gòu)總線。 ? 片內(nèi)調(diào)試模塊。 ? Avalon 總線。 Altera 的 SOPC Builder 系統(tǒng)開發(fā)工具可以自動生成這些組件以及連接它們的總線。 Nios 嵌入式處理器的系統(tǒng)組件、開發(fā)工具和開發(fā)平臺如表 13 所示。 Nios 嵌入式處理器支持 Altera 主流 FPGA 的全部系列,器件支持如表 12 所示。 ? MSTEP 指令:單步乘法單元。 ( 4) 硬件加速模塊。 ? 大容量內(nèi)部寄存器組的有效利用。 ( 3) 為編譯嵌入式軟件優(yōu)化指令系統(tǒng)結(jié)構(gòu)。 ? 標(biāo)準(zhǔn)的可配置外圍設(shè)備庫。 ( 2) 用 SOPC Builder 容易進行系統(tǒng)集成。 ? 使用最少的存儲單元。 表 11 Nios 嵌入式處理器典型配置比較 特 性 32位 Nios CPU 16位 Nios CPU 數(shù)據(jù)總線 寬度 /bit 32 16 11 算術(shù)邏輯單元 ( ALU) 寬度 /bit 32 16 內(nèi)部寄存器寬度 /bit 32 16 地址總線寬度 /bit 32 16 指令長度 /bit 16 16 邏輯單元數(shù) ( LEs)( 典型值 ) ① 1500 1000 MAXf 125MHz 125MHz 注: MAXf 其具體數(shù)值與器件結(jié)構(gòu)有關(guān) Nios 嵌入式處理器指令系統(tǒng)結(jié)構(gòu)的設(shè)計具有以下特性: ( 1) 在 Altera FPGA 中有效實現(xiàn)。這些特性允許 Nios 用戶通過用簡單的而非傳統(tǒng)的方法加速和優(yōu)化自己的設(shè)計。又如一個 32 位 Nios CPU,與外圍設(shè)備、硬件加速單位和自定義指令一起,構(gòu)成一個功能強大的 32 位嵌入式處理器系統(tǒng)。 可配置 Nios CPU 是 Nios 處理器系統(tǒng)的核心,它能夠被靈活配置而適用于各種各樣的應(yīng)用。 嵌入式設(shè)計者利用 SOPC Builder 系統(tǒng)開發(fā)工具能夠很容易地創(chuàng)建自己的處理器系統(tǒng)。 Nios 嵌入式處理器 Nios 嵌入式處理器特性 Nios 嵌入式處理器是用戶可配置的通用 RISC 嵌入式處理器,它是一個非常靈活和強大的處理器。 CPLD 和 FPGA 的結(jié)構(gòu)有所不同,但功能差別不大,作為新產(chǎn)品的 FPGA 要比早期的 CPLD 性能強大。 PLD 性能的不斷提高,也使 SOPC 的性能越來越高。 SOPC 是在 PLD 上實現(xiàn) SOC, PLD 的可編程性使 SOPC 的設(shè)計和實現(xiàn)非常方便。 SOC 通常是專用集成電路( ASIC),所以不為用戶所熟知,而且其開發(fā)周期長,生產(chǎn)成本高,產(chǎn)品不能進行修改。此外, SOC有極高的綜合性,在一個芯片內(nèi)部運用 VHDL 等硬件描述語言可以實現(xiàn)復(fù)雜的系統(tǒng)。 片上系統(tǒng)和可編程片上系 統(tǒng) 隨著半導(dǎo)體技術(shù)的不斷發(fā)展,片上系統(tǒng)( System on a Chip, SOC)成為嵌入式應(yīng)用領(lǐng)域的熱門方向之一。 在嵌入式系統(tǒng)的軟件開發(fā)過程中,采用 C 語言將是最佳的選擇。嵌入式系統(tǒng)本身不具備自主開發(fā)能力,即 使在設(shè)計完成以后用戶通常也不能對程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。嵌入式系統(tǒng)的應(yīng)用程序可以不需要操作系統(tǒng)的支持直接運行,但為了合理地調(diào)度多任務(wù),充分利用系統(tǒng)資源,用戶必須自行選配實時操作系統(tǒng)( RealTime Operating System, RTOS)開發(fā)平臺,這樣才能保證程序執(zhí)行的實時性和可靠性,減少開發(fā)時間,保障軟件質(zhì)量。同時針對不同的任務(wù),往往需要對系統(tǒng)進行較大更改,程序的編譯下載也要同系統(tǒng)相結(jié)合。 ? 專用性強。由于嵌入式系統(tǒng)一般應(yīng)用于小型電子裝置,系統(tǒng)資源相對有限,所以系統(tǒng)內(nèi)核與傳統(tǒng)的系統(tǒng)相比要小得多。但作為專用計算機系統(tǒng)的嵌入式系統(tǒng)與通用計算機系統(tǒng)相比,具有以下幾個重要特征。凡是與產(chǎn)品結(jié)合在一起的具有嵌入式特點的系統(tǒng)都 可以稱為嵌入式系統(tǒng)。比較好的發(fā)展模式是:首先建立相對通用的硬件和軟件基礎(chǔ),然后開發(fā)出適應(yīng)各種需要的嵌入式系統(tǒng)。 ? 嵌入式系統(tǒng)將先進的半導(dǎo)體技術(shù)、計算機技術(shù)和 電子技術(shù)以及各個行業(yè)的具體應(yīng)用相結(jié)合,是一個技術(shù)密集、資金密集 和不斷創(chuàng)新的知識集成系統(tǒng)。 可以從以下幾個方面來理解嵌入式系統(tǒng)的含義: ? 嵌入式系統(tǒng)面向用戶、面向產(chǎn)品和面向應(yīng)用,必 須與具體應(yīng)用相結(jié)合才會具有生命力,才更具有優(yōu)勢。 Nios 系統(tǒng)將處理器、存儲器、輸入輸出接口和其他 IP 核靈活地集成到 SOPC 設(shè)計中。 Nios 嵌入式處理器是可配置的通用 RISC 處理器,可以很容易地與用戶邏輯相結(jié)合,集成到 Altera FPGA器件中。常用的 嵌入式處理器 硬核有 ARM、 MIPS、PowerPC、 Intel x86 和 Motorola 68000 等; Altera 公司開發(fā)的 Nios 是 16/32 位嵌入式處理器軟核。硬件包括處理器、存儲器 、輸入輸出接口和外部設(shè)備 等 , 軟件包括系統(tǒng)軟件 和應(yīng)用軟件, 嵌入式系統(tǒng) 的系統(tǒng)軟件和應(yīng)用軟件緊密結(jié)合。 SOPC結(jié)合了 SOC和 FPGA各自的優(yōu)點,一般具備以下基本特征: ? 至少包含一個嵌入式處理器內(nèi)核 ? 具有小容量片內(nèi)高速 SRAM資源 ? 豐富的 IP Core資源可供選擇 ? 足夠的片上可編程邏輯資源 ? 處理器調(diào)試接口和 FPGA編程接口 ? 可能包含部分可編程模擬電路 ? 單芯片、低功耗、微封裝 本文設(shè)計完成的 是 基于 FPGA 的嵌入式系統(tǒng)開發(fā)板 ,它可以完成 FPGA、嵌入式系統(tǒng)、 SOPC 的設(shè)計和開發(fā)。因此, FPGA在嵌入式系統(tǒng)設(shè)計領(lǐng)域已占據(jù)著越來越重要的地位。 關(guān)鍵詞 :嵌入式系統(tǒng), Nios 嵌入式處理器, SOPC, FPGA III ABSTRACT The thesis pletes a design of an embedded system development board based on development board can plete the design of FPGA,embeded system,SOPC and so on. The development board is based on Altera Cyclone device— EP1C6, 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 the devices constitute an integrated embeded development system. The development board offers us plenty of interfaces to meet the need of the device munication and the intermunion between human and puter,which makes the design and the embedding of the system more 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 pile and download,then they can use this development board to debug and validate the result. KEY WORDS: embeded system, Nios embeded