基于FPGA的SOPC設(shè)計(jì)課件(PPT 139頁(yè)).ppt_第1頁(yè)
基于FPGA的SOPC設(shè)計(jì)課件(PPT 139頁(yè)).ppt_第2頁(yè)
基于FPGA的SOPC設(shè)計(jì)課件(PPT 139頁(yè)).ppt_第3頁(yè)
基于FPGA的SOPC設(shè)計(jì)課件(PPT 139頁(yè)).ppt_第4頁(yè)
基于FPGA的SOPC設(shè)計(jì)課件(PPT 139頁(yè)).ppt_第5頁(yè)
已閱讀5頁(yè),還剩134頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,基于FPGA的SOPC設(shè)計(jì),信息學(xué)院李貞妮,二一三年五月,2,第四章 Nios II 外圍設(shè)備,3,本章介紹了Nios II處理器常用外圍設(shè)備(Peripherals)內(nèi)核的特點(diǎn)、配置以及軟件編程。 這些外設(shè)都是以IP核的形式提供給用戶的,用戶可以根據(jù)實(shí)際需要把這些IP核集成到Nios II系統(tǒng)中去。 主要介紹: 硬件結(jié)構(gòu); 內(nèi)核的特性和接口; SOPC Builder中各內(nèi)核的配置選項(xiàng); 軟件編程。,主要內(nèi)容,4,本章內(nèi)容,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6

2、 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,5,本章內(nèi)容,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,6,4.1 并行

3、輸入/輸出內(nèi)核,并行輸入/輸出內(nèi)核(PIO內(nèi)核)提供Avalon從控制器端口和通用I/O口間的存儲(chǔ)器映射接口。PIO內(nèi)核提供簡(jiǎn)單的I/O訪問用戶邏輯或外部設(shè)備,例如: 控制LED 讀取開關(guān)量 控制顯示設(shè)備 配置并且與片外設(shè)備通信,說(shuō)明: SOPC Builder中提供了PIO內(nèi)核,可以很容易將PIO內(nèi)核集成到SOPC Builder生成的系統(tǒng)中。 通用I/O端口既連接到片內(nèi)邏輯又連接到外部設(shè)備的FPGA I/O管腳。,7,4.1 并行輸入/輸出內(nèi)核,PIO內(nèi)核簡(jiǎn)介,最多32個(gè)I/O端口,CPU 內(nèi)核,寄存器,Nios II 系統(tǒng),Pio31 Pio30 Pio29 Pio3 Pio2 Pio1

4、 Pio0,Pio7 Pio6 Pio5 Pio4 Pio3 Pio2 Pio1 Pio0,端口數(shù)可設(shè)置,每個(gè)Avalon接口的PIO內(nèi)核可提供32個(gè)I/O端口且端口數(shù)可設(shè)置,用戶可以添加一個(gè)或多個(gè)PIO內(nèi)核。CPU通過(guò)I/O寄存器控制I/O端口的行為。I/O口可以配置為輸入、輸出和三態(tài),還可以用來(lái)檢測(cè)電平事件和邊沿事件。,CPU通過(guò)寄存器控制I/O端口行為,PIO內(nèi)核結(jié)構(gòu)框圖,8,4.1 并行輸入/輸出內(nèi)核,PIO內(nèi)核寄存器描述,注: 該寄存器是否存在取決于硬件的配置。如果該寄存器不存在,那么讀寄存器將返回未定義的值,寫寄存器無(wú)效。 寫任意值到邊沿捕獲寄存器將清除所有位為0。,“ 該寄存器是

5、否存在取決于硬件的配置。如果該寄存器不存在,那么讀寄存器將返回未定義的值,寫寄存器無(wú)效。”,9,PIO內(nèi)核寄存器描述 數(shù)據(jù)寄存器: 讀數(shù)據(jù)寄存器:返回在輸入引腳上出現(xiàn)的值。如果PIO內(nèi)核硬件配置為:“Output ports only”,則讀數(shù)據(jù)寄存器返回未定義的值。 寫數(shù)據(jù)寄存器:驅(qū)動(dòng)輸出口輸出寫入的值。如果PIO內(nèi)核硬件配置為:“Input ports only”,則寫數(shù)據(jù)寄存器無(wú)效。如果PIO內(nèi)核配置在雙向模式下,那么方向寄存器中對(duì)應(yīng)為設(shè)為1時(shí),值才輸出。,4.1 并行輸入/輸出內(nèi)核,10,PIO內(nèi)核寄存器描述 方向寄存器: 只有PIO工作模式配置為“Bidirectional port

6、s”時(shí),方向寄存器才存在。 PIO工作模式在添加PIO內(nèi)核時(shí)指定,且在系統(tǒng)生成后不能改變。 方向寄存器控制每個(gè)PIO口的數(shù)據(jù)方向。當(dāng)方向寄存器中的位n設(shè)為1時(shí),端口n為輸出模式;0時(shí),端口n為輸入模式。 復(fù)位后,方向寄存器的所有位設(shè)置為0,所有的雙向I/O口配置為輸入。,4.1 并行輸入/輸出內(nèi)核,11,PIO內(nèi)核寄存器描述 中斷屏蔽寄存器: 當(dāng)中斷屏蔽寄存器的位設(shè)為1時(shí),使能相對(duì)應(yīng)的PIO輸入口中斷。 中斷操作取決于PIO內(nèi)核的硬件配置,只有配置為輸入口時(shí)才能進(jìn)行中斷操作。 中斷屏蔽寄存器只有在硬件配置為“Generate IRQ”時(shí)才存在。 復(fù)位后,中斷屏蔽寄存器所有位為0,禁止所有PIO

7、口的中斷。,4.1 并行輸入/輸出內(nèi)核,12,PIO內(nèi)核寄存器描述 邊沿捕獲寄存器: 只要在輸入口上檢測(cè)到邊沿事件時(shí),邊沿捕獲寄存器(Edgecapture)中對(duì)應(yīng)位n置1。 Avalon主控制器可讀邊沿捕獲寄存器來(lái)確定邊沿在哪一個(gè)PIO輸入口出現(xiàn)。 寫任意值到邊沿捕獲寄存器將使寄存器所有位清0. 要檢測(cè)的類型在PIO添加時(shí)指定。,4.1 并行輸入/輸出內(nèi)核,13,PIO內(nèi)核寄存器描述 中斷操作: 當(dāng)硬件配置為電平觸發(fā)方式時(shí),只要高電平出現(xiàn)并且中斷使能,就申請(qǐng)一個(gè)中斷。當(dāng)硬件配置為邊沿觸發(fā)方式時(shí),只要捕獲到邊沿事件并且中斷使能時(shí),就申請(qǐng)一個(gè)中斷。 中斷IRQ一直保持有效直到禁止中斷(中斷屏蔽寄

8、存器相應(yīng)位清0)或清邊沿捕獲標(biāo)志(向邊沿捕獲寄存器寫一個(gè)任意值)為止。 每個(gè)PIO核的I/O口共用一個(gè)中斷號(hào)(系統(tǒng)生成時(shí)指定),用戶需要在中斷服務(wù)子程序中通過(guò)中斷掩碼的方式來(lái)查明是哪個(gè)I/O口產(chǎn)生了中斷。,4.1 并行輸入/輸出內(nèi)核,14,4.1 并行輸入/輸出內(nèi)核,雙擊, PIO 內(nèi) 核 配 置 選 項(xiàng),15,4.1 并行輸入/輸出內(nèi)核, PIO 內(nèi) 核 配 置 選 項(xiàng),Basic Settings 選項(xiàng)卡,I/O口寬度:可設(shè)置為132的任何整數(shù)值。,16,4.1 并行輸入/輸出內(nèi)核, PIO 內(nèi) 核 配 置 選 項(xiàng),Basic Settings 選項(xiàng)卡,17,4.1 并行輸入/輸出內(nèi)核,

