用于ddr控制器的訪問控制方法、裝置及電路的制作方法
【專利摘要】本發(fā)明提供了一種用于DDR控制器的訪問控制方法、裝置及電路,該訪問控制方法包括:根據(jù)訪問請求譯碼生成DDR指令并緩存,DDR指令不攜帶時延參數(shù);根據(jù)DDR規(guī)范,查找與DDR指令對應(yīng)的精確時延,將精確時延添加到DDR指令中,生成訪問請求對應(yīng)的DDR控制指令。通過本發(fā)明的實施,將用戶請求譯碼成對應(yīng)的不帶延時的DDR Command,根據(jù)DDR3規(guī)范,將精確時延加入不帶時延的DDR Command中,生成DDR控制指令,使得訪問請求的處理不受DDR Command間隔約束,實現(xiàn)了模塊解耦控制,控制算法相對簡單,大大降低了資源占用,減少訪問時延,優(yōu)化IP時序,提高帶寬利用率。
【專利說明】
用于DDR控制器的訪問控制方法、裝置及電路
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及DDR控制器領(lǐng)域,尤其設(shè)及一種用于DDR控制器的訪問控制方法、裝置 及電路。
【背景技術(shù)】
[0002] 抓R(抓R SDRAM,double data rate synchronous dynamic random access memory,雙倍數(shù)據(jù)速率同步動態(tài)隨機存取存儲器)控制器主要用于對DDR(DDR/DDR2/DDR3) 的控制,是FPGA常用的IP之一。
[0003] 根據(jù)DDR規(guī)范,孤R的控制采取先發(fā)指令,延時相應(yīng)指令的時間,最后收發(fā)數(shù)據(jù)的模 式,現(xiàn)有DDR控制器包括用戶接口,rank時序控制,bank時序控制,col時序控制,數(shù)據(jù)發(fā)送模 塊,數(shù)據(jù)接收模塊,數(shù)據(jù)錯誤校驗控制等,各個模塊高度禪合,彼此調(diào)度極其復(fù)雜,占用了 FPGA大量的資源,較大的延時和較低的帶寬利用率等。
[0004] 因此,本領(lǐng)域技術(shù)人員亟待提供一種用于DDR控制器的訪問控制方法,W解決現(xiàn)有 DDR控制器各功能模塊高度禪合的問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供了一種用于DDR控制器的訪問控制方法、裝置及電路,W解決現(xiàn)有DDR 控制器各功能模塊高度禪合的問題。
[0006] 本發(fā)明提供了一種用于DDR控制器的訪問控制方法,其包括:
[0007] 根據(jù)訪問請求譯碼生成DDR指令并緩存,孤R指令不攜帶時延參數(shù);
[000引根據(jù)DDR規(guī)范,查找與DDR指令對應(yīng)的精確時延,將精確時延添加到DDR指令中,生 成訪問請求對應(yīng)的DDR控制指令。
[0009] 進一步的,根據(jù)訪問請求譯碼生成DDR指令并緩存包括:將訪問請求譯碼為對應(yīng)的 孤R操作,將DDR操作分割為無縫DDR指令,緩存無縫DDR指令。
[0010] 進一步的,根據(jù)訪問請求譯碼生成DDR指令并緩存,在將訪問請求譯碼為對應(yīng)的 DDR操作之后,還包括:為DDR操作插入刷新操作。
[0011] 進一步的,根據(jù)訪問請求譯碼生成孤R指令并緩存,在緩存無縫DDR指令之后,還包 括:更新緩存狀態(tài)。
[001 ^ 進一步的,查找與DDR指令對應(yīng)的精確時延包括:獲取孤R指令的指令狀態(tài),根據(jù)指 令狀態(tài)查找對應(yīng)的精確時延。
[OOU]本發(fā)明提供了一種用于DDR控制器的訪問控制裝置,其包括:
[0014]譯碼模塊,用于根據(jù)訪問請求譯碼生成DDR指令并緩存,孤R指令不攜帶時延參數(shù); [001引控制模塊,用于根據(jù)DDR規(guī)范,查找與孤R指令對應(yīng)的精確時延,將精確時延添加到 DDR指令中,生成訪問請求對應(yīng)的DDR控制指令。
[0016]進一步的,譯碼模塊用于將訪問請求譯碼為對應(yīng)的DDR操作,將DDR操作分割為無 縫DDR指令,緩存無縫DDR指令。
[0017]進一步的,譯碼模塊在將訪問請求譯碼為對應(yīng)的DDR操作之后,還用于為DDR操作 插入刷新操作。
[001引進一步的,譯碼模塊在緩存無縫DDR指令之后,還用于更新緩存狀態(tài)。
[0019] 進一步的,控制模塊用于獲取DDR指令的指令狀態(tài),根據(jù)指令狀態(tài)查找對應(yīng)的精確 時延。
[0020] 本發(fā)明提供了一種用于孤R控制器的訪問控制電路,其包括:
[0021] Dcq-wrapper電路接收訪問請求,將訪問請求譯碼生成DDR指令并緩存,孤R指令不 攜帶時延參數(shù);
[0022] Dcq-cmd電路于根據(jù)DDR規(guī)范,查找與DDR指令對應(yīng)的精確時延,將精確時延添加到 DDR指令中,生成訪問請求對應(yīng)的DDR控制指令。
[0023] 進一步的,Dcq-wrapper包括dcd-bm電路和dcd-sm電路,dcd-bm電路將訪問請求譯 碼為對應(yīng)的DDR操作,dcd-sm電路包括解碼狀態(tài)機,解碼狀態(tài)機將DDR操作分割為無縫DDR指 令,緩存無縫DDR指令至先進先出隊列。
[0024] 進一步的,dcd-bm電路在將訪問請求譯碼為對應(yīng)的DDR操作之后,為DDR操作插入 刷新操作。
[0025] 進一步的,解碼狀態(tài)機在緩存無縫DDR指令之后,還用于更新緩存狀態(tài)。
[0026] 進一步的,Dcq-cmd電路獲取DDR指令的指令狀態(tài),根據(jù)指令狀態(tài)查找對應(yīng)的精確 時延。
[0027] 對應(yīng)的,本發(fā)明提供了一種DDR控制器,其包括本發(fā)明提供的訪問控制電路。
[0028] 本發(fā)明的有益效果:
[0029] 本發(fā)明提供了一種訪問控制電路,將用戶請求譯碼成對應(yīng)的DDR Command,運些 孤R Command之間不帶延時,根據(jù)DDR3規(guī)范,將精確時延加入不帶時延的孤R Command中,生 成DDR控制指令,使得訪問請求的處理不受DDR Command間隔約束,實現(xiàn)了模塊解禪控制,控 審隱法相對簡單,大大降低了資源占用,減少訪問時延,優(yōu)化IP時序,提高帶寬利用率。
【附圖說明】
[0030] 圖1為本發(fā)明第一實施例提供的訪問控制裝置的結(jié)構(gòu)示意圖;
[0031] 圖2為本發(fā)明第二實施例提供的訪問控制方法的流程圖;
[0032] 圖3為本發(fā)明第Ξ實施例中化q-wrapper的結(jié)構(gòu)示意圖;
[0033] 圖4為本發(fā)明第Ξ實施例中DDR控制器的結(jié)構(gòu)示意圖;
[0034] 圖5為本發(fā)明第Ξ實施例中指令狀態(tài)機的狀態(tài)切換圖;
[0035] 圖6為本發(fā)明第Ξ實施例中化q-cmd輸入時鐘的時序圖;
[0036] 圖7為本發(fā)明第Ξ實施例中化q-cmd輸出時鐘的時序圖。
【具體實施方式】
[0037] 現(xiàn)通過【具體實施方式】結(jié)合附圖的方式對本發(fā)明做出進一步的i全釋說明。
[003引第一實施例;
[0039]圖1為本發(fā)明第一實施例提供的訪問控制裝置的結(jié)構(gòu)示意圖,由圖1可知,在本實 施例中,本發(fā)明提供的用于DDR控制器的訪問控制裝置1包括:
[0040]譯碼模塊11,用于根據(jù)訪問請求譯碼生成DDR指令并緩存,DDR指令不攜帶時延參 數(shù);
[0041 ]控制模塊12,用于根據(jù)DDR規(guī)范,查找與DDR指令對應(yīng)的精確時延,將精確時延添加 到DDR指令中,生成訪問請求對應(yīng)的DDR控制指令。
[0042] 在一些實施例中,上述實施例中的譯碼模塊11用于將訪問請求譯碼為對應(yīng)的DDR 操作,將DDR操作分割為無縫DDR指令,緩存無縫DDR指令。
[0043] 在一些實施例中,上述實施例中的譯碼模塊11在將訪問請求譯碼為對應(yīng)的DDR操 作之后,還用于為孤R操作插入刷新操作。
[0044] 在一些實施例中,上述實施例中的譯碼模塊11在緩存無縫DDR指令之后,還用于更 新緩存狀態(tài)。
[0045] 在一些實施例中,上述實施例中的控制模塊12用于獲取DDR指令的指令狀態(tài),根據(jù) 指令狀態(tài)查找對應(yīng)的精確時延。
[0046] 第二實施例;
[0047] 圖2為本發(fā)明第二實施例提供的訪問控制方法的流程圖,由圖2可知,在本實施例 中,本發(fā)明提供的用于DDR控制器的訪問控制方法包括W下步驟:
[004引S201:根據(jù)訪問請求譯碼生成DDR指令并緩存,孤R指令不攜帶時延參數(shù);
[0049] S202:根據(jù)DDR規(guī)范,查找與DDR指令對應(yīng)的精確時延,將精確時延添加到DDR指令 中,生成訪問請求對應(yīng)的DDR控制指令。
[0050] 在一些實施例中,上述實施例中的根據(jù)訪問請求譯碼生成DDR指令并緩存包括:將 訪問請求譯碼為對應(yīng)的DDR操作,將DDR操作分割為無縫DDR指令,緩存無縫DDR指令。
[0051] 在一些實施例中,上述實施例中的根據(jù)訪問請求譯碼生成DDR指令并緩存,在將訪 問請求譯碼為對應(yīng)的孤R操作之后,還包括:為孤R操作插入刷新操作。
[0052] 在一些實施例中,上述實施例中的根據(jù)訪問請求譯碼生成DDR指令并緩存,在緩存 無縫DDR指令之后,還包括:更新緩存狀態(tài)。
[0053] 在一些實施例中,上述實施例中的查找與DDR指令對應(yīng)的精確時延包括:獲取DDR 指令的指令狀態(tài),根據(jù)指令狀態(tài)查找對應(yīng)的精確時延。
[0054] 在一些實施例中,本發(fā)明提供了一種用于DDR控制器的訪問控制電路,其包括:
[0055] Dcq-wrapper電路接收訪問請求,將訪問請求譯碼生成DDR指令并緩存,孤R指令不 攜帶時延參數(shù);
[0056] Dcq-cmd電路于根據(jù)DDR規(guī)范,查找與DDR指令對應(yīng)的精確時延,將精確時延添加到 DDR指令中,生成訪問請求對應(yīng)的DDR控制指令。
[0057] 在一些實施例中,上述實施例中的Dcq-wrapper包括dcd-bm電路和dcd-sm電路, dcd-bm電路將訪問請求譯碼為對應(yīng)的DDR操作,dcd-sm電路包括解碼狀態(tài)機,解碼狀態(tài)機將 孤R操作分割為無縫DDR指令,緩存無縫DDR指令至先進先出隊列(fifo)。
[005引在一些實施例中,上述實施例中的dcd-bm電路在將訪問請求譯碼為對應(yīng)的DDR操 作之后,為DDR操作插入刷新操作。
[0059] 在一些實施例中,上述實施例中的解碼狀態(tài)機在緩存無縫DDR指令之后,還用于更 新緩存狀態(tài)。
[0060] 在一些實施例中,上述實施例中的Dcq-cmd電路獲取DDR指令的指令狀態(tài),根據(jù)指 令狀態(tài)查找對應(yīng)的精確時延。
[0061 ]對應(yīng)的,本發(fā)明提供了一種DDR控制器,其包括本發(fā)明提供的訪問控制電路。
[0062] 第=實施例:
[0063] 現(xiàn)結(jié)合具體應(yīng)用場景對本發(fā)明做進一步的i全釋說明。
[0064] 針對傳統(tǒng)DDR控制器存在的不足,本發(fā)明創(chuàng)新的引入指令狀態(tài)機,實現(xiàn)對DDR訪問 與命令間時序的分離,降低各個模塊間的禪合,從而使得DDR的控制相對簡單,到達減少對 FPGA資源的占用,在相同的配置下,降低了訪問延遲,同時提高了帶寬利用率。
[0065] 本實施例的控制器包括:1 )AXI4用戶接口模塊,2)請求解碼模塊,3)命令處理模 塊,4)數(shù)據(jù)接收模塊,5)數(shù)據(jù)發(fā)送模塊,6)低功耗模塊,7)Aro配置模塊,8)DFI接口模塊。
[0066] 本實施例請求解碼模塊加入狀態(tài)機運一方案。該方案的狀態(tài)機,隔離接口用戶的 請求與DDR Command關(guān)系。請求解碼模塊的方案設(shè)計如圖3所示,圖中通過加入解碼狀態(tài)機 緩沖,command_a;rb模塊能連續(xù)處理用戶通過請求,不受DDR Command間隔約束,運樣用戶對 DDR的訪問在整個控制器內(nèi)部被分成2個獨立的模塊,其中個模塊是dcq_wrapper模塊負責 處理用戶請求并將請求編碼成相應(yīng)的DDR Command,另外一個模塊是dcp_cmd負責DDR Command之間的延時處理。
[0067] 傳統(tǒng)的DDR控制器包括rank時序控制模塊,bank時序控制模塊和CO1時序控制模塊 等,DDR控制器對用戶的請求處理,沒有實現(xiàn)操作和時序的分離,導(dǎo)致控制算法極其復(fù)雜,模 塊間彼此禪合,導(dǎo)致的缺點是:用戶接日帶寬效率低下,占用較多的FPGA資源,較大的時延, IP時序較差,DDR帶寬利用率低等。采用本發(fā)明的技術(shù)后,有益效果有:實現(xiàn)了模塊解禪控 審IJ,控制算法相對簡單,大大降低了資源占用,減少訪問時延,優(yōu)化IP時序,提高帶寬利用 率。
[006引孤R控制器采用Verilog HDL硬件描述語言實現(xiàn),DDR的IP的內(nèi)部模塊的邏輯框圖4 所示,該控制器包含的模塊如下:
[0069] ui_axi模塊41:本模塊完成接口轉(zhuǎn)換,將用戶通過AXI4(Advanced extensible Interface)發(fā)送的訪問請求轉(zhuǎn)換成內(nèi)部模塊的接口。
[0070] dcq_wrappe^2 :本模塊完成用戶請求的解碼,將用戶請求譯碼成對應(yīng)的DDR Command,運些孤R Command之間不帶延時。
[0071] dcp_cmd43:本模塊孤R Command的時延控制,根據(jù)孤R3規(guī)范,將精確時延加入不帶 時延的孤R Command中。
[0072] 化ta-path44,包括writepath:本模塊完成AXI接口寫數(shù)據(jù)換成DFI接口寫數(shù)據(jù),用 戶數(shù)據(jù)的發(fā)送受控于dcp_cmd模塊發(fā)送的DDR Command;還包括readpath:本模塊完成DFI接 口的讀數(shù)據(jù)轉(zhuǎn)換成AXI接口的讀數(shù)據(jù),用戶接收數(shù)據(jù)之間間隔受控于dcp_cmd模塊發(fā)送的 DDR Command。
[0073] ui_apb45:本模塊完成功能有:a.APB(Advanced 化ri地eral Bus)接口的從機;b. 用戶請求(MRS\low poweiAnormal)的接收并編碼。將用戶通過APB接口發(fā)送的MRS/low power/normal請求,進行編碼,轉(zhuǎn)換成應(yīng)的內(nèi)部接口信號,分別發(fā)送到dcp_cmd和DFI接口。
[0074] DFI46:本模塊完成MUX功能和接口轉(zhuǎn)功能,用戶通過dcp_cmd或ui_apb發(fā)送的DDR Command通過判斷相應(yīng)的狀態(tài),分別輸出至化HY模塊47,同時將DDR Command轉(zhuǎn)換成符合DFI 接口的命令。
[0075] 針對dcq_wrappe;r模塊,分為dcd_bm模塊和dcd_sm模塊,其中dcd_bm模塊完成將用 戶訪問請求譯碼成對應(yīng)的DDR操作并自動插入刷新操作;dcd_sm模塊將DDR操作分割成無縫 的孤R Command,其中解碼狀態(tài)機處于該模塊。
[0076] 具體的,dcd_sm模塊的端口如下表1所示:
[0077] 表 1 [007引
[0079]
[0080] 具體的,dcd_sm模塊的狀態(tài)機設(shè)計,如圖5所示,其狀態(tài)說明及跳轉(zhuǎn)條件如下表2及 3所示。
[0081]表 2 Γ00821
[0085]
[0086] 針對dcd_sm模塊的輸入及輸出時鐘的時序,分別如圖6及7所示,具體的,
[0087] 如圖6所示,datsm模塊輸入,該典型時序是,用戶發(fā)起不帶Precharge(dec_pre_ now為low)的寫操作(dec_w;r_rd為hi曲),地址是ADDR,讀寫的化ust長度為5(dec_len為3), 待寫入的孤R的行處于非Activation(dec_new_;row為高)狀態(tài)。
[0088] 圖4指令狀態(tài)機的輸入信號的時序圖
[0089] 如圖7所示,經(jīng)過解碼狀態(tài)機后,用戶操作被分解成無縫的DDR Command,典型時序 如圖7所示,ID號保持不變,bank地址和行地址不變,列地址依次加8 (dcd_wr_ad化),寫操作 占用5個周期(dcd_w;r_cmd = 2,且dcd_w;r_cmd = 6),寫使能有效時(dcd_w;r_en為hig),dcd_ wr_last,dcd_wr_id,dcd_wr_cmd,dcd_wr_addr 有效。
[0090] 綜上可知,通過本發(fā)明的實施,至少存在W下有益效果:
[0091] 本發(fā)明提供了一種訪問控制電路,將用戶請求譯碼成對應(yīng)的DDR Command,運些 孤R Command之間不帶延時,根據(jù)DDR3規(guī)范,將精確時延加入不帶時延的孤R Command中,生 成DDR控制指令,使得訪問請求的處理不受DDR Command間隔約束,實現(xiàn)了模塊解禪控制,控 審隱法相對簡單,大大降低了資源占用,減少訪問時延,優(yōu)化IP時序,提高帶寬利用率。
[0092] W上僅是本發(fā)明的【具體實施方式】而已,并非對本發(fā)明做任何形式上的限制,凡是 依據(jù)本發(fā)明的技術(shù)實質(zhì)對W上實施方式所做的任意簡單修改、等同變化、結(jié)合或修飾,均仍 屬于本發(fā)明技術(shù)方案的保護范圍。
【主權(quán)項】
1. 一種用于DDR控制器的訪問控制方法,其特征在于,包括: 根據(jù)訪問請求譯碼生成DDR指令并緩存,所述DDR指令不攜帶時延參數(shù); 根據(jù)DDR規(guī)范,查找與所述DDR指令對應(yīng)的精確時延,將所述精確時延添加到所述DDR指 令中,生成所述訪問請求對應(yīng)的DDR控制指令。2. 如權(quán)利要求1所述的訪問控制方法,其特征在于,所述根據(jù)訪問請求譯碼生成DDR指 令并緩存包括:將所述訪問請求譯碼為對應(yīng)的DDR操作,將所述DDR操作分割為無縫DDR指 令,緩存所述無縫DDR指令。3. 如權(quán)利要求2所述的訪問控制方法,其特征在于,所述根據(jù)訪問請求譯碼生成DDR指 令并緩存,在將所述訪問請求譯碼為對應(yīng)的DDR操作之后,還包括:為所述DDR操作插入刷新 操作。4. 如權(quán)利要求3所述的訪問控制方法,其特征在于,所述根據(jù)訪問請求譯碼生成DDR指 令并緩存,在緩存所述無縫DDR指令之后,還包括:更新緩存狀態(tài)。5. 如權(quán)利要求1至4任一項所述的訪問控制方法,其特征在于,所述查找與所述DDR指令 對應(yīng)的精確時延包括:獲取所述DDR指令的指令狀態(tài),根據(jù)所述指令狀態(tài)查找對應(yīng)的精確時 延。6. -種用于DDR控制器的訪問控制裝置,其特征在于,包括: 譯碼模塊,用于根據(jù)訪問請求譯碼生成DDR指令并緩存,所述DDR指令不攜帶時延參數(shù); 控制模塊,用于根據(jù)DDR規(guī)范,查找與所述DDR指令對應(yīng)的精確時延,將所述精確時延添 加到所述DDR指令中,生成所述訪問請求對應(yīng)的DDR控制指令。7. 如權(quán)利要求6所述的訪問控制裝置,其特征在于,所述譯碼模塊用于將所述訪問請求 譯碼為對應(yīng)的DDR操作,將所述DDR操作分割為無縫DDR指令,緩存所述無縫DDR指令。8. 如權(quán)利要求7所述的訪問控制裝置,其特征在于,所述譯碼模塊在將所述訪問請求譯 碼為對應(yīng)的DDR操作之后,還用于為所述DDR操作插入刷新操作。9. 如權(quán)利要求8所述的訪問控制裝置,其特征在于,所述譯碼模塊在緩存所述無縫DDR 指令之后,還用于更新緩存狀態(tài)。10. 如權(quán)利要求6至9任一項所述的訪問控制裝置,其特征在于,所述控制模塊用于獲取 所述DDR指令的指令狀態(tài),根據(jù)所述指令狀態(tài)查找對應(yīng)的精確時延。11. 一種用于DDR控制器的訪問控制電路,其特征在于,包括: Dcq-wrapper電路接收訪問請求,將所述訪問請求譯碼生成DDR指令并緩存,所述DDR指 令不攜帶時延參數(shù); Dcq-cmd電路于根據(jù)DDR規(guī)范,查找與所述DDR指令對應(yīng)的精確時延,將所述精確時延添 加到所述DDR指令中,生成所述訪問請求對應(yīng)的DDR控制指令。12. 如權(quán)利要求11所述的訪問控制電路,其特征在于,所述Dcq-wrapper包括dcd-bm電 路和dcd-sm電路,所述dcd-bm電路將所述訪問請求譯碼為對應(yīng)的DDR操作,所述dcd-sm電路 包括解碼狀態(tài)機,所述解碼狀態(tài)機及將DDR操作分割為無縫DDR指令,緩存所述無縫DDR指令 至先進先出隊列。13. 如權(quán)利要求12所述的訪問控制電路,其特征在于,所述dcd-bm電路在將所述訪問請 求譯碼為對應(yīng)的DDR操作之后,為所述DDR操作插入刷新操作。14. 如權(quán)利要求13所述的訪問控制電路,其特征在于,所述解碼狀態(tài)機在緩存所述無縫 DDR指令之后,還用于更新緩存狀態(tài)。15. 如權(quán)利要求11至14任一項所述的訪問控制電路,其特征在于,所述Dcq-cmd電路獲 取所述DDR指令的指令狀態(tài),根據(jù)所述指令狀態(tài)查找對應(yīng)的精確時延。16. -種DDR控制器,其特征在于,包括如權(quán)利要求11至15任一項所述的訪問控制電路。
【文檔編號】G11C7/22GK105825880SQ201610129974
【公開日】2016年8月3日
【申請日】2016年3月7日
【發(fā)明人】趙欽波
【申請人】深圳市紫光同創(chuàng)電子有限公司