FPGA 之 SOPC 系列(四)NIOS II 外围设备--标准系统搭建
FPGA 之 SOPC 系列(四)NIOS II 外圍設(shè)備--標(biāo)準(zhǔn)系統(tǒng)搭建
今天給大俠帶來今天帶來FPGA 之 SOPC 系列第四篇,NIOS II 外圍設(shè)備--標(biāo)準(zhǔn)系統(tǒng)搭建,希望對(duì)各位大俠的學(xué)習(xí)有參考價(jià)值,話不多說,上貨。
本篇主要以一個(gè)標(biāo)準(zhǔn)硬件平臺(tái)的搭建為例,介紹了Nios II處理器常用外圍設(shè)備(Peripherals)內(nèi)核的特點(diǎn)、配置,供讀者在使用這些外設(shè)定制Nios II系統(tǒng)時(shí)查閱。這些外設(shè)都是以IP核的形式提供給用戶的,用戶可以根據(jù)實(shí)際需要把這些IP核集成到Nios II系統(tǒng)中去。
主要介紹:硬件結(jié)構(gòu);內(nèi)核的特性核接口;SOPC Builder中各內(nèi)核的配置選項(xiàng)。
以下為本篇的目錄簡介:
-
4.1 并行輸入/輸出(PIO)內(nèi)核
-
4.2 SDRAM控制器內(nèi)核
-
4.3 ram/rom片上存儲(chǔ)
-
4.4 EPCS控制器內(nèi)核
-
4.5 定時(shí)器內(nèi)核
-
4.6 UART內(nèi)核
-
4.7 JTAG_UART內(nèi)核
-
4.8 lcd控制器
-
4.9 System ID內(nèi)核
-
4.10 實(shí)戰(zhàn)訓(xùn)練
?
4.1 并行輸入/輸出(PIO)內(nèi)核
并行輸入/輸出內(nèi)核(PIO內(nèi)核①)提供Avalon從控制器端口和通用I/O口②間的存儲(chǔ)器映射接口。PIO內(nèi)核提供簡單的I/O訪問用戶邏輯或外部設(shè)備,例如:
-
控制LED
-
讀取開關(guān)量
-
控制顯示設(shè)備
-
配置并且與片外設(shè)備通信
說明:
SOPC Builder中提供了PIO內(nèi)核,可以很容易將PIO內(nèi)核集成到SOPC Builder生成的系統(tǒng)中。
通用I/O端口既連接到片內(nèi)邏輯又連接到外部設(shè)備的FPGA I/O管腳。
?
PIO內(nèi)核簡介
每個(gè)Avalon接口的PIO內(nèi)核可提供32個(gè)I/O端口且端口數(shù)可設(shè)置,用戶可以添加一個(gè)或多個(gè)PIO內(nèi)核。CPU通過I/O寄存器控制I/O端口的行為。I/O口可以配置為輸入、輸出和三態(tài),還可以用來檢測(cè)電平事件和邊沿事件。
PIO內(nèi)核寄存器描述:
注:
① 該寄存器是否存在取決于硬件的配置。如果該寄存器不存在,那么讀寄存器將返回未定義的值,寫寄存器無效。該寄存器是否存在取決于硬件的配置。如果該寄存器不存在,那么讀寄存器將返回未定義的值,寫寄存器無效。
② 寫任意值到邊沿捕獲寄存器將清除所有位為0。
PIO內(nèi)核配置選項(xiàng)操作如下:
Basic Settings 選項(xiàng)卡:
各個(gè)端口描述:
Input Options 選項(xiàng)卡:
Simulation 選項(xiàng)卡:
?
4.2 SDRAM控制器內(nèi)核
-
SDRAM控制器內(nèi)核概述 SDRAM控制器內(nèi)核提供一個(gè)連接片外SDRAM芯片的Avalon接口,并可以同時(shí)連接多個(gè)SDRAM芯片。 SDRAM控制器內(nèi)核具有不同數(shù)據(jù)寬度(8、16、32或64位)、不同內(nèi)存容量和多片選擇等設(shè)置。 SDRAM控制器不支持禁能的時(shí)鐘模式。SDRAM控制器使cke引腳永久地有效。
-
PPL(片內(nèi)鎖相環(huán)):通常用于調(diào)整SDRAM控制器內(nèi)核與SDRAM芯片之間的相位差。
-
Avalon三態(tài)橋:SDRAM控制器可與現(xiàn)有三態(tài)橋共用引腳,這能減少I/O引腳使用,但將降低性能。
-
fMAX(最高時(shí)鐘頻率):目標(biāo)FPGA的系列和整個(gè)硬件設(shè)計(jì)都會(huì)影響硬件設(shè)計(jì)可實(shí)現(xiàn)的最高時(shí)鐘頻率。
-
SDRAM內(nèi)核配置選項(xiàng)操作如下: SDRAM芯片型號(hào):
Memory Profile:
數(shù)據(jù)寬度:
結(jié)構(gòu)設(shè)置--片選:
結(jié)構(gòu)設(shè)置--區(qū):
地址寬度設(shè)計(jì)--行:
地址寬度設(shè)計(jì)--行:
通過三態(tài)橋共用管腳:
包括系統(tǒng)測(cè)試臺(tái)的功能存儲(chǔ)模塊:
Timing:
CAS等待時(shí)間:
初始化刷新周期:
每隔一段時(shí)間執(zhí)行一個(gè)刷新命令:
在初始化前、上電后延時(shí):
刷新命令(t_rfc)的持續(xù)時(shí)間:
預(yù)充電命令(t_rp)的持續(xù)時(shí)間:
ACTIVE到READ或WRITE延時(shí):
訪問時(shí)間(t_ac):
寫恢復(fù)時(shí)間(t_wr,無自動(dòng)預(yù)充電):
-
SDRAM應(yīng)用 一個(gè)帶32位數(shù)據(jù)總線的128Mbit SDRAM芯片:
兩個(gè)帶16位數(shù)據(jù)總線的64Mbit SDRAM芯片:
兩個(gè)帶32位數(shù)據(jù)總線的128Mbit SDRAM芯片:
-
添加外部sdram
-
通常的系統(tǒng)都需要用戶指定一個(gè)空間,這個(gè)是指ram可以使片上的,也可以使片外的sdram或sram等。如果用戶程序較大,超出了所能定制的最大片上ram容量,則也可以將程序放在sdram中運(yùn)行。
?
4.3 ram/rom片上存儲(chǔ)
使用FPGA內(nèi)部RAM資源,可以構(gòu)成RAM或ROM,速度快,特別在調(diào)試時(shí)因?yàn)楹苌偈芡獠窟B線等因素的限制很有用。組件欄中選擇Legacy Components->On-Chip Memory打開界面,如圖:
?
4.4 EPCS控制器內(nèi)核
EPCS控制器內(nèi)核綜述
Altera EPCS 串行配置器件(EPCS1和EPCS4),它可用于存儲(chǔ)程序代碼、非易失性程序數(shù)據(jù)和FPGA配置數(shù)據(jù)。
帶Avalon接口的EPCS設(shè)備控制器內(nèi)核(“EPCS控制器”)允許NiosII系統(tǒng)訪問Altera EPCS串行配置器件。Altera提供集成到NiosII硬件抽象層(HAL)系統(tǒng)庫的驅(qū)動(dòng)程序,允許用戶使用HAL應(yīng)用程序接口(API)來讀取和編寫EPCS器件。
EPCS控制器可用于:
-
在EPCS器件中存儲(chǔ)程序代碼。
-
存儲(chǔ)非易失性數(shù)據(jù)。
-
管理FPGA配置數(shù)據(jù)。
EPCS控制器結(jié)構(gòu)框圖如下:
?
4.5 定時(shí)器內(nèi)核
-
定時(shí)器內(nèi)核綜述: 定時(shí)器是掛載在Avanlon總線上的32位定時(shí)器,特性如下: — 兩種計(jì)數(shù)模式:單次減1和連續(xù)減1計(jì)數(shù)模式 — 定時(shí)器到達(dá)0時(shí)產(chǎn)生中斷請(qǐng)求(IRQ); — 可選擇設(shè)定為看門狗定時(shí)器,計(jì)算到達(dá)0時(shí)復(fù)位系統(tǒng); — 可選擇輸出周期性脈沖,在定時(shí)器計(jì)算到達(dá)0時(shí)輸出脈沖; — 可由軟件啟動(dòng)、停止或復(fù)位定時(shí)器; — 可由軟件使能或屏蔽定時(shí)器中斷。
EPCS控制器結(jié)構(gòu)框圖如下:
-
定時(shí)器可進(jìn)行的基本操作如下所述: Avalon主控制器通過對(duì)控制寄存器執(zhí)行不同的寫操作來控制:
-
啟動(dòng)和停止定時(shí)器
-
使能/禁能IRQ
-
指定單次減1計(jì)數(shù)或連續(xù)減1計(jì)數(shù)模式
-
處理器讀狀態(tài)寄存器獲取當(dāng)前定時(shí)器的運(yùn)行信息。
-
處理器可通過寫數(shù)據(jù)到periodl和periodh寄存器來設(shè)定定時(shí)器周期。
-
定時(shí)器可進(jìn)行的基本操作如下所述:
-
內(nèi)部計(jì)數(shù)器計(jì)數(shù)減到0,立即從周期寄存器開始重新裝載。
-
處理器可以通過寫snapl或snaph獲取計(jì)數(shù)器的當(dāng)前值。
-
當(dāng)計(jì)數(shù)器計(jì)數(shù)到達(dá)0時(shí):
-
如果IRQ被使能,則產(chǎn)生一個(gè)IRQ
-
(可選的)脈沖發(fā)生器輸出有效持續(xù)一個(gè)時(shí)鐘周期
-
(可選的)看門狗輸出復(fù)位系統(tǒng)
-
定時(shí)器寄存器描述:
注:*表示該位保留,讀取值未定義。
-
定時(shí)器內(nèi)核配置選項(xiàng)操作如下: CFI控制器框圖如下:
Initial perod:
Preset Configurations:
Writeable perod、Readable snapshot及Start/Stop control bits:
Timeout pulse 和 System reset on timeout:
?
在組件欄中雙擊選擇Other->Interval timer進(jìn)入配置界面,我們選用Full feature,1ms一次溢出事件。
?
4.6 UART內(nèi)核
UART內(nèi)核綜述
UART內(nèi)核(通用異步接收器/發(fā)送器內(nèi)核)執(zhí)行RS-232協(xié)議時(shí)序,并提供可調(diào)整的波特率。用戶可配置奇偶校驗(yàn)位、停止位和數(shù)據(jù)位,以及可選的RTS/CTS流控制信號(hào)。
內(nèi)核提供一個(gè)簡單的Avalon從控制器接口,該接口允許Avalon主控制器(例如NiosII處理器)通過讀寫寄存器與UART內(nèi)核進(jìn)行通訊。
UART內(nèi)核的結(jié)構(gòu)框圖如下圖所示:
RS-232接口 發(fā)送邏輯 接收邏輯 波特率生成
UART內(nèi)核的寄存器描述:
UART內(nèi)核配置頁:
在組件選擇欄中選擇Communication->UART(RS232 series port)配置UART:
?
4.7 JTAG_UART內(nèi)核
JTAG_UART內(nèi)核綜述
JTAG UART內(nèi)核通過Avalon從控制器接口連接到Avalon總線。JTAG UART內(nèi)核包含2個(gè)32位寄存器(數(shù)據(jù)和控制),它們可通過Avalon從控制器端口進(jìn)行存取。Avalon主控制器訪問寄存器來控制內(nèi)核并在JTAG連接上傳輸數(shù)據(jù)。JTAG UART內(nèi)核提供高電平有效的中斷輸出,該輸出在讀FIFO幾乎為滿或?qū)慒IFO幾乎為空時(shí)申請(qǐng)一個(gè)中斷。
有讀寫FIFO也是JTAG UART內(nèi)核與UART內(nèi)核的不同點(diǎn)之一。FIFO可以改善JTAG連接的帶寬。FIFO深度可由用戶設(shè)置。
JTAG-UART配置選項(xiàng)卡:
在組件欄中選擇Communication->JTAG UART,彈出JTAG UART配置界面如下:
?
4.8 lcd控制器
The LCD controller core consists of two user-visible components:
-
Eleven signals that connect to pins on the Optrex 16207 LCD panel—These signals are defined in the Optrex 16207 data sheet.
-
E—Enable (output)
-
RS—Register Select (output)
-
R/W—Read or Write (output)
-
DB0 through DB7—Data Bus (bidirectional)
-
An Avalon Memory-Mapped (Avalon-MM) slave interface that provides access to 4 registers.
使用標(biāo)準(zhǔn)16027字符型液晶顯示器,在display->character lcd,如圖:
?
4.9 System ID內(nèi)核
System ID寄存器描述:
系統(tǒng)ID內(nèi)核提供只讀的Avalon從控制器接口。
使用系統(tǒng)ID內(nèi)核有兩種基本的方法:
-
其一,在下載新的軟件到系統(tǒng)之前驗(yàn)證系統(tǒng)ID。
-
其二,復(fù)位后檢查系統(tǒng)ID。
添加SYSTEM ID:
?
4.10 實(shí)戰(zhàn)訓(xùn)練
完成一個(gè)包含以下外設(shè)的標(biāo)準(zhǔn)硬件平臺(tái):
-
PIO(BUTTON、LED)
-
Sdram
-
片上存儲(chǔ)
-
EPCS
-
定時(shí)器
-
UART內(nèi)核
-
JTAG_UART內(nèi)核
-
lcd控制器
-
System ID內(nèi)核
實(shí)現(xiàn)步驟:
-
建立工程
-
添加NIOS系統(tǒng)(nios選擇E型)
-
添加系統(tǒng)到工程
-
配置管腳綜合
系統(tǒng)結(jié)果:
平臺(tái)結(jié)果:
注意這里有一個(gè)復(fù)位延時(shí)模塊,如下所示:
FPGA 之 SOPC 系列第四篇就到這里結(jié)束,下一篇將帶來第五篇,Nios II軟件使用與程序開發(fā)(一)等相關(guān)內(nèi)容。各位大俠,下篇見!
?
【QQ交流群】
群號(hào):173560979,進(jìn)群暗語:FPGA技術(shù)江湖粉絲。
多年的FPGA企業(yè)開發(fā)經(jīng)驗(yàn),各種通俗易懂的學(xué)習(xí)資料以及學(xué)習(xí)方法,濃厚的交流學(xué)習(xí)氛圍,QQ群目前已有1000多名志同道合的小伙伴,無廣告純凈模式,給技術(shù)交流一片凈土,從初學(xué)小白到行業(yè)精英業(yè)界大佬等,從軍工領(lǐng)域到民用企業(yè)等,從通信、圖像處理到人工智能等各個(gè)方向應(yīng)有盡有。
?
【微信交流群】
現(xiàn)微信交流群已建立08群,人數(shù)已達(dá)數(shù)千人,歡迎關(guān)注“FPGA技術(shù)江湖”微信公眾號(hào),可獲取進(jìn)群方式。
完
后續(xù)會(huì)持續(xù)更新,帶來Vivado、 ISE、Quartus II 、candence等安裝相關(guān)設(shè)計(jì)教程,學(xué)習(xí)資源、項(xiàng)目資源、好文推薦等,希望大俠持續(xù)關(guān)注。
江湖偌大,繼續(xù)闖蕩,愿大俠一切安好,有緣再見!
總結(jié)
以上是生活随笔為你收集整理的FPGA 之 SOPC 系列(四)NIOS II 外围设备--标准系统搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 多选数据类型_【多选题】My
- 下一篇: Mac Grapher(图形软件)