9、PIO 內(nèi) 核 配 置 選 項(xiàng),Input Options 選項(xiàng)卡,邊沿捕獲寄存器,中斷寄存器,Rising Edge:上升沿 Falling Edge:下降沿 Either Edge: 上升或下降沿,Level:輸入為高電平且中斷使能,則PIO內(nèi)核產(chǎn)生一個(gè)IRQ。 Edge:邊沿捕獲寄存器相應(yīng)位為1且中斷使能,則PIO內(nèi)核產(chǎn)生一個(gè)IRQ。,說(shuō)明:當(dāng)指定類型的邊沿在輸入端口出現(xiàn)時(shí),邊沿捕獲寄存器對(duì)應(yīng)位置1。,說(shuō)明:中斷只有高電平中斷,如果希望低電平時(shí)中斷,則需在該I/O輸入引腳前加一個(gè)“非”門。,18,4.1 并行輸入/輸出內(nèi)核, PIO 內(nèi) 核 配 置 選 項(xiàng),Simulation 選項(xiàng)卡,

10、當(dāng)需要對(duì)外進(jìn)行仿真時(shí),要設(shè)置simulation選項(xiàng)卡。,19,4.1 并行輸入/輸出內(nèi)核,軟件編程,PIO內(nèi)核提供了對(duì)硬件進(jìn)行寄存器級(jí)訪問的文件。,該文件定義了內(nèi)核的寄存器映射并提供硬件設(shè)備訪問宏定義。設(shè)備驅(qū)動(dòng)程序使用該文件中的宏定義訪問硬件。 可通過(guò)閱讀上述文件以熟悉PIO設(shè)備的軟件訪問方法,但不應(yīng)該修改文件。,20,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalo

11、n接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,21,4.2 SDRAM控制器內(nèi)核,SDRAM控制器內(nèi)核概述 SDRAM控制器內(nèi)核提供一個(gè)連接片外SDRAM芯片的Avalon接口,并可以同時(shí)連接多個(gè)SDRAM芯片 通常用于需要大量易失性存儲(chǔ)器且成本要求高的應(yīng)用系統(tǒng)。 SDRAM便宜,但需要實(shí)現(xiàn)刷新操作,行列管理,不同延遲和命令序列等邏輯。 SDRAM控制器內(nèi)核提供了連接一個(gè)或多個(gè)SDRAM芯片的接口,并處理所有SDRAM協(xié)議要求。,22,4.2 SDRAM控制器內(nèi)核,SDRAM控制器內(nèi)核概述 SDRAM控制器內(nèi)核具有不同數(shù)據(jù)寬度(8、16、

12、32或64位)、不同內(nèi)存容量和多片選擇等設(shè)置。 SDRAM控制器可選擇與其他的片外Avalon三態(tài)器件共用地址和數(shù)據(jù)總線,該特性在I/O引腳資源緊張的系統(tǒng)中很有用。 SDRAM芯片必須和Avalon接口一樣以相同的時(shí)鐘驅(qū)動(dòng)。利用片內(nèi)PLL來(lái)調(diào)整SDRAM控制器內(nèi)核與SDRAM芯片之間的時(shí)鐘相位差。,23,4.2 SDRAM控制器內(nèi)核,24,4.2 SDRAM控制器內(nèi)核,SDRAM控制器內(nèi)核概述,PPL(片內(nèi)鎖相環(huán)):通常用于調(diào)整SDRAM控制器內(nèi)核與SDRAM芯片之間的相位差。 Avalon三態(tài)橋:SDRAM控制器可與現(xiàn)有三態(tài)橋共用引腳,這用能減少I/O引腳使用,但將降低性能。 fMAX(最高

13、時(shí)鐘頻率):目標(biāo)FPGA的系列和整個(gè)硬件設(shè)計(jì)都會(huì)影響硬件設(shè)計(jì)可實(shí)現(xiàn)的最高時(shí)鐘頻率。,25,4.2 SDRAM控制器內(nèi)核, SDRAM 內(nèi) 核 配 置 選 項(xiàng),可直接選擇預(yù)定義的SDRAM芯片型號(hào),對(duì)話框?qū)⒆詣?dòng)改變下面兩個(gè)選項(xiàng)卡的值來(lái)匹配指定配置。,Memory Profile : 用于指定SDRAM的結(jié)構(gòu)。 例如地址和數(shù)據(jù)線寬度,片選信號(hào)的數(shù)目和區(qū)的數(shù)目等。,26,4.2 SDRAM控制器內(nèi)核,數(shù)據(jù)寬度 允許值:8、16、32、64 默認(rèn)值:32 描述:該值確定dq總線(數(shù)據(jù))和dqm總線(字節(jié)使能)的寬度。具體數(shù)值請(qǐng)查閱SDRAM數(shù)據(jù)手冊(cè)。,27,4.2 SDRAM控制器內(nèi)核,結(jié)構(gòu)設(shè)置片選

14、允許值:1、2、4、8 默認(rèn)值:1 描述:獨(dú)立芯片的數(shù)目在SDRAM子系統(tǒng)中選擇。通過(guò)使用多個(gè)片選信號(hào),SDRAM控制器可組合多個(gè)SDRAM芯片為一個(gè)存儲(chǔ)器子系統(tǒng)。,28,4.2 SDRAM控制器內(nèi)核,結(jié)構(gòu)設(shè)置區(qū) 允許值:2、4 默認(rèn)值:4 描述:區(qū)的數(shù)目,該值確定連接到SDRAM的ba總線(區(qū)地址)寬度。具體數(shù)值請(qǐng)查閱SDRAM數(shù)據(jù)手冊(cè)。,29,4.2 SDRAM控制器內(nèi)核,地址寬度設(shè)計(jì)行 允許值:11、12、13、14 默認(rèn)值:12 描述:行地址位的數(shù)目。該值確定addr總線的寬度。具體數(shù)值請(qǐng)查閱SDRAM數(shù)據(jù)手冊(cè)。,30,4.2 SDRAM控制器內(nèi)核,地址寬度設(shè)計(jì)列 允許值:=8,且小于

