基于FPGA的SOPC設計課件(PPT 139頁).ppt_第1頁
基于FPGA的SOPC設計課件(PPT 139頁).ppt_第2頁
基于FPGA的SOPC設計課件(PPT 139頁).ppt_第3頁
基于FPGA的SOPC設計課件(PPT 139頁).ppt_第4頁
基于FPGA的SOPC設計課件(PPT 139頁).ppt_第5頁
已閱讀5頁,還剩134頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

5、否存在取決于硬件的配置。如果該寄存器不存在,那么讀寄存器將返回未定義的值,寫寄存器無效。”,9,PIO內核寄存器描述 數據寄存器: 讀數據寄存器:返回在輸入引腳上出現的值。如果PIO內核硬件配置為:“Output ports only”,則讀數據寄存器返回未定義的值。 寫數據寄存器:驅動輸出口輸出寫入的值。如果PIO內核硬件配置為:“Input ports only”,則寫數據寄存器無效。如果PIO內核配置在雙向模式下,那么方向寄存器中對應為設為1時,值才輸出。,4.1 并行輸入/輸出內核,10,PIO內核寄存器描述 方向寄存器: 只有PIO工作模式配置為“Bidirectional port

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

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

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

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

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

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

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

13、時鐘頻率):目標FPGA的系列和整個硬件設計都會影響硬件設計可實現的最高時鐘頻率。,25,4.2 SDRAM控制器內核, SDRAM 內 核 配 置 選 項,可直接選擇預定義的SDRAM芯片型號,對話框將自動改變下面兩個選項卡的值來匹配指定配置。,Memory Profile : 用于指定SDRAM的結構。 例如地址和數據線寬度,片選信號的數目和區的數目等。,26,4.2 SDRAM控制器內核,數據寬度 允許值:8、16、32、64 默認值:32 描述:該值確定dq總線(數據)和dqm總線(字節使能)的寬度。具體數值請查閱SDRAM數據手冊。,27,4.2 SDRAM控制器內核,結構設置片選

14、允許值:1、2、4、8 默認值:1 描述:獨立芯片的數目在SDRAM子系統中選擇。通過使用多個片選信號,SDRAM控制器可組合多個SDRAM芯片為一個存儲器子系統。,28,4.2 SDRAM控制器內核,結構設置區 允許值:2、4 默認值:4 描述:區的數目,該值確定連接到SDRAM的ba總線(區地址)寬度。具體數值請查閱SDRAM數據手冊。,29,4.2 SDRAM控制器內核,地址寬度設計行 允許值:11、12、13、14 默認值:12 描述:行地址位的數目。該值確定addr總線的寬度。具體數值請查閱SDRAM數據手冊。,30,4.2 SDRAM控制器內核,地址寬度設計列 允許值:=8,且小于

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

16、緊接的讀或寫操作在相同行和區內連續,SDRAM控制器就自動保留三態橋的控制。 只要在緊接操作中出現間隔,或需要一個刷新操作時,SDRAM控制器才關閉一個行列,因此控制器不能永久阻止訪問其他共用三太橋的器件。,33,4.2 SDRAM控制器內核,包括系統測試臺的功能存儲模塊 允許值:是、否 默認值:是 描述:當打開選項時,SOPC Builder創建SDRAM芯片的功能仿真模型。該默認的存儲器模型加速創建的過程和檢驗使用SDRAM控制器的系統。,34,4.2 SDRAM控制器內核,消息框 顯示SDRAM期望的內存容量,以兆字節,兆位以及可尋址的字數為單位。 將這些期望值與選擇的SDRAM的實際大

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

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

19、,ACTIVE到READ或WRITE延時 允許值:- 默認值:20ns 描述:ACTIVE到READ或WRITE延時。,43,4.2 SDRAM控制器內核,訪問時間(t_ac) 允許值:- 默認值:5.5ns 描述:時鐘邊沿的訪問時間。該值由CAS的等待時間決定。,44,4.2 SDRAM控制器內核,寫恢復時間(t_wr,無自動預充電) 允許值:- 默認值:14ns 描述:如果執行了明確的預充電命令,寫恢復。該SDRAM控制器總是執行明確的預充電命令。,45,4.2 SDRAM控制器內核,Timing選型卡 無論用戶輸入的精確時序值如何,每個參數實現的實際時序將為Avalon時鐘的整數倍。對于

