FPGA學習嵌入式硬件最小系統搭建(二)(RAM,system_id及PIO等)

FPGA學習嵌入式硬件最小系統搭建(二)(RAM,system_id及PIO等)

上篇NIOS處理器設置中未提到時鐘設置,一般在定製個人的NIOS系統之前,需要配置系統時鐘,因爲開發板上的晶振是50MHz,輸入給系統的時鐘就是外部晶振的時鐘頻率,因此這裏設置爲50MHz。有兩種設置方法。

在這裏插入圖片描述

由上圖可知,第一種直接雙擊clk_0,修改系統時鐘,第二種是點擊clock settings,在這裏修改系統時鐘。

在上篇文章中已經詳細描述瞭如何去定製nios ii處理器,本篇就直接從設置ROM和RAM說起,後期在點亮LCD1602液晶時,將會用SDRAM替代ROM。

添加ROM及RAM存儲器

直接搜索ROM,出現On-Chip Memory(RAM or ROM),如下圖所示,因此得知RAM依然在這裏添加。

在這裏插入圖片描述

查找手冊這個IP核支持多種ROM和ROM,這裏選擇單端口ROM,可知可以使用文件進行初始化

在這裏插入圖片描述

這裏比之前的FPGA系統中IP核設置多了一個讀取延遲設置,一般默認即可,由於器件資源豐富,因此這裏選擇單端口ROM和RAM時,默認即可,也可以選擇初始化文件使能。

在這裏插入圖片描述

RAM設置同理,當我們設置好RAM和ROM時,下一步也可以添加JTAG_UART調試器IP,一般在建最小系統時,沒有選擇這一IP核。

在定製NIOS II系統時,系統ID必不可少

查閱手冊如下圖所示,系統ID必不可少,因爲需要爲NIOS II系統提供了唯一的標識符,在連接CPU的時候會進行ID檢測,如果系統ID不正確,則該NIOS II系統軟件無法正常執行工作。

在這裏插入圖片描述

設置項如下,32位系統ID,可以自己設置定製NIOS II系統ID,也可以默認即可。

在這裏插入圖片描述

當把上述IP核添加到定製NIOS II系統中去後,下一步就可以定義我們的外設接口。

PIO核的重要性

這裏我們需要先認識最重要的一個PIO核,PIO核功能如下:

每個PIO內核最多可提供32個I / O端口。 諸如微處理器之類的主機通過讀寫寄存器映射的Avalon-MM接口來控制PIO端口。 在主機的控制下,PIO內核在其輸入上捕獲數據並將數據驅動到其輸出。 當PIO端口直接連接到I / O引腳時,主機可以通過在PIO內核中寫入控制寄存器來使引腳處於三態。 手冊上展示了一個基於處理器的系統,該系統使用多個PIO內核來驅動LED,捕獲片上覆位請求控制邏輯的邊沿並控制片外LCD顯示器。

在這裏插入圖片描述

上圖手冊展示的系統,可以看出PIO可以控制片外LCD液晶顯示,因爲本期學習目標是點亮LCD液晶。

比如我個人定製一個最小系統,專門來驅動8080接口LCD液晶,那麼PIO核起到怎樣的角色呢?

這裏涉及到Avalon-MM總線接口,因此這裏下篇重點介紹LCD1602液晶IP覈編寫規範和最小系統中如何自定義8080接口LCD液晶IP核。

在這裏插入圖片描述

由上圖看出PIO的基本設置中有幾大IO類型,具體含義如下圖所示,不同IO對應下面不同的設置項。

在這裏插入圖片描述

在這裏插入圖片描述

可知當PIO充當數據input時,可開啓Edge capture register(邊沿捕獲)和interrupt(中斷)設置。

在這裏插入圖片描述

在這裏插入圖片描述

【Edge capture register(邊沿捕獲)】

當 Synchronously capture(同步捕獲)打開時, PIO 核包含邊沿捕獲寄存器Edge Capture。用戶必須進一步指定邊沿探測的類型:

Rising Edge(上升沿)

Falling Edge(下降沿)

ANY Edge(上升下降沿)

在輸入端口,當一個指定類型的邊沿出現時,邊沿捕獲寄存器允許核探測並且(可選)產生一箇中斷。

當 Synchronously capture(同步捕獲)關閉時, Edge Capture寄存器不存在。

Enable Bit Clearing for Edge Capture Register(邊沿捕獲寄存器的使能位清除)

打開 Enable bit-clearing for edge capture register (邊沿捕獲寄存器的使能位清除),允許你單獨清除一個或多個邊沿捕獲寄存器中的位。例如,爲了清除邊沿捕獲寄存器的第六位,可以寫01000000到寄存器。

【interrupt(中斷)】

當輸入端口上發生指定事件時,打開“生成IRQ(Generate IRQ)”以斷言IRQ輸出。 且必須進一步指定IRQ事件的原因:

•Level(級別)—每當特定輸入爲高電平且中斷屏蔽寄存器中的該輸入使能了中斷時,內核都會產生IRQ。

•Edge(邊沿)—每當邊沿捕獲寄存器中的特定位爲高電平併爲中斷屏蔽寄存器中的該位使能中斷時,內核就會生成IRQ。

當Generate IRQ關閉時,中斷屏蔽寄存器不存在。

可知當PIO充當數據output時,可開啓output register。

選項啓用單個位設置/清除輸出寄存器(Enable individual bit set/clear output register)選項允許您設置或清除輸出端口的單個位。 啓用此選項後,將實現兩個額外的寄存器(起始寄存器和清除寄存器)。 您可以使用這些寄存器來指定要設置和清除的輸出位。

上述將PIO核設置分成數據是輸入還是輸出來講解配置項。(bidir和inout同理)。

在這裏插入圖片描述

當將這些IP核添加如上圖後,基本上簡易的NIOS II系統就建立完成了,後期學習將會介紹這些接口模塊線路如何連接及如何消除下圖中的錯誤標識。

在這裏插入圖片描述

但下篇文件將會介紹組件庫自帶的LCD1602核及PIO核文件是怎樣編寫的和如何自定義封裝自己的8080接口液晶IP核。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章