15、行的值 默認(rèn)值:8 描述:列地址位的數(shù)目。例如,SDRAM排列為4096行、512(29)列,所以列的值為9。具體數(shù)值請(qǐng)查閱SDRAM數(shù)據(jù)手冊(cè)。,31,4.2 SDRAM控制器內(nèi)核,通過(guò)三態(tài)橋共用管腳 允許值:是、否 默認(rèn)值:否 描述:當(dāng)設(shè)為No時(shí),所有管腳都專用于SDRAM芯片。當(dāng)設(shè)為Yes時(shí),addr,dq和dqm管腳在系統(tǒng)內(nèi)可與三態(tài)橋共享。,32,4.2 SDRAM控制器內(nèi)核,當(dāng)控制器與其他三態(tài)器件共用引腳時(shí),平均訪問時(shí)間通常增加而帶寬減少。 當(dāng)其他器件訪問三態(tài)橋時(shí),SDRAM要求行開啟和結(jié)束開銷周期。 SDRAM控制器必須在再次授權(quán)訪問之前連續(xù)等待幾個(gè)時(shí)鐘周期。 為了使帶寬最大化,只要

16、緊接的讀或?qū)懖僮髟谙嗤泻蛥^(qū)內(nèi)連續(xù),SDRAM控制器就自動(dòng)保留三態(tài)橋的控制。 只要在緊接操作中出現(xiàn)間隔,或需要一個(gè)刷新操作時(shí),SDRAM控制器才關(guān)閉一個(gè)行列,因此控制器不能永久阻止訪問其他共用三太橋的器件。,33,4.2 SDRAM控制器內(nèi)核,包括系統(tǒng)測(cè)試臺(tái)的功能存儲(chǔ)模塊 允許值:是、否 默認(rèn)值:是 描述:當(dāng)打開選項(xiàng)時(shí),SOPC Builder創(chuàng)建SDRAM芯片的功能仿真模型。該默認(rèn)的存儲(chǔ)器模型加速創(chuàng)建的過(guò)程和檢驗(yàn)使用SDRAM控制器的系統(tǒng)。,34,4.2 SDRAM控制器內(nèi)核,消息框 顯示SDRAM期望的內(nèi)存容量,以兆字節(jié),兆位以及可尋址的字?jǐn)?shù)為單位。 將這些期望值與選擇的SDRAM的實(shí)際大

17、小相比較可以檢驗(yàn)設(shè)置是否正確。,35,4.2 SDRAM控制器內(nèi)核, SDRAM 內(nèi) 核 配 置 選 項(xiàng),Timing : 根據(jù)在SDRAM芯片數(shù)據(jù)手冊(cè)中提供的參數(shù)來(lái)設(shè)置芯片的時(shí)序規(guī)范,36,4.2 SDRAM控制器內(nèi)核,CAS等待時(shí)間 允許值:1、2、3 默認(rèn)值:3 描述:從讀命令到數(shù)據(jù)輸出的等待時(shí)間(以時(shí)鐘周期計(jì)算)。,37,4.2 SDRAM控制器內(nèi)核,初始化刷新周期 允許值:1-8 默認(rèn)值:2 描述:復(fù)位后,該值指定SDRAM控制器將執(zhí)行多少個(gè)刷新周期作為初始化序列的一部分。,38,4.2 SDRAM控制器內(nèi)核,每隔一段時(shí)間執(zhí)行一個(gè)刷新命令 允許值:- 默認(rèn)值:15.625us 描述:

18、該值指定SDRAM控制器多久刷新一次SDRAM。典型的SDRAM每64ms需要4,096刷新命令,通過(guò)每64ms/4,096=15.625us執(zhí)行一個(gè)刷新命令來(lái)符合這個(gè)要求。,39,4.2 SDRAM控制器內(nèi)核,在初始化前、上電后延時(shí) 允許值:- 默認(rèn)值:100us 描述:從穩(wěn)定的時(shí)鐘和電源到SDRAM初始化的延時(shí)。,40,4.2 SDRAM控制器內(nèi)核,刷新命令(t_rfc)的持續(xù)時(shí)間 允許值:- 默認(rèn)值:70ns 描述:自動(dòng)刷新周期。,41,4.2 SDRAM控制器內(nèi)核,預(yù)充電命令(t_rp)的持續(xù)時(shí)間 允許值:- 默認(rèn)值:20ns 描述:預(yù)充電命令周期。,42,4.2 SDRAM控制器內(nèi)核

19、,ACTIVE到READ或WRITE延時(shí) 允許值:- 默認(rèn)值:20ns 描述:ACTIVE到READ或WRITE延時(shí)。,43,4.2 SDRAM控制器內(nèi)核,訪問時(shí)間(t_ac) 允許值:- 默認(rèn)值:5.5ns 描述:時(shí)鐘邊沿的訪問時(shí)間。該值由CAS的等待時(shí)間決定。,44,4.2 SDRAM控制器內(nèi)核,寫恢復(fù)時(shí)間(t_wr,無(wú)自動(dòng)預(yù)充電) 允許值:- 默認(rèn)值:14ns 描述:如果執(zhí)行了明確的預(yù)充電命令,寫恢復(fù)。該SDRAM控制器總是執(zhí)行明確的預(yù)充電命令。,45,4.2 SDRAM控制器內(nèi)核,Timing選型卡 無(wú)論用戶輸入的精確時(shí)序值如何,每個(gè)參數(shù)實(shí)現(xiàn)的實(shí)際時(shí)序?qū)锳valon時(shí)鐘的整數(shù)倍。對(duì)于

20、每隔一段時(shí)間執(zhí)行一個(gè)刷新命令的參數(shù),實(shí)際時(shí)序?qū)⒉怀瞿繕?biāo)值。對(duì)于其他所有參數(shù),實(shí)際時(shí)序?qū)⒋笥诨虻扔谀繕?biāo)值。,46,4.2 SDRAM控制器內(nèi)核,軟件編程 當(dāng)通過(guò)Avalon接口訪問時(shí),SDRAM控制器操作起來(lái)像簡(jiǎn)單的SRAM存儲(chǔ)器,沒有可配置的軟件設(shè)置,沒有存儲(chǔ)器映射的寄存器。處理器訪問SDRAM控制器不需要軟件驅(qū)動(dòng)程序。,47,4.2 SDRAM控制器內(nèi)核,SDRAM應(yīng)用,一個(gè)帶32位數(shù)據(jù)總線的128Mbit SDRAM芯片,48,4.2 SDRAM控制器內(nèi)核,SDRAM應(yīng)用,兩個(gè)帶16位數(shù)據(jù)總線的64Mbit SDRAM芯片,結(jié)果為:一個(gè)128M位,數(shù)據(jù)總線寬度為32位的存儲(chǔ)器,49,4.

21、2 SDRAM控制器內(nèi)核,SDRAM應(yīng)用,兩個(gè)帶32位數(shù)據(jù)總線的128Mbit SDRAM芯片,結(jié)果為:一個(gè)256M位,數(shù)據(jù)總線寬度為32位的存儲(chǔ)器,50,4.2 SDRAM控制器內(nèi)核,SDRAM應(yīng)用,51,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,52,4.3

