国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

例說FPGA連載41:DDR控制器集成與讀寫測試之DDR2 IP核接口描述

發布時間:2016-10-27 16:13    發布者:rousong1989
例說FPGA連載41DDR控制器集成與讀寫測試之DDR2 IP核接口描述
特權同學,版權所有
配套例程和更多資料下載鏈接:
http://pan.baidu.com/s/1c0nf6Qc
        如圖4.13所示,這是DDR2 IP核與外部接口的功能框圖。
4.13 DDR IP核功能框圖
圖左側為用戶邏輯(User logic),它與DDR2 IP核的接口通常命名為“local_*”;圖右側為FPGA外部的DDR2芯片,它與DDR2 IP核的接口通常命名為“mem_*”。
● DDR2 IP核內部分兩個部分,即圖示的“ALTMEMPHY”和“存儲控制器(Memory Controller)”,正如圖中所示,它們各有分工。存儲控制器產生DDR2芯片實際讀寫操作需要的時序;ALTMEMPHY有兩部分功能,一個功能是對DDR2做自動校正(Aoto-Calibration),另一個功能是實現DDR2所需的物理接口。
● DDR2的自動校正是在初始化階段進行的,此時ALTMEMPHY斷開用戶邏輯和存儲控制器之間的接口,ALTMEMPHY產生存儲控制器所需的DDR2讀寫控制,直到校正完成。在初始化過后,ALTMEMPHY將不再需要控制存儲控制器,而是一直保持用戶邏輯和存儲控制器的連通。
另外,圖中未明確示意,實際上這個DDR2 IP核還包括了一個PLL,用于時鐘的管理。
現在我們來看ddr2_controller模塊例化的接口。這里可以分為三大類,第一類為系統類接口,主要是一些系統或PLL的復位、時鐘等接口;第二類為帶“local_*”的接口,是DDR2 IP核與用戶邏輯間的接口;第三類為帶“mem_*”的接口,是DDR2 IP核與FPGA外部DDR2芯片的接口。
        對于第一類接口,功能描述如表4.1所示。
4.1 DDR2 IP核系統接口列表
信號名
方向
功能描述
global_reset_n
Input
IP核的全局異步復位信號,低電平有效。該信號有效時,將使得ALTMEMPHY(包括PLL)都進入復位狀態。
pll_ref_clk
Input
PLL的輸入參考時鐘信號。
soft_reset_n
Input
IP核的全局異步復位信號,低電平有效。該信號只能復位ALTMEMPHY,而不能復位PLL
aux_half_rate_clk
Output
phy_clk時鐘信號的引出,時鐘頻率與phy_clk一樣,可用于用戶邏輯使用。
aux_full_rate_clk
Output
phy_clk時鐘信號的引出,時鐘頻率是phy_clk的兩倍,可用于用戶邏輯使用。
reset_request_n
Output
復位輸出,用于指示用戶邏輯DDR2 IP核的內部PLL輸出locked還未完成。
phy_clk
Output
ALTMEMPHY產生供用戶邏輯使用的半速率時鐘信號。所有輸入和輸出到ALTMEMPHY的用戶邏輯接口信號,都與此時鐘同步。
reset_phy_clk_n
Output
與phy_clock時鐘域相關的復位信號,低電平有效。可用此時鐘復位所有DDR IP核和用戶邏輯接口相關的信號。
注:方向是相對DDR2 IP核而言的。
        對于第二類帶local_*”的用戶邏輯接口,功能描述如表4.2所示。
4.2 DDR2 IP核本地接口列表
信號名
方向
功能描述
local_address[22:0]
Input
本地邏輯對DDR2 IP核的數據讀出或寫入地址。
local_write_req
Input
本地邏輯對DDR2 IP核的數據寫入請求信號,高電平有效。
local_read_req
Input
本地邏輯對DDR2 IP核的數據讀出請求信號,高電平有效。
local_burstbegin
Input
本地邏輯對DDR2 IP核的數據突發傳輸起始標志信號。多個數據傳輸時,該信號在 local_write_req或local_read_req信號拉高的第一個時鐘周期時保持高電平,用于指示傳輸的起始。
local_wdata[63:0]
Input
本地邏輯寫入到DDR IP核的數據總線信號,每次寫入416bit數據。
local_be[7:0]
Input
讀寫數據字節使能標志信號。Local_be的每個位對應local_wdatalocal_rdata8bit數據是否有效。
local_size[2:0]       
Input
突發傳輸的有效數據數量,即傳輸多少個local_wdatalocal_rdata數據。
local_ready
Ouput
DDR2 IP核輸出的當前讀寫請求已經被接收的指示信號,高電平有效。
local_rdata[63:0]
Output
DDR IP核輸出的本地邏輯讀出數據總線信號,每次讀出416bit數據。
local_rdata_valid
Output
local_rdata數據總線輸出有效信號,高電平有效。
local_refresh_ack
Input
本地邏輯輸入到DDR IP核的刷新請求信號。
local_init_done
Output
ALTMEMPHY完成DDR存儲控制器的自動校準操作,拉高該信號。該信號可以作為用戶邏輯的復位信號。
注:方向是相對DDR2 IP核而言的。
       
第三類是帶mem_*”的DDR2芯片接口,前面已經給出基本的功能描述,這里不再贅述。DDR2的在我們設計中例化的接口映射代碼如下所示。
////////////////////////////////////////////////////
        //DDR2 controller and phy IP core
ddr2_controller                ddr2_controller_inst (
                        .local_address(local_address),
                        .local_write_req(local_write_req),
                        .local_read_req(local_read_req),
                        .local_burstbegin(local_read_req | local_write_req),
                        .local_wdata(local_wdata),
                        .local_be(8'hff),
                        .local_size(3'd1),
                        .global_reset_n(sys_rst_n),
                        .pll_ref_clk(clk_100m),
                        .soft_reset_n(1'b1),
                        .local_ready(local_ready),
                        .local_rdata(local_rdata),
                        .local_rdata_valid(local_rdata_valid),
                        .local_refresh_ack( ),
                        .local_init_done(local_init_done),
                        .reset_phy_clk_n(reset_phy_clk_n),
                        .mem_odt(mem_odt),
                        .mem_cs_n(mem_cs_n),
                        .mem_cke(mem_cke),
                        .mem_addr(mem_addr),
                        .mem_ba(mem_ba),
                        .mem_ras_n(mem_ras_n),
                        .mem_cas_n(mem_cas_n),
                        .mem_we_n(mem_we_n),
                        .mem_dm(mem_dm),
                        .phy_clk(phy_clk),
                        .aux_full_rate_clk( ),
                        .aux_half_rate_clk( ),
                        .reset_request_n( ),
                        .mem_clk(mem_clk),
                        .mem_clk_n(mem_clk_n),
                        .mem_dq(mem_dq),
                        .mem_dqs(mem_dqs)       
                );

本文地址:http://m.4huy16.com/thread-177071-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 電動兩輪車設計生態系統
  • Microchip第22屆中國技術精英年會上海首站開幕
  • Microchip第22屆中國技術精英年會——采訪篇
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表