網(wǎng)頁布局的類型有哪些seo公司軟件
本原創(chuàng)教程由深圳市小眼睛科技有限公司創(chuàng)作,版權歸本公司所有,如需轉載,需授權并注明出處
適用于板卡型號:
紫光同創(chuàng)PGL22G開發(fā)平臺(盤古22K)
一:盤古22K開發(fā)板(紫光同創(chuàng)PGL22G開發(fā)平臺)簡介
盤古22K開發(fā)板是基于紫光同創(chuàng)Logos系列PGL22G芯片設計的一款FPGA開發(fā)板,全面實現(xiàn)國產(chǎn)化方案,板載資源豐富,高容量、高帶寬,外圍接口豐富,不僅適用于高校教學,還可以用于實驗項目、項目開發(fā),一板多用,滿足多方位的開發(fā)需求。
二:實驗目的
MES22GP 開發(fā)板上有一片 Micron 的 DDR3(MT41K256M16 TW107:P)內(nèi)存組件,擁有 16bit 位寬的存儲空間(MT41J系列是舊的產(chǎn)品,目前很多型號已經(jīng)停產(chǎn),后續(xù)替代就是MT41K系列。硬件上的差異是MT41K支持1.35V低電壓,同時也兼容1.5V電壓,所以可以用MT41K直接替換相應型號的MT41J芯片)。該DDR3 存儲系統(tǒng)直接連接到了 PGL22G 的 Bank L1 及 Bank L2 上。PGL22G的DDR IP為硬核IP,需選擇正確的IP添加。
本次實驗目的為生成DDR3 IP,實現(xiàn)DDR3的基于AXI4的簡單讀寫控制,了解其工作原理和用戶接口,然后通過在線Debugger工具查看寫入和讀出的數(shù)據(jù)是否一致。
?
三:DDR3控制器簡介
HMIC_H IP 是深圳市紫光同創(chuàng)電子有限公司FPGA 產(chǎn)品中用于實現(xiàn)對SDRAM 讀寫而設計的IP,通過公司Pango Design Suite 套件(后文簡稱PDS)中IP Compiler 工具(后文簡稱IPC)例化生成IP 模塊。
?
HMIC_H IP 系統(tǒng)框圖如下圖所示:
?
HMIC_H IP 包括了DDR Controller、DDR PHY 和 PLL,用戶通過 AXI4 接口實現(xiàn)數(shù)據(jù)的 讀寫,通過 APB 接口可配置 DDR Controller 內(nèi)部寄存器,PLL 用于產(chǎn)生需要的各種時鐘。
AXI4 接口:HMIC_H IP 提供三組 AXI4 Host Port:AXI4 Port0(128bit)、AXI4 Port1(64bit)、
AXI4 Port2(64bit)。用戶通過 HMIC_H IP 界面可以選擇使能這三組 AXI4 Port。三組 AXI4 Host Port 均為標準 AXI4 接口。
APB 接口:HMIC_H IP 提供一個 APB 配置接口,通過該接口,可配置 DDR Controller 內(nèi)部寄存器。HMIC_H IP 初始化完成后使能該接口。
詳細的端口說明請點擊IP配置界面的View Datasheet查看IP手冊。
DDR的IP需要手動添加,操作流程請查閱文件目錄1_Demo_document/工具使用篇的《03_IP核安裝與查看用戶指南》。
?
DDR3 IP例化流程簡述
打開IPC 軟件,進入 IP 選擇界面,如下圖所示,選取 System/DDR/Hard 目錄下的 Logos HMIC_H,然后在右側頁面設置 Instance Name 名稱,并選擇 FPGA 的器件類型。
?
IP 選擇完成后點擊Customize 進入Logos HMIC_H IP 參數(shù)設置界面,如下圖所示,左邊Symbol 為接口框圖,右邊為參數(shù)配置窗口:
?
參數(shù)配置完成后點擊左上角的Generate按鈕,生成 IP,即可生成相應于用戶特定設置的 HMIC_H IP 代碼。生成 IP 的信息報告界面如下圖所示:
?
注?:?IP 自帶生成的.pds 文件和.fdc 文件僅供參考,需要根據(jù)實際單板進行修改。成功生成 IP 后會在生產(chǎn)IP時指定的Pathname 路徑下輸出如下文件:
?
DDR3 IP配置說明
HMIC_H IP 配置分為四個頁面,分別為 Step1: Basic Options,Step2: Memory Options,Step3: Interface Options,Step4: Summary,請務必按照該頁面順序配置。
?Step 1: Basic Options
是 IP 的基本配置頁面,頁面如下圖所示:
?
?
?
Step 2: Memory Options
是Memory 參數(shù)的配置頁面,頁面如下圖所示:
?
?
?
Step 3: Interface Options
是接口參數(shù)的配置頁面,頁面如下圖所示:
?
?
Step 4: Summary
用于打印當前的配置信息,不需要配置參數(shù),頁面如下圖所示:
?
四:?實驗源碼
DDR3 IP配置完成后會生成一個可用于例化的模塊。
DDR3 IP 模塊接口說明
如下圖所示為DDR3 IP的Memory Interface(PHY),不需要我們直接操作。
?
以下所示為外部輸入時鐘,復位,輸出的用戶時鐘axi4 port0/port1/port2以及一些復位或者初始化完成的標志信號(可以通過連接LED燈來直觀顯示,更易觀察)。
?
以下所示為AXI4協(xié)議的讀寫控制端口,也是用戶可以直接操作用于控制DDR3讀寫的端口。
?
AXI4協(xié)議的讀寫控制這里不進行具體講解。
?
?
?DDR3 讀寫測試頂層模塊設計
頂層模塊的輸入輸出端口便是DDR3例化模塊中的Memory Interface(PHY)和一些直連LED燈的用于觀察的標志信號,因為本次實驗通過按鍵來控制開始向DDR3寫入數(shù)據(jù),所以還需要一個輸入按鍵。
?
然后對應DDR3的AXI4讀寫我們單獨用一個模塊來控制,頂層模塊中的例化如下所示。
?
使用按鍵,所以需要一個按鍵消抖模塊,頂層模塊中的例化如下所示。
?
DDR3 AXI4讀寫控制模塊
本次實驗只是一個簡單的讀寫測試實驗,故可以將一些AXI4的信號配置為常量。
?
使用按鍵控制數(shù)據(jù)開始寫入DDR3,通過一個移位寄存器來產(chǎn)生這個寫標志。
?
使用狀態(tài)機來控制寫地址信號,寫數(shù)據(jù)信號,讀地址信號,讀數(shù)據(jù)信號的產(chǎn)生及狀態(tài)的切換和跳轉。
當按鍵按下,寫標志觸發(fā),狀態(tài)機進入寫地址狀態(tài),awvalid_0信號為高電平,當awready_0和awvalid_0同時為高電平時,寫地址被有效寫入,下一個周期awvalid_0為低電平同時狀態(tài)機跳轉到寫數(shù)據(jù)的狀態(tài);
寫數(shù)據(jù)狀態(tài)中,wvalid_0為高電平,當wready_0和wvalid_0同時為高電平時,數(shù)據(jù)開始被寫入,一共寫入5~20總計16個數(shù)據(jù)(從0開始計數(shù)長度便為15)。當寫到最后一個數(shù)據(jù)時wlast_0保持一個周期的高電平。這里我們用一個計數(shù)器來產(chǎn)生寫入數(shù)據(jù),當wready_0和wvalid_0同時為高電平時開始計數(shù)器開始自加,當計數(shù)到15時(最后一個寫入數(shù)據(jù)),下一個周期計數(shù)器清零,狀態(tài)機跳轉至等待寫響應的狀態(tài);
?
?
寫響應的狀態(tài)中,通過一個移位寄存器抓取寫響應有效bvalid_0信號為高電平的時刻,當bvalid_0且bresp_0為2’b00(表示寫響應ok)時觸發(fā)讀開始的標志,狀態(tài)機進入讀地址寫入狀態(tài);
?
讀地址寫入狀態(tài)中,arvalid_0為高電平,當arready_0和arvalid_0同時為高電平時,讀地址被有效寫入(地址與寫數(shù)據(jù)地址一致),下一個周期arvalid_0為低電平同時狀態(tài)機跳轉到讀數(shù)據(jù)的狀態(tài);
讀數(shù)據(jù)狀態(tài)中,當rvalid_0 和 rready_和 rlast_0均為高電平時,狀態(tài)機跳轉至最初的狀態(tài)等待按鍵被再次按下。讀出的數(shù)據(jù)可以通過在線調(diào)試Debugger工具來查看。
?
DDR3 IP的時鐘約束
IP 有 5 個時鐘,分別為 pll_refclk_in、phy_clk、pll_aclk0、pll_aclk1、pll_aclk2、pll_pclk,其中 pll_refclk_in 是輸入時鐘,phy_clk、pll_aclk0、pll_aclk1、pll_aclk2、pll_pclk 都是 PLL 倍頻得到,phy_clk 用作 HMIC_H 硬核的輸入時鐘,pll_aclk0 用做 AXI4 port0 的輸入時鐘,pll_aclk1 用做 AXI4 port1 的輸入時鐘,pll_aclk2 用做 AXI4 port2 的輸入時鐘,pll_pclk 用做APB port的輸入時鐘。phy_clk 是HMIC_H專用時鐘,在IP內(nèi)部使用,不允許外接使用。pll_pclk,pll_aclk_0,pll_aclk_1,pll_aclk_2 四路時鐘供外部邏輯使用,彼此沒有相位關系,都是異步時鐘。
外部輸入時鐘約束如下。
?
Pll產(chǎn)生的時鐘約束如下。
?
五:實驗現(xiàn)象
點擊Debugger按鈕,下載程序,便可通過Debugger工具進行在線調(diào)試,查看具體信號的波形情況。
?
?
?
?
?
?
按下開發(fā)板的按鍵,產(chǎn)生寫觸發(fā)信號,awvalid_0信號為高電平,當awready_0和awvalid_0同時為高電平時,awvalid_0拉低同時進入寫數(shù)據(jù)狀態(tài),wvalid_0拉高,隨后wready_0和wvalid_0同時為高電平時開始寫入數(shù)據(jù)5~20,wlast_0在寫入最后一個數(shù)據(jù)時拉高。一段時間后bvalid_0拉高且bresp_0為2’b00,表示寫入數(shù)據(jù)成功,然后進入讀數(shù)據(jù)狀態(tài)。
?
讀地址寫入狀態(tài)中,arvalid_0為高電平,當arready_0和arvalid_0同時為高電平時,讀地址被有效寫入(地址與寫數(shù)據(jù)地址一致),下一個周期arvalid_0拉低同時狀態(tài)機跳轉到讀數(shù)據(jù)的狀態(tài)。
?
?
?
通過Debugger工具查看DDR3先寫入后讀出的數(shù)據(jù)是一致的,表明DDR3的讀寫測試正常。
同時在燒錄程序后,可以觀察LED燈的亮滅情況來查看DDR的PLL輸出的時鐘是否已經(jīng)穩(wěn)定,DDR PHY復位是否完成和DDR的控制器是否初始化成功。
?
ddr3 axi4 讀寫控制模塊源碼如下:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?