22、CFI控制器內(nèi)核,CFI控制器內(nèi)核綜述 對(duì)于Nios II處理器,Altera為CFI控制器提供硬件抽象層(HAL)驅(qū)動(dòng)程序。驅(qū)動(dòng)程序提供了遵循CFI接口規(guī)范的Flash存儲(chǔ)器的通用訪問函數(shù)。因此,用戶不需要寫任何代碼就可以訪問遵循CFI接口規(guī)范的Flash器件。 NIOSII開發(fā)套件提供一個(gè)基于NIOSII處理器和CFI控制器的下載程序Flash Programmer,可以用來(lái)將程序下載到任何連接到Altera FPGA的遵循CFI的Flash存儲(chǔ)器中。,53,4.3 CFI控制器內(nèi)核,CFI控制器內(nèi)核綜述,CFI控制器框圖,54,4.3 CFI控制器內(nèi)核, CFI 控 制 器 內(nèi) 核 設(shè)

23、置,CFI控制器框圖,Attributes : 用于完成Presets、size 和 Board Info這3個(gè)選項(xiàng)的設(shè)定。,Presets : 選擇預(yù)設(shè)好的CFI Flash。 當(dāng)選定某個(gè)芯片型號(hào),該CFI控制器的所有設(shè)置都會(huì)相應(yīng)更新。,Size : 地址寬度:Flash地址總線寬度。 數(shù)據(jù)寬度:Flash數(shù)據(jù)總線寬度。 大小設(shè)置使SOPC Builder為Flash器件分配正確的地址空間。,Board Info : 該設(shè)置與NIOSII IDE中集成的Flash Programmer相關(guān)。 用于映射CFI控制器目標(biāo)系統(tǒng)板元件的已知芯片。,55,4.3 CFI控制器內(nèi)核, CFI 控 制 器

24、 內(nèi) 核 設(shè) 置,CFI控制器框圖,Timing: 用于完成時(shí)序設(shè)置,包括建立時(shí)間、等待周期、保持時(shí)間等。,Setup:chipselect有效后,read或write信號(hào)有效前所需的時(shí)間。 Wait:每次數(shù)據(jù)傳輸過(guò)程中,read或write信號(hào)需要保持的時(shí)間。 Hold:write信號(hào)無(wú)效后,chipselect信號(hào)無(wú)效前所需要的時(shí)間。 Units:用于Setup、Wait和Hold值的時(shí)間單位,可以是ns、us、ms和時(shí)鐘周期。,56,軟件編程 Avalon主控制器可以直接讀Flash芯片。對(duì)于Nios II處理器用戶,Altera提供HAL系統(tǒng)庫(kù)驅(qū)動(dòng)程序和API函數(shù)來(lái)支持對(duì)Flash存儲(chǔ)

25、器的擦除和寫操作。 當(dāng)前,Altera提供的CFI控制器驅(qū)動(dòng)程序僅支持AMD和Intel的Flash芯片。,4.3 CFI控制器內(nèi)核,57,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,58,4.4 EPCS控制器內(nèi)核,EPCS控制器內(nèi)核綜述 Altera EPCS

26、串行配置器件:可用于存儲(chǔ)程序代碼、非易失性程序數(shù)據(jù)和FPGA配置數(shù)據(jù)。 帶Avalon接口的EPCS設(shè)備控制器內(nèi)核(“EPCS控制器”)允許NiosII系統(tǒng)訪問Altera EPCS串行配置器件。 Altera提供集成到NiosII硬件抽象層(HAL)系統(tǒng)庫(kù)的驅(qū)動(dòng)程序,允許用戶使用HAL應(yīng)用程序接口(API)來(lái)讀取和編寫EPCS器件。,59,4.4 EPCS控制器內(nèi)核,EPCS控制器可用于: 在EPCS器件中存儲(chǔ)程序代碼:EPCS控制器自帶Boot-loader代碼,允許用戶在EPCS器件中存儲(chǔ)程序代碼。 存儲(chǔ)非易失性數(shù)據(jù):例如串行號(hào),NIC號(hào)和其他需要長(zhǎng)久儲(chǔ)存的數(shù)據(jù)。 管理FPGA配置數(shù)據(jù):

27、EPCS可存儲(chǔ)FPGA的配置數(shù)據(jù),并在上電時(shí)自動(dòng)完成對(duì)FPGA的配置。具有網(wǎng)絡(luò)接口的嵌入式系統(tǒng)可從網(wǎng)上接收新的FPGA配置數(shù)據(jù),并通過(guò)EPCS控制器將新的配置數(shù)據(jù)下載到EPCS串行配置器件中。,60,4.4 EPCS控制器內(nèi)核,EPCS控制器內(nèi)核綜述,EPCS控制器結(jié)構(gòu)框圖,Boot-Loader,ROM,EPCS控制器,配置存,儲(chǔ)空間,通用存,儲(chǔ)空間,EPCS配置器件,Avalon,總線,NiosII,CPU,片內(nèi)外設(shè),Altera FPGA,存儲(chǔ)FPGA配置數(shù)據(jù),剩余空間可用于存儲(chǔ)用戶非易失性數(shù)據(jù)。,1KB的片內(nèi)存儲(chǔ)器,61,4.4 EPCS控制器內(nèi)核,EPCS控制器內(nèi)核綜述: NIOSI

28、I處理器可設(shè)置成從EPCS控制器開始引導(dǎo)。在這種情況下,復(fù)位CPU后首先執(zhí)行引導(dǎo)EPCS控制器的Boot-loader ROM中的代碼,從EPCS通用內(nèi)存區(qū)域復(fù)制數(shù)據(jù)到RAM。啟動(dòng)代碼無(wú)須編寫,由NIOSII IDE自動(dòng)生成。 Altera EPCS配置器件與FPGA上特定的引腳相連,EPCS控制器內(nèi)核在高層SOPC Builder模塊不會(huì)產(chǎn)生I/O口。EPCS控制器內(nèi)核信號(hào)自動(dòng)連接到EPCS器件的引腳上。 每個(gè)FPGA設(shè)計(jì)只能添加一個(gè)EPCS控制器。,62,4.4 EPCS控制器內(nèi)核,軟件編程 Altera提供的HAL Flash設(shè)備驅(qū)動(dòng)程序已經(jīng)完全屏蔽了Flash的硬件訪問細(xì)節(jié),訪問EPC

29、S Flash的軟件編程和訪問CFI Flash的軟件編程完全一樣。 EPCS控制器提供了硬件的底層接口和HAL驅(qū)動(dòng)程序。,63,4.4 EPCS控制器內(nèi)核,軟件編程 定義集成到HAL系統(tǒng)庫(kù)所需的驅(qū)動(dòng)程序的頭文件和源文件。,通過(guò)直接控制EPCS設(shè)備來(lái)進(jìn)行讀寫操作的頭文件和源文件。,64,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Ava

30、lon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,65,4.5 定時(shí)器內(nèi)核,定時(shí)器是一個(gè)重要的外圍設(shè)備。 它可以作為周期性時(shí)鐘源; 也可以作為一個(gè)定時(shí)器,測(cè)定時(shí)間發(fā)生的時(shí)間; 還可以對(duì)外輸出周期性脈沖,或作為一條監(jiān)管系統(tǒng)正常運(yùn)行的watchdog,66,4.5 定時(shí)器內(nèi)核,定時(shí)器內(nèi)核綜述 定時(shí)器是掛載在Avanlon總線上的32位定時(shí)器,特性如下: 兩種計(jì)數(shù)模式:?jiǎn)未螠p1和連續(xù)減1計(jì)數(shù)模式(軟件設(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í)器;

31、可由軟件使能或屏蔽定時(shí)器中斷。,67,4.5 定時(shí)器內(nèi)核,定時(shí)器內(nèi)核綜述,定時(shí)器內(nèi)核結(jié)構(gòu)框圖,Status,Control,Periodh,Periodl,Snaph,Snapl,控制,邏輯,計(jì)數(shù)器,寄存器文件,Timeout pulse,IRQ,Reset,數(shù)據(jù)總線,地址總線,(看門狗),Avanlon,總線從機(jī),接口到內(nèi),核邏輯,提供狀態(tài)信息和控制信息,68,4.5 定時(shí)器內(nèi)核,定時(shí)器可進(jìn)行的基本操作如下所述: Avalon主控制器通過(guò)對(duì)控制寄存器執(zhí)行不同的寫操作來(lái)控制: 啟動(dòng)和停止定時(shí)器 使能/禁能IRQ 指定單次減1計(jì)數(shù)或連續(xù)減1計(jì)數(shù)模式 處理器讀狀態(tài)寄存器獲取當(dāng)前定時(shí)器的運(yùn)行信息。

32、處理器可通過(guò)寫數(shù)據(jù)到periodl和periodh寄存器來(lái)設(shè)定定時(shí)器周期。,69,4.5 定時(shí)器內(nèi)核,定時(shí)器可進(jìn)行的基本操作如下所述: 內(nèi)部計(jì)數(shù)器計(jì)數(shù)減到0,立即從周期寄存器開始重新裝載。 處理器可以通過(guò)寫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),70,4.5 定時(shí)器內(nèi)核,定時(shí)器寄存器描述,EPCS控制器結(jié)構(gòu)框圖,RUN,TO,STOP,START,CONT,ITO,periodl,Periodh,snapl,snaph,注:*表示該位保留,讀取值未定義。,

33、71,4.5 定時(shí)器內(nèi)核-定時(shí)器寄存器描述,1.狀態(tài)寄存器:,72,2.控制寄存器:,4.5 定時(shí)器內(nèi)核-定時(shí)器寄存器描述,73,3.periodl&periodh寄存器:,存儲(chǔ)超時(shí)周期的計(jì)數(shù)值。當(dāng)以下任意情況發(fā)生時(shí),保存在該寄存器中的32位值會(huì)裝載到內(nèi)部計(jì)數(shù)器中。 對(duì)periodl或periodh寄存器進(jìn)行寫操作; 內(nèi)部計(jì)數(shù)器減到0 定時(shí)器實(shí)際周期是periol和periodh寄存器的值加1,因?yàn)閮?nèi)部計(jì)數(shù)器減到0時(shí),也需要一個(gè)時(shí)鐘周期。,4.5 定時(shí)器內(nèi)核-定時(shí)器寄存器描述,74,4.snapl&snaph寄存器:,可通過(guò)對(duì)snapl或snaph寄存器的寫操作(寫數(shù)據(jù)任意)來(lái)獲得32位內(nèi)部計(jì)

34、數(shù)器的當(dāng)前值。 當(dāng)對(duì)snapl或snaph執(zhí)行寫操作時(shí),計(jì)數(shù)器的當(dāng)前值會(huì)被復(fù)制到snapl和snaph中,不管計(jì)數(shù)器是否正在運(yùn)行,這個(gè)過(guò)程都會(huì)執(zhí)行,并且不改變內(nèi)部計(jì)數(shù)器的運(yùn)行狀態(tài)。,4.5 定時(shí)器內(nèi)核-定時(shí)器寄存器描述,75,中斷操作: 只要內(nèi)部計(jì)數(shù)器減到0且控制寄存器的ITO位為1,定時(shí)器內(nèi)核就會(huì)產(chǎn)生IRQ。 用戶要用以下的任意一種方式應(yīng)答IRQ: 清除狀態(tài)寄存的TO位,等待下一個(gè)超時(shí)事件的發(fā)生; 通過(guò)將控制寄存器的ITO位清零來(lái)禁止中斷。,4.5 定時(shí)器內(nèi)核-定時(shí)器寄存器描述,76,4.5 定時(shí)器內(nèi)核, 定 時(shí) 器 內(nèi) 核 配 置 選 項(xiàng),CFI控制器框圖,Initial period:

35、用于預(yù)設(shè)硬件生成后的定時(shí)器周期,即perodl和periodh寄存器的值。如果不用軟件更改的話,那么定時(shí)器將按照這個(gè)周期產(chǎn)生timeout事件。,77,4.5 定時(shí)器內(nèi)核, 定 時(shí) 器 內(nèi) 核 配 置 選 項(xiàng),CFI控制器框圖,Preset Configurations: 可選擇的預(yù)定義的硬件配置。 簡(jiǎn)單周期中斷:用于僅要求周期性IRQ發(fā)生器的系統(tǒng)。固定周期且不能停止定時(shí)器,但可以禁止IRQ。 完整特性:用于產(chǎn)生一個(gè)具有可變周期的完整特性的定時(shí)器,可以在處理器控制下啟動(dòng)和停止該定時(shí)器。 看門狗:用于需要看門狗的定時(shí)器系統(tǒng),以便在系統(tǒng)已經(jīng)停止響應(yīng)的情況下復(fù)位系統(tǒng)。,78,4.5 定時(shí)器內(nèi)核, 定

36、 時(shí) 器 內(nèi) 核 配 置 選 項(xiàng),CFI控制器框圖,Writeable period: 使能:主控制器可通過(guò)寫period而改變向下計(jì)數(shù)周期。 禁能:向下計(jì)數(shù)周期由Timeout Period確定,且period寄存器不在硬件中存在。,Readable snapshot: 使能:主控制器可讀當(dāng)前向下計(jì)數(shù)器的值。 禁能:計(jì)數(shù)器的狀態(tài)僅通過(guò)狀態(tài)寄存器或IRQ信號(hào)來(lái)檢測(cè)。Snap寄存器不在硬件中存在。,Start/Stop control bits: 使能:主控制可通過(guò)寫START和STOP位來(lái)啟動(dòng)和停止定時(shí)器。 禁能:定時(shí)器連續(xù)運(yùn)行。,79,4.5 定時(shí)器內(nèi)核, 定 時(shí) 器 內(nèi) 核 配 置 選 項(xiàng)

37、,CFI控制器框圖,Timeout pulse: 使能:定時(shí)器到0時(shí),timeout_pulse輸出一個(gè)時(shí)鐘周期的高電平。 禁能:timeout_out信號(hào)不存在。,System reset on timeout: 使能: 定時(shí)器到0時(shí), resetrequest信號(hào)輸出一個(gè)時(shí)鐘周期的高電平使系統(tǒng)復(fù)位。 禁能: resetrequest信號(hào)不存在。,80,4.5 定時(shí)器內(nèi)核,軟件編程 Altera為NiosII處理器用戶提供硬件抽象層(HAL)系統(tǒng)庫(kù)驅(qū)動(dòng)程序,允許用戶使用HAL應(yīng)用程序接口(API)函數(shù)來(lái)訪問定時(shí)器內(nèi)核。 HAL系統(tǒng)庫(kù)支持 系統(tǒng)時(shí)鐘驅(qū)動(dòng)程序 時(shí)間標(biāo)記驅(qū)動(dòng)程序 軟件文件,81,4

38、.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,82,4.6 UART內(nèi)核,UART(通用異步接收器/發(fā)送器)是一個(gè)常用的字符型外圍設(shè)備 NIOS II系統(tǒng)可以集成兩種UART內(nèi)核 JTAG-UART:其數(shù)據(jù)通過(guò)JTAG通訊端口與PC機(jī)進(jìn)行交互,一邊用于程序調(diào)試; UAR

39、T:其數(shù)據(jù)以RS232協(xié)議的形式與外界進(jìn)行交互,83,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è)簡(jiǎn)單的Avalon從控制器接口,該接口允許Avalon主控制器(例如NiosII處理器)通過(guò)讀寫寄存器與UART內(nèi)核進(jìn)行通訊。,84,4.6 UART內(nèi)核,UART內(nèi)核綜述,UART內(nèi)核的結(jié)構(gòu)框圖,用戶可見部分為6個(gè)寄存器及外引的四根RS-232接口信號(hào)線。,RTS 請(qǐng)求發(fā)送 CTS 允許發(fā)送 TXD 發(fā)送數(shù)據(jù) RXD 接收

40、數(shù)據(jù),85,4.6 UART內(nèi)核,UART內(nèi)核綜述 RS-232接口 發(fā)送邏輯 接收邏輯 波特率生成,86,4.6 UART內(nèi)核,UART內(nèi)核綜述 RS-232接口: UART內(nèi)核執(zhí)行RS232異步發(fā)送和接收邏輯。UART內(nèi)核通過(guò)TXD和RXD端口發(fā)送和接收串行數(shù)據(jù)。 大部分Altera FPGA系列上的I/O引腳不遵循RS232電壓電平規(guī)范,如果通過(guò)RS232連接器的信號(hào)直接與FPGA相連,可能會(huì)損害器件。 解決辦法:在FPGA I/O管腳和外部的RS232連接器之間加入一個(gè)外部的電壓轉(zhuǎn)換緩沖器,例如Maxim MAX 3237.,87,4.6 UART內(nèi)核,UART內(nèi)核綜述 2.發(fā)送邏輯:

41、 UART發(fā)送器包括7/8/9位發(fā)送數(shù)據(jù)寄存器(Txdata)和相應(yīng)的7/8/9位發(fā)送移位寄存器。 Avalon主控制器通過(guò)Avalon從控制器端口寫發(fā)送數(shù)據(jù)寄存器。 在當(dāng)前不進(jìn)行串行移位操作時(shí),發(fā)送移位寄存器自動(dòng)從發(fā)送數(shù)據(jù)寄存器裝入數(shù)據(jù)。 發(fā)送移位寄存器直接連接到TXD輸出。數(shù)據(jù)最低有效位先從TXD移出。,88,4.6 UART內(nèi)核,UART內(nèi)核綜述 2.發(fā)送邏輯: 發(fā)送數(shù)據(jù)寄存器和發(fā)送移位寄存器提供雙重緩沖。 主控制器可以在前一個(gè)字符正在移動(dòng)時(shí)將新數(shù)值寫入發(fā)送數(shù)據(jù)寄存器,并可通過(guò)讀出狀態(tài)寄存器的TRDY位,發(fā)送移位寄存器的空TMT位和發(fā)送溢出錯(cuò)誤TOE位監(jiān)視發(fā)送器的狀態(tài)。 發(fā)送邏輯根據(jù)RS

42、232規(guī)范在串行TXD數(shù)據(jù)流中自動(dòng)插入數(shù)量正確的起始位,校驗(yàn)位和停止位。,89,4.6 UART內(nèi)核,UART內(nèi)核綜述 3. 接收邏輯: UART接收器包括7/8/9位接收數(shù)據(jù)寄存器(Rxdata)和相應(yīng)的7/8/9位接收移位寄存器。 Avalon主控制器通過(guò)Avalon從控制器端口讀接收數(shù)據(jù)寄存器。 每當(dāng)新字符完全接收后,接收數(shù)據(jù)寄存器自動(dòng)從接收移位寄存器裝入數(shù)據(jù)。 接收移位寄存器和接收數(shù)據(jù)寄存器提供雙重緩沖。,90,4.6 UART內(nèi)核,UART內(nèi)核綜述 4. 波特率生成: UART內(nèi)核的內(nèi)部波特率時(shí)鐘來(lái)源于Avalon時(shí)鐘輸入。 內(nèi)部波特率時(shí)鐘通過(guò)時(shí)鐘分頻器生成。,91,4.6 UART

43、內(nèi)核,UART內(nèi)核的寄存器描述,UART內(nèi)核寄存器映射,發(fā)送數(shù)據(jù)(txdata),接收數(shù)據(jù) (rxdata),狀態(tài)(status),控制(control),除數(shù)(divisor) ,數(shù)據(jù)包結(jié)束符 (endopacket) ,92,4.6 UART內(nèi)核, UART 內(nèi) 核 配 置 頁(yè),Baud Rate:波特率設(shè)置 確定復(fù)位后的默認(rèn)波特率。,數(shù)據(jù)位設(shè)置 數(shù)據(jù)位:該設(shè)置確定發(fā)送寄存器,接收寄存器和數(shù)據(jù)包結(jié)束符寄存器的寬度; 停止位:該設(shè)置確定內(nèi)核在每個(gè)字符后發(fā)送1個(gè)還是2個(gè)停止位。 奇偶校驗(yàn):確定UART是否發(fā)送帶奇偶校驗(yàn)的字符。,流控制 UART包含相應(yīng)的硬件。 基于這些硬件,Avalon主控制

44、器可檢測(cè)CTS和發(fā)送RTS流控制信號(hào)。,流數(shù)據(jù)控制 允許Avalon主控制器當(dāng)且僅當(dāng)UART內(nèi)核可接收新字符時(shí)寫數(shù)據(jù),UART內(nèi)核有可用數(shù)據(jù)時(shí)讀數(shù)據(jù)。,93,4.6 UART內(nèi)核,軟件編程 HAL系統(tǒng)支持 驅(qū)動(dòng)程序選項(xiàng) ioctl()操作 軟件文件,94,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12