20、每隔一段時間執行一個刷新命令的參數,實際時序將不超出目標值。對于其他所有參數,實際時序將大于或等于目標值。,46,4.2 SDRAM控制器內核,軟件編程 當通過Avalon接口訪問時,SDRAM控制器操作起來像簡單的SRAM存儲器,沒有可配置的軟件設置,沒有存儲器映射的寄存器。處理器訪問SDRAM控制器不需要軟件驅動程序。,47,4.2 SDRAM控制器內核,SDRAM應用,一個帶32位數據總線的128Mbit SDRAM芯片,48,4.2 SDRAM控制器內核,SDRAM應用,兩個帶16位數據總線的64Mbit SDRAM芯片,結果為:一個128M位,數據總線寬度為32位的存儲器,49,4.

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

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

23、置,CFI控制器框圖,Attributes : 用于完成Presets、size 和 Board Info這3個選項的設定。,Presets : 選擇預設好的CFI Flash。 當選定某個芯片型號,該CFI控制器的所有設置都會相應更新。,Size : 地址寬度:Flash地址總線寬度。 數據寬度:Flash數據總線寬度。 大小設置使SOPC Builder為Flash器件分配正確的地址空間。,Board Info : 該設置與NIOSII IDE中集成的Flash Programmer相關。 用于映射CFI控制器目標系統板元件的已知芯片。,55,4.3 CFI控制器內核, CFI 控 制 器

24、 內 核 設 置,CFI控制器框圖,Timing: 用于完成時序設置,包括建立時間、等待周期、保持時間等。,Setup:chipselect有效后,read或write信號有效前所需的時間。 Wait:每次數據傳輸過程中,read或write信號需要保持的時間。 Hold:write信號無效后,chipselect信號無效前所需要的時間。 Units:用于Setup、Wait和Hold值的時間單位,可以是ns、us、ms和時鐘周期。,56,軟件編程 Avalon主控制器可以直接讀Flash芯片。對于Nios II處理器用戶,Altera提供HAL系統庫驅動程序和API函數來支持對Flash存儲

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

26、串行配置器件:可用于存儲程序代碼、非易失性程序數據和FPGA配置數據。 帶Avalon接口的EPCS設備控制器內核(“EPCS控制器”)允許NiosII系統訪問Altera EPCS串行配置器件。 Altera提供集成到NiosII硬件抽象層(HAL)系統庫的驅動程序,允許用戶使用HAL應用程序接口(API)來讀取和編寫EPCS器件。,59,4.4 EPCS控制器內核,EPCS控制器可用于: 在EPCS器件中存儲程序代碼:EPCS控制器自帶Boot-loader代碼,允許用戶在EPCS器件中存儲程序代碼。 存儲非易失性數據:例如串行號,NIC號和其他需要長久儲存的數據。 管理FPGA配置數據:

27、EPCS可存儲FPGA的配置數據,并在上電時自動完成對FPGA的配置。具有網絡接口的嵌入式系統可從網上接收新的FPGA配置數據,并通過EPCS控制器將新的配置數據下載到EPCS串行配置器件中。,60,4.4 EPCS控制器內核,EPCS控制器內核綜述,EPCS控制器結構框圖,Boot-Loader,ROM,EPCS控制器,配置存,儲空間,通用存,儲空間,EPCS配置器件,Avalon,總線,NiosII,CPU,片內外設,Altera FPGA,存儲FPGA配置數據,剩余空間可用于存儲用戶非易失性數據。,1KB的片內存儲器,61,4.4 EPCS控制器內核,EPCS控制器內核綜述: NIOSI

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

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

30、lon接口的郵箱內核 4.12 System ID內核,本章內容,65,4.5 定時器內核,定時器是一個重要的外圍設備。 它可以作為周期性時鐘源; 也可以作為一個定時器,測定時間發生的時間; 還可以對外輸出周期性脈沖,或作為一條監管系統正常運行的watchdog,66,4.5 定時器內核,定時器內核綜述 定時器是掛載在Avanlon總線上的32位定時器,特性如下: 兩種計數模式:單次減1和連續減1計數模式(軟件設置) 定時器到達0時產生中斷請求(IRQ); 可選擇設定為看門狗定時器,計算到達0時復位系統; 可選擇輸出周期性脈沖,在定時器計算到達0時輸出脈沖; 可由軟件啟動、停止或復位定時器;

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

32、處理器可通過寫數據到periodl和periodh寄存器來設定定時器周期。,69,4.5 定時器內核,定時器可進行的基本操作如下所述: 內部計數器計數減到0,立即從周期寄存器開始重新裝載。 處理器可以通過寫snapl或snaph獲取計數器的當前值。 當計數器計數到達0時: 如果IRQ被使能,則產生一個IRQ (可選的)脈沖發生器輸出有效持續一個時鐘周期 (可選的)看門狗輸出復位系統,70,4.5 定時器內核,定時器寄存器描述,EPCS控制器結構框圖,RUN,TO,STOP,START,CONT,ITO,periodl,Periodh,snapl,snaph,注:*表示該位保留,讀取值未定義。,