45、System ID內(nèi)核,本章內(nèi)容,95,4.7 JTAG_UART內(nèi)核,JTAG_UART內(nèi)核綜述 帶Avalon接口的JTAG UART設(shè)備實(shí)現(xiàn)PC和NIOSII系統(tǒng)間的串行通信。 與UART不同之處:JTAG UART是通過(guò)JTAG接口來(lái)傳輸數(shù)據(jù)的。 JTAG UART內(nèi)核通過(guò)Avalon從控制器接口連接到Avalon總線。JTAG UART內(nèi)核包含2個(gè)32位寄存器(數(shù)據(jù)和控制),它們可通過(guò)Avalon從控制器端口進(jìn)行存取。 Avalon主控制器訪問寄存器來(lái)控制內(nèi)核并在JTAG連接上傳輸數(shù)據(jù)。JTAG UART內(nèi)核提供高電平有效的中斷輸出,該輸出在讀FIFO幾乎為滿或?qū)慒IFO幾乎為空時(shí)申

46、請(qǐng)一個(gè)中斷。 有讀寫FIFO也是JTAG UART內(nèi)核與UART內(nèi)核的不同點(diǎn)之一。FIFO可以改善JTAG連接的帶寬。FIFO深度可由用戶設(shè)置。,96,4.7 JTAG_UART內(nèi)核,JTAG_UART內(nèi)核綜述,UART內(nèi)核寄存器映射,97,4.7 JTAG_UART內(nèi)核,JTAG_UART的寄存器描述,UART內(nèi)核寄存器映射,數(shù)據(jù),控制,98,4.7 JTAG_UART內(nèi)核, JTAG- UART 配 置 選 項(xiàng) 卡,JATG_UART配置選項(xiàng)卡,Write FIFO: 寫FIFO設(shè)置,Read FIFO: 讀FIFO設(shè)置,99,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器

47、內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,100,4.8 SPI內(nèi)核,SPI內(nèi)核綜述 SPI:嵌入式系統(tǒng)常用的標(biāo)準(zhǔn)串行接口。 SPI內(nèi)核可執(zhí)行主控制器或從控制器協(xié)議。 當(dāng)配置為主控制器時(shí),SPI內(nèi)核可控制多達(dá)16個(gè)獨(dú)立的SPI從控制器。接收和發(fā)送寄存器的寬度在116位之間配置。 SPI內(nèi)核提供一個(gè)中斷輸出,只要傳輸結(jié)束,該輸

48、出就可標(biāo)記一個(gè)中斷。,101,4.8 SPI內(nèi)核,SPI內(nèi)核綜述,SPI內(nèi)核框圖,SPI發(fā)送邏輯,SPI接收邏輯,102,4.8 SPI內(nèi)核,SPI內(nèi)核綜述,SPI內(nèi)核框圖,主控制器模式端口配置,103,4.8 SPI內(nèi)核,SPI內(nèi)核綜述,SPI內(nèi)核框圖,從控制器模式端口配置,104,4.8 SPI內(nèi)核,SPI內(nèi)核的寄存器描述,UART內(nèi)核寄存器映射,txdat,status,control,保留,slaveselect,rxdata,接收數(shù)據(jù)寄存器,發(fā)送數(shù)據(jù)寄存器,狀態(tài)寄存器,控制寄存器,從控制器選擇寄存器,105,4.8 SPI內(nèi)核, SPI 配 置 選 項(xiàng) 卡,SPI配置選項(xiàng)卡,Mast

49、er&Slave: 主控制器/從控制器設(shè)置,Generate Select Signals: 通用選擇信號(hào) 指定SPI控制器將連接的從控制器數(shù)量。(116),SPI Clock Rate: SPI時(shí)鐘率 確定在主控制器和從控制器之間的SCLK信號(hào)。,Specify Delay: 指定延時(shí),Data Register: 數(shù)據(jù)寄存器設(shè)置:影響 SPI內(nèi)核中數(shù)據(jù)寄存器的大小和操作。,Timing: 時(shí)序設(shè)置 時(shí)鐘極性:當(dāng)時(shí)鐘極性為0時(shí),SCLK的空閑狀態(tài)為低電平 時(shí)鐘相位:當(dāng)時(shí)鐘相位為0時(shí),在SCLK的上升沿鎖存數(shù)據(jù),在SCLK的下降沿輸出數(shù)據(jù)。,Waveforms: 波形顯示,106,4.8 SP

50、I內(nèi)核,軟件編程 Altera提供一個(gè)訪問SPI的函數(shù)alt_avalon_spi_command(),該函數(shù)為配置生成主控制器的SPI內(nèi)核提供通用訪問。,107,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,108,4.9 DMA內(nèi)核,DMA綜述 在實(shí)際應(yīng)用中,需要

51、在兩個(gè)存儲(chǔ)器之間或外設(shè)與存儲(chǔ)器之間頻繁地進(jìn)行數(shù)據(jù)存儲(chǔ)操作。這些操作如果通過(guò)CPU來(lái)進(jìn)行,會(huì)耗費(fèi)大量的CPU時(shí)間。整個(gè)操作過(guò)程不需要任何的算術(shù)邏輯運(yùn)算,完全不需要CPU的干預(yù)。在這種情況下,就可以使用DMA(直接存儲(chǔ)訪問,direct memory access) 對(duì)I/O設(shè)備的訪問除了有軟件控制的查詢式和中斷式,還有由硬件控制的DMA方式。在DMA數(shù)據(jù)傳輸方式下,DMA控制器接管了總線的控制權(quán),并以中斷的方式向CPU報(bào)告?zhèn)魉筒僮鞯慕Y(jié)束。,109,4.9 DMA內(nèi)核,DMA內(nèi)核綜述 帶Avalon接口的直接存儲(chǔ)器存取控制器(DMA控制器)替代Avalon主控制器執(zhí)行儲(chǔ)存器對(duì)儲(chǔ)存器或者儲(chǔ)存器與IO

52、設(shè)備間的批量數(shù)據(jù)傳輸。 當(dāng)DMA控制器執(zhí)行數(shù)據(jù)傳輸任務(wù)時(shí),主控制器可自由執(zhí)行其它并行的任務(wù)。,110,4.9 DMA內(nèi)核,DMA內(nèi)核綜述 DMA控制器將數(shù)據(jù)從源地址空間傳輸?shù)侥康牡刂房臻g。 數(shù)據(jù)源或者目的地可以是Avalon從控制器外設(shè)(一個(gè)固定地址)或存儲(chǔ)器中的一段地址范圍 DMA控制器具有連續(xù)數(shù)據(jù)流的處理能力,允許固定或可變長(zhǎng)度的數(shù)據(jù)傳輸。 當(dāng)DMA操作結(jié)束時(shí),DMA控制器發(fā)出一個(gè)中斷請(qǐng)求IRQ; DMA控制器有兩個(gè)Avalon主控制器端口(主控制器讀端口和主控制器寫端口)和一個(gè)用于控制DMA的Avalon從控制器端口。,111,4.9 DMA內(nèi)核,DMA內(nèi)核綜述,DMA控制器結(jié)構(gòu)框圖,1

53、12,4.9 DMA內(nèi)核,典型的DMA傳輸過(guò)程 CPU通過(guò)寫控制端口配置DMA控制器用于數(shù)據(jù)傳輸 DMA控制器向CPU發(fā)出HOLD信號(hào)請(qǐng)求使用總線; CPU響應(yīng)DMA控制器,并將總線讓出,DMA控制器獲得總線控制權(quán); DMA控制器讀端口從源地址(可能是存儲(chǔ)器或外設(shè))讀數(shù)據(jù),寫端口向目的地址(可能是存儲(chǔ)器或外設(shè))寫數(shù)據(jù),讀寫端口間利用FIFO緩存數(shù)據(jù)。 當(dāng)傳輸完指定的數(shù)據(jù),或數(shù)據(jù)包結(jié)束信號(hào)有效時(shí),DMA傳輸結(jié)束。傳輸結(jié)束時(shí),DMA控制器發(fā)出中斷請(qǐng)求。 CPU響應(yīng)DMA數(shù)據(jù)傳輸完成事件后,DMA控制器撤銷HOLD信號(hào),歸還總線控制權(quán),數(shù)據(jù)傳送結(jié)束。,113,4.9 DMA內(nèi)核,DMA寄存器描述,D

54、MA控制器結(jié)構(gòu)框圖,源地址,目的地址,長(zhǎng)度,控制,狀態(tài),114,4.9 DMA內(nèi)核, DMA 配 置 選 項(xiàng) 卡,SPI配置選項(xiàng)卡,Transfer Size: DMA長(zhǎng)度寄存器的寬度,范圍為132。它確定了在一次DMA傳輸中可傳輸?shù)淖畲髷?shù)據(jù)量。,Burst Transactions: 允許突發(fā)傳輸:使能該選項(xiàng)可允許DMA操作支持突然傳輸模式的器件。,FIFO Implementation: FIFO的構(gòu)成: 寄存器 嵌入式存儲(chǔ)器模塊,115,4.9 DMA內(nèi)核, DMA 配 置 選 項(xiàng) 卡,SPI配置選項(xiàng)卡,高級(jí)選項(xiàng) 設(shè)計(jì)者可定制DMA控制器硬件支持的數(shù)據(jù)寬度。 禁止不必要的傳輸寬度可減少D

55、MA控制器內(nèi)核所消耗的片內(nèi)邏輯資源數(shù)量。,116,4.9 DMA內(nèi)核,軟件編程 ioctl()操作:用戶可通過(guò)ioctl()來(lái)控制DMA控制器的硬件相關(guān)部分。HAL層中定義了2個(gè)ioctl函數(shù)分別用于輔助接收通道驅(qū)動(dòng)程序和輔助發(fā)送通道驅(qū)動(dòng)程序:alt_dma_rxchan_ioctl()和alt_dma_txchan_ioctl(). 軟件文件:DMA控制器還包括下列文件 altera_avalon_dma_regs.h定義DMA內(nèi)核的寄存器映射,提供底層硬件訪問宏定義。 altera_avalon_dma.h,altera_avalon_dma.c實(shí)現(xiàn)HAL系統(tǒng)庫(kù)的DMA控制器設(shè)備驅(qū)動(dòng)程序。

56、,117,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器內(nèi)核 4.5 定時(shí)器內(nèi)核 4.6 UART內(nèi)核 4.7 JTAG_UART內(nèi)核 4.8 SPI內(nèi)核 4.9 DMA內(nèi)核 4.10 帶Avalon接口的互斥內(nèi)核 4.11 帶Avalon接口的郵箱內(nèi)核 4.12 System ID內(nèi)核,本章內(nèi)容,118,NIOSII開發(fā)支持多處理器,可以將多個(gè)處理器集成到一個(gè)FPGA中,從而形成多處理器系統(tǒng)。 SOPC Builder提供了支持多處理器的外設(shè)互斥核和郵箱內(nèi)核。,4.10 帶Avalon接口的互斥內(nèi)核,11

57、9,互斥內(nèi)核描述:多處理器環(huán)境可使用帶Avalon接口的互斥內(nèi)核來(lái)協(xié)調(diào)對(duì)共享資源的訪問。 互斥內(nèi)核提供了一個(gè)協(xié)議,可確保對(duì)一個(gè)共享資源的互斥占有。 互斥內(nèi)核提供一個(gè)基于硬件的操作,允許多處理器系統(tǒng)中的軟體來(lái)決定哪個(gè)處理器擁有互斥體。 互斥內(nèi)核有一個(gè)簡(jiǎn)單的Avalon從控制器接口,包含2個(gè)32位存儲(chǔ)器映射寄存器mutex和reset.,4.10 帶Avalon接口的互斥內(nèi)核,120,4.10 帶Avalon接口的互斥內(nèi)核,互斥內(nèi)核描述及其基本操作,互斥內(nèi)核描述:互斥內(nèi)核存儲(chǔ)器映射,當(dāng)VALUE字段為0 x0000時(shí),互斥體可用,否則互斥體不可用; Mutex寄存器總是可讀的。一個(gè)處理器可通過(guò)讀取

58、mutex寄存器來(lái)確定其當(dāng)前的狀態(tài)。 mutex寄存器只在特定的條件下可寫。 處理器可通過(guò)將它的ID寫入OWNER字段和向VALUE字段寫入一個(gè)非零值來(lái)獲取互斥體。 系統(tǒng)復(fù)位后,reset寄存器的RESET位為高電平。,121,4.10帶Avalon接口的互斥內(nèi)核,互斥內(nèi)核配置選項(xiàng) 硬件設(shè)計(jì)者可利用互斥內(nèi)核的SOPC Builder配置向?qū)?lái)設(shè)定內(nèi)核的硬件特性。配置向?qū)峁┝艘韵略O(shè)置: Initial Value復(fù)位后VALUE字段的初始值。如果Initial Value設(shè)置成非零值,還必須設(shè)定Initial Owner。 Initial Owner復(fù)位后OWNER字段的初始值。當(dāng)Initia

59、l Owner被設(shè)定時(shí),此時(shí)的互斥體擁有者必須在互斥體被其它擁有者占用之前將互斥體釋放。,122,4.10帶Avalon接口的互斥內(nèi)核,軟件編程 對(duì)于Nios處理器用戶,Altera提供了可用來(lái)訪問互斥內(nèi)核硬件的驅(qū)動(dòng)程序,利用驅(qū)動(dòng)程序可以直接對(duì)低層的硬件進(jìn)行操作?;コ鈨?nèi)核不能通過(guò)HAL API或ANSIC標(biāo)準(zhǔn)庫(kù)來(lái)訪問。在Nios處理器系統(tǒng)中,處理器通過(guò)將它的cpuid控制寄存器的值寫入mutex寄存器的OWNER字段來(lái)鎖定互斥體。 Altera為互斥內(nèi)核提供下列驅(qū)動(dòng)程序文件: altera_avalon_mutex_regs.h altera_avalon_mutex.h altera_avalon_mutex.c,123,4.10帶Avalon接口的互斥內(nèi)核,軟件編程,硬件互斥體函數(shù),124,4.1 并行輸入/輸出(PIO)內(nèi)核 4.2 SDRAM控制器內(nèi)核 4.3 CFI(通用Flash)控制器內(nèi)核 4.4 EPCS控制器

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論