33、71,4.5 定時器內核-定時器寄存器描述,1.狀態寄存器:,72,2.控制寄存器:,4.5 定時器內核-定時器寄存器描述,73,3.periodl&periodh寄存器:,存儲超時周期的計數值。當以下任意情況發生時,保存在該寄存器中的32位值會裝載到內部計數器中。 對periodl或periodh寄存器進行寫操作; 內部計數器減到0 定時器實際周期是periol和periodh寄存器的值加1,因為內部計數器減到0時,也需要一個時鐘周期。,4.5 定時器內核-定時器寄存器描述,74,4.snapl&snaph寄存器:,可通過對snapl或snaph寄存器的寫操作(寫數據任意)來獲得32位內部計

34、數器的當前值。 當對snapl或snaph執行寫操作時,計數器的當前值會被復制到snapl和snaph中,不管計數器是否正在運行,這個過程都會執行,并且不改變內部計數器的運行狀態。,4.5 定時器內核-定時器寄存器描述,75,中斷操作: 只要內部計數器減到0且控制寄存器的ITO位為1,定時器內核就會產生IRQ。 用戶要用以下的任意一種方式應答IRQ: 清除狀態寄存的TO位,等待下一個超時事件的發生; 通過將控制寄存器的ITO位清零來禁止中斷。,4.5 定時器內核-定時器寄存器描述,76,4.5 定時器內核, 定 時 器 內 核 配 置 選 項,CFI控制器框圖,Initial period:

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

36、 時 器 內 核 配 置 選 項,CFI控制器框圖,Writeable period: 使能:主控制器可通過寫period而改變向下計數周期。 禁能:向下計數周期由Timeout Period確定,且period寄存器不在硬件中存在。,Readable snapshot: 使能:主控制器可讀當前向下計數器的值。 禁能:計數器的狀態僅通過狀態寄存器或IRQ信號來檢測。Snap寄存器不在硬件中存在。,Start/Stop control bits: 使能:主控制可通過寫START和STOP位來啟動和停止定時器。 禁能:定時器連續運行。,79,4.5 定時器內核, 定 時 器 內 核 配 置 選 項

37、,CFI控制器框圖,Timeout pulse: 使能:定時器到0時,timeout_pulse輸出一個時鐘周期的高電平。 禁能:timeout_out信號不存在。,System reset on timeout: 使能: 定時器到0時, resetrequest信號輸出一個時鐘周期的高電平使系統復位。 禁能: resetrequest信號不存在。,80,4.5 定時器內核,軟件編程 Altera為NiosII處理器用戶提供硬件抽象層(HAL)系統庫驅動程序,允許用戶使用HAL應用程序接口(API)函數來訪問定時器內核。 HAL系統庫支持 系統時鐘驅動程序 時間標記驅動程序 軟件文件,81,4

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

39、T:其數據以RS232協議的形式與外界進行交互,83,4.6 UART內核,UART內核綜述 UART內核(通用異步接收器/發送器內核)執行RS-232協議時序,并提供可調整的波特率。 用戶可配置奇偶校驗位、停止位和數據位,以及可選的RTS/CTS流控制信號。 內核提供一個簡單的Avalon從控制器接口,該接口允許Avalon主控制器(例如NiosII處理器)通過讀寫寄存器與UART內核進行通訊。,84,4.6 UART內核,UART內核綜述,UART內核的結構框圖,用戶可見部分為6個寄存器及外引的四根RS-232接口信號線。,RTS 請求發送 CTS 允許發送 TXD 發送數據 RXD 接收

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

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

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

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

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

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

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

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

48、出就可標記一個中斷。,101,4.8 SPI內核,SPI內核綜述,SPI內核框圖,SPI發送邏輯,SPI接收邏輯,102,4.8 SPI內核,SPI內核綜述,SPI內核框圖,主控制器模式端口配置,103,4.8 SPI內核,SPI內核綜述,SPI內核框圖,從控制器模式端口配置,104,4.8 SPI內核,SPI內核的寄存器描述,UART內核寄存器映射,txdat,status,control,保留,slaveselect,rxdata,接收數據寄存器,發送數據寄存器,狀態寄存器,控制寄存器,從控制器選擇寄存器,105,4.8 SPI內核, SPI 配 置 選 項 卡,SPI配置選項卡,Mast

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

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

51、在兩個存儲器之間或外設與存儲器之間頻繁地進行數據存儲操作。這些操作如果通過CPU來進行,會耗費大量的CPU時間。整個操作過程不需要任何的算術邏輯運算,完全不需要CPU的干預。在這種情況下,就可以使用DMA(直接存儲訪問,direct memory access) 對I/O設備的訪問除了有軟件控制的查詢式和中斷式,還有由硬件控制的DMA方式。在DMA數據傳輸方式下,DMA控制器接管了總線的控制權,并以中斷的方式向CPU報告傳送操作的結束。,109,4.9 DMA內核,DMA內核綜述 帶Avalon接口的直接存儲器存取控制器(DMA控制器)替代Avalon主控制器執行儲存器對儲存器或者儲存器與IO

52、設備間的批量數據傳輸。 當DMA控制器執行數據傳輸任務時,主控制器可自由執行其它并行的任務。,110,4.9 DMA內核,DMA內核綜述 DMA控制器將數據從源地址空間傳輸到目的地址空間。 數據源或者目的地可以是Avalon從控制器外設(一個固定地址)或存儲器中的一段地址范圍 DMA控制器具有連續數據流的處理能力,允許固定或可變長度的數據傳輸。 當DMA操作結束時,DMA控制器發出一個中斷請求IRQ; DMA控制器有兩個Avalon主控制器端口(主控制器讀端口和主控制器寫端口)和一個用于控制DMA的Avalon從控制器端口。,111,4.9 DMA內核,DMA內核綜述,DMA控制器結構框圖,1

53、12,4.9 DMA內核,典型的DMA傳輸過程 CPU通過寫控制端口配置DMA控制器用于數據傳輸 DMA控制器向CPU發出HOLD信號請求使用總線; CPU響應DMA控制器,并將總線讓出,DMA控制器獲得總線控制權; DMA控制器讀端口從源地址(可能是存儲器或外設)讀數據,寫端口向目的地址(可能是存儲器或外設)寫數據,讀寫端口間利用FIFO緩存數據。 當傳輸完指定的數據,或數據包結束信號有效時,DMA傳輸結束。傳輸結束時,DMA控制器發出中斷請求。 CPU響應DMA數據傳輸完成事件后,DMA控制器撤銷HOLD信號,歸還總線控制權,數據傳送結束。,113,4.9 DMA內核,DMA寄存器描述,D

54、MA控制器結構框圖,源地址,目的地址,長度,控制,狀態,114,4.9 DMA內核, DMA 配 置 選 項 卡,SPI配置選項卡,Transfer Size: DMA長度寄存器的寬度,范圍為132。它確定了在一次DMA傳輸中可傳輸的最大數據量。,Burst Transactions: 允許突發傳輸:使能該選項可允許DMA操作支持突然傳輸模式的器件。,FIFO Implementation: FIFO的構成: 寄存器 嵌入式存儲器模塊,115,4.9 DMA內核, DMA 配 置 選 項 卡,SPI配置選項卡,高級選項 設計者可定制DMA控制器硬件支持的數據寬度。 禁止不必要的傳輸寬度可減少D

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

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

57、9,互斥內核描述:多處理器環境可使用帶Avalon接口的互斥內核來協調對共享資源的訪問。 互斥內核提供了一個協議,可確保對一個共享資源的互斥占有。 互斥內核提供一個基于硬件的操作,允許多處理器系統中的軟體來決定哪個處理器擁有互斥體。 互斥內核有一個簡單的Avalon從控制器接口,包含2個32位存儲器映射寄存器mutex和reset.,4.10 帶Avalon接口的互斥內核,120,4.10 帶Avalon接口的互斥內核,互斥內核描述及其基本操作,互斥內核描述:互斥內核存儲器映射,當VALUE字段為0 x0000時,互斥體可用,否則互斥體不可用; Mutex寄存器總是可讀的。一個處理器可通過讀取

58、mutex寄存器來確定其當前的狀態。 mutex寄存器只在特定的條件下可寫。 處理器可通過將它的ID寫入OWNER字段和向VALUE字段寫入一個非零值來獲取互斥體。 系統復位后,reset寄存器的RESET位為高電平。,121,4.10帶Avalon接口的互斥內核,互斥內核配置選項 硬件設計者可利用互斥內核的SOPC Builder配置向導來設定內核的硬件特性。配置向導提供了以下設置: Initial Value復位后VALUE字段的初始值。如果Initial Value設置成非零值,還必須設定Initial Owner。 Initial Owner復位后OWNER字段的初始值。當Initia

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

溫馨提示

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

評論

0/150

提交評論