浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » EDA/PLD

SDRAM通用控制器的FPGA模塊化設(shè)計(jì)

發(fā)布時(shí)間:2008/5/28 0:00:00 訪問(wèn)次數(shù):811

摘要: 介紹了一種sdram通用控制器的fpga模塊化解決方案。
關(guān)鍵詞: sdram控制器;fpga;vhdl;狀態(tài)機(jī);仲裁機(jī)制
引言
同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(sdram),在同一個(gè)cpu時(shí)鐘周期內(nèi)即可完成數(shù)據(jù)的訪問(wèn)和刷新,其數(shù)據(jù)傳輸速度遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的數(shù)據(jù)存儲(chǔ)器(dram),被廣泛的應(yīng)用于高速數(shù)據(jù)傳輸系統(tǒng)中;趂pga的sdram控制器,以其可靠性高、可移植性強(qiáng)、易于集成的特點(diǎn),已逐漸取代了以往的專用控制器芯片而成為主流解決方案。然而,sdram復(fù)雜的控制邏輯和要求嚴(yán)格的時(shí)序,成為開發(fā)過(guò)程中困擾設(shè)計(jì)人員主要因素,進(jìn)而降低了開發(fā)速度,而且大多數(shù)的基于fpga的sdram控制器都是針對(duì)特定的sdram芯片進(jìn)行設(shè)計(jì),無(wú)法實(shí)現(xiàn)控制器的通用性。本文介紹一種通用sdram控制器的fpga模塊化解決方案。
sdram及其控制過(guò)程
sdram控制邏輯復(fù)雜,命令種類多樣,需要周期性刷新操作、行列管理的等多重操作。
sdram首先要進(jìn)行初始化操作。在上電后等待100ns,至少執(zhí)行1條空操作,然后對(duì)所有頁(yè)執(zhí)行預(yù)充電操作,接著向各頁(yè)發(fā)出兩條刷新操作指令,最后執(zhí)行sdram工作模式的設(shè)定lmr命令用來(lái)配置sdram工作模式寄存器。sdram工作寄存器可以根據(jù)具體應(yīng)用的需要進(jìn)行設(shè)置。
初始后的sdram在得到了ras、cas、we的值后開始執(zhí)行相應(yīng)的命令。在對(duì)sdram進(jìn)行讀、寫過(guò)程中,必須要先進(jìn)行頁(yè)激活act操作,保證存儲(chǔ)單元是打開的,以便從中讀取地址或者寫入地址,然后通過(guò)預(yù)充電phc命令實(shí)現(xiàn)來(lái)關(guān)閉存儲(chǔ)單元。在進(jìn)行寫操作時(shí),內(nèi)部的列地址和數(shù)據(jù)都會(huì)被寄存,而進(jìn)行讀操作時(shí),內(nèi)部地址被寄存,數(shù)據(jù)的存儲(chǔ)則發(fā)生在cas 延遲時(shí)間(通常為1~3個(gè)時(shí)鐘周期)后。最后,操作終止:當(dāng)sdram順次的進(jìn)行讀、寫操作后,當(dāng)?shù)竭_(dá)到突發(fā)長(zhǎng)度或者突發(fā)終止指令bt出現(xiàn)時(shí),sdram將終止其操作。

模塊化的sdram控制器設(shè)計(jì)
在sdram控制器的fpga實(shí)現(xiàn)方案中,采用了fpga的自底向上的模塊化設(shè)計(jì)思想,首先分析頂層模塊的功能,再將其功能分類細(xì)化,分配到不同的子模塊去實(shí)現(xiàn),然后自底向上的先逐步完成各個(gè)子模塊的設(shè)計(jì),最后將子模塊相互連接生成頂層模塊。經(jīng)過(guò)分析,sdram控制器應(yīng)實(shí)現(xiàn)的功能有:為sdram提供刷新控制以保持sdram中的數(shù)據(jù);對(duì)主機(jī)的命令進(jìn)行仲裁,將下一步要執(zhí)行的命令翻譯成可與sdram連接的信號(hào);為sdram的讀、寫生成數(shù)據(jù)路徑。因此,根據(jù)sdram的指令操作特點(diǎn)將sdram控制器劃分為接口控制模塊、命令生成模塊和數(shù)據(jù)路徑模塊三個(gè)主要模塊(圖1)。

圖1 sdram控制器的fpga模塊化設(shè)計(jì)方案
下面,對(duì)其接口信號(hào)進(jìn)行介紹,需要注意的是,為了實(shí)現(xiàn)該控制器的通用性,addr、datain、dataout、dq、dom信號(hào)設(shè)計(jì)成可根據(jù)sdram的容量改變的形式。
與主機(jī)接口信號(hào):clk(系統(tǒng)時(shí)鐘);reset(系統(tǒng)復(fù)位);cmd[2:0](譯碼指令);cmdack(指令應(yīng)答信號(hào));addr[asize-1:0](地址線);datain/dataou[dsize-1:0](輸入、輸出數(shù)據(jù)總線);dm[(dsize/8)-1:0](數(shù)據(jù)掩碼)。
與sdram接口信號(hào):sa(地址線);ba(頁(yè)地址);cs_n(片選信號(hào));cke(時(shí)鐘使能信號(hào));ras、cas、we(命令控制信號(hào));dqm[(dsize/8)-1:0](sdram數(shù)據(jù)掩碼);dq[dsize-1:0](雙向數(shù)據(jù)線)。
各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)
接口控制模塊
接口控制模塊主要實(shí)現(xiàn)的功能是將cmd[2:0]翻譯成接口指令和對(duì)刷新計(jì)數(shù)器的控制指令。接口模塊在工作過(guò)程中首先通過(guò)要通過(guò)狀態(tài)機(jī)來(lái)完成對(duì)cmd[2:0]的翻譯。在vhdl程序中聲明一個(gè)用戶自定義類型states,根據(jù)cmd[2:0]輸入來(lái)決定狀態(tài)的轉(zhuǎn)移,完成對(duì)cmd[2:0]的解碼,部分代碼如下:
type states is(nop,reada,writea,refresh,
precharge,load_mode);
signal state : states ;
………………
case cmd is
when "011" => state<=refresh;
when "111" => state<=nop;
………………

另外,sdram需要周期性刷新操作以保持?jǐn)?shù)據(jù)。在模塊的程序設(shè)計(jì)中,刷新周期的控制通過(guò)一個(gè)計(jì)數(shù)器來(lái)完成,到達(dá)規(guī)定的計(jì)數(shù)周期數(shù)時(shí),接口模塊通過(guò)ref_req信號(hào)向sdram發(fā)出刷新請(qǐng)求。直到sdram完成刷新操作,發(fā)出ref_ack刷新應(yīng)答信號(hào),計(jì)數(shù)器才重新賦值,開始下一次的計(jì)數(shù)。
命令生成模塊
命令生成模塊實(shí)現(xiàn)對(duì)輸入的sdram指令請(qǐng)求進(jìn)行仲裁判斷的功能,并將仲裁后要執(zhí)行的指令解碼成sdram需要的ras、cas等信號(hào),從而實(shí)現(xiàn)指令對(duì)sdram的控制。仲裁機(jī)制是sdram控制器設(shè)計(jì)不可或缺的一個(gè)環(huán)節(jié)。仲裁機(jī)制實(shí)現(xiàn)要遵循如下規(guī)則:
*sdram在每一刻只有一個(gè)指令在執(zhí)行;
*先到的指令先執(zhí)行,如果刷新請(qǐng)求到來(lái)時(shí),其它命令正在執(zhí)行中,要等到當(dāng)前命令執(zhí)行完成后,才能執(zhí)行刷新指令;
*其它指令和刷新請(qǐng)求同時(shí)到來(lái)時(shí)刷新操作先執(zhí)行。
經(jīng)過(guò)仲裁判斷后,指令將傳入命令生成器。命令生成器不僅要把指令解碼成sdram需要的ras、cas等信號(hào),同時(shí)還要對(duì)命令執(zhí)行的時(shí)間進(jìn)行控制。下面的例程僅供參考。
if (do_state=refresh or do_state=reada or
do_stat

摘要: 介紹了一種sdram通用控制器的fpga模塊化解決方案。
關(guān)鍵詞: sdram控制器;fpga;vhdl;狀態(tài)機(jī);仲裁機(jī)制
引言
同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(sdram),在同一個(gè)cpu時(shí)鐘周期內(nèi)即可完成數(shù)據(jù)的訪問(wèn)和刷新,其數(shù)據(jù)傳輸速度遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的數(shù)據(jù)存儲(chǔ)器(dram),被廣泛的應(yīng)用于高速數(shù)據(jù)傳輸系統(tǒng)中;趂pga的sdram控制器,以其可靠性高、可移植性強(qiáng)、易于集成的特點(diǎn),已逐漸取代了以往的專用控制器芯片而成為主流解決方案。然而,sdram復(fù)雜的控制邏輯和要求嚴(yán)格的時(shí)序,成為開發(fā)過(guò)程中困擾設(shè)計(jì)人員主要因素,進(jìn)而降低了開發(fā)速度,而且大多數(shù)的基于fpga的sdram控制器都是針對(duì)特定的sdram芯片進(jìn)行設(shè)計(jì),無(wú)法實(shí)現(xiàn)控制器的通用性。本文介紹一種通用sdram控制器的fpga模塊化解決方案。
sdram及其控制過(guò)程
sdram控制邏輯復(fù)雜,命令種類多樣,需要周期性刷新操作、行列管理的等多重操作。
sdram首先要進(jìn)行初始化操作。在上電后等待100ns,至少執(zhí)行1條空操作,然后對(duì)所有頁(yè)執(zhí)行預(yù)充電操作,接著向各頁(yè)發(fā)出兩條刷新操作指令,最后執(zhí)行sdram工作模式的設(shè)定lmr命令用來(lái)配置sdram工作模式寄存器。sdram工作寄存器可以根據(jù)具體應(yīng)用的需要進(jìn)行設(shè)置。
初始后的sdram在得到了ras、cas、we的值后開始執(zhí)行相應(yīng)的命令。在對(duì)sdram進(jìn)行讀、寫過(guò)程中,必須要先進(jìn)行頁(yè)激活act操作,保證存儲(chǔ)單元是打開的,以便從中讀取地址或者寫入地址,然后通過(guò)預(yù)充電phc命令實(shí)現(xiàn)來(lái)關(guān)閉存儲(chǔ)單元。在進(jìn)行寫操作時(shí),內(nèi)部的列地址和數(shù)據(jù)都會(huì)被寄存,而進(jìn)行讀操作時(shí),內(nèi)部地址被寄存,數(shù)據(jù)的存儲(chǔ)則發(fā)生在cas 延遲時(shí)間(通常為1~3個(gè)時(shí)鐘周期)后。最后,操作終止:當(dāng)sdram順次的進(jìn)行讀、寫操作后,當(dāng)?shù)竭_(dá)到突發(fā)長(zhǎng)度或者突發(fā)終止指令bt出現(xiàn)時(shí),sdram將終止其操作。

模塊化的sdram控制器設(shè)計(jì)
在sdram控制器的fpga實(shí)現(xiàn)方案中,采用了fpga的自底向上的模塊化設(shè)計(jì)思想,首先分析頂層模塊的功能,再將其功能分類細(xì)化,分配到不同的子模塊去實(shí)現(xiàn),然后自底向上的先逐步完成各個(gè)子模塊的設(shè)計(jì),最后將子模塊相互連接生成頂層模塊。經(jīng)過(guò)分析,sdram控制器應(yīng)實(shí)現(xiàn)的功能有:為sdram提供刷新控制以保持sdram中的數(shù)據(jù);對(duì)主機(jī)的命令進(jìn)行仲裁,將下一步要執(zhí)行的命令翻譯成可與sdram連接的信號(hào);為sdram的讀、寫生成數(shù)據(jù)路徑。因此,根據(jù)sdram的指令操作特點(diǎn)將sdram控制器劃分為接口控制模塊、命令生成模塊和數(shù)據(jù)路徑模塊三個(gè)主要模塊(圖1)。

圖1 sdram控制器的fpga模塊化設(shè)計(jì)方案
下面,對(duì)其接口信號(hào)進(jìn)行介紹,需要注意的是,為了實(shí)現(xiàn)該控制器的通用性,addr、datain、dataout、dq、dom信號(hào)設(shè)計(jì)成可根據(jù)sdram的容量改變的形式。
與主機(jī)接口信號(hào):clk(系統(tǒng)時(shí)鐘);reset(系統(tǒng)復(fù)位);cmd[2:0](譯碼指令);cmdack(指令應(yīng)答信號(hào));addr[asize-1:0](地址線);datain/dataou[dsize-1:0](輸入、輸出數(shù)據(jù)總線);dm[(dsize/8)-1:0](數(shù)據(jù)掩碼)。
與sdram接口信號(hào):sa(地址線);ba(頁(yè)地址);cs_n(片選信號(hào));cke(時(shí)鐘使能信號(hào));ras、cas、we(命令控制信號(hào));dqm[(dsize/8)-1:0](sdram數(shù)據(jù)掩碼);dq[dsize-1:0](雙向數(shù)據(jù)線)。
各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)
接口控制模塊
接口控制模塊主要實(shí)現(xiàn)的功能是將cmd[2:0]翻譯成接口指令和對(duì)刷新計(jì)數(shù)器的控制指令。接口模塊在工作過(guò)程中首先通過(guò)要通過(guò)狀態(tài)機(jī)來(lái)完成對(duì)cmd[2:0]的翻譯。在vhdl程序中聲明一個(gè)用戶自定義類型states,根據(jù)cmd[2:0]輸入來(lái)決定狀態(tài)的轉(zhuǎn)移,完成對(duì)cmd[2:0]的解碼,部分代碼如下:
type states is(nop,reada,writea,refresh,
precharge,load_mode);
signal state : states ;
………………
case cmd is
when "011" => state<=refresh;
when "111" => state<=nop;
………………

另外,sdram需要周期性刷新操作以保持?jǐn)?shù)據(jù)。在模塊的程序設(shè)計(jì)中,刷新周期的控制通過(guò)一個(gè)計(jì)數(shù)器來(lái)完成,到達(dá)規(guī)定的計(jì)數(shù)周期數(shù)時(shí),接口模塊通過(guò)ref_req信號(hào)向sdram發(fā)出刷新請(qǐng)求。直到sdram完成刷新操作,發(fā)出ref_ack刷新應(yīng)答信號(hào),計(jì)數(shù)器才重新賦值,開始下一次的計(jì)數(shù)。
命令生成模塊
命令生成模塊實(shí)現(xiàn)對(duì)輸入的sdram指令請(qǐng)求進(jìn)行仲裁判斷的功能,并將仲裁后要執(zhí)行的指令解碼成sdram需要的ras、cas等信號(hào),從而實(shí)現(xiàn)指令對(duì)sdram的控制。仲裁機(jī)制是sdram控制器設(shè)計(jì)不可或缺的一個(gè)環(huán)節(jié)。仲裁機(jī)制實(shí)現(xiàn)要遵循如下規(guī)則:
*sdram在每一刻只有一個(gè)指令在執(zhí)行;
*先到的指令先執(zhí)行,如果刷新請(qǐng)求到來(lái)時(shí),其它命令正在執(zhí)行中,要等到當(dāng)前命令執(zhí)行完成后,才能執(zhí)行刷新指令;
*其它指令和刷新請(qǐng)求同時(shí)到來(lái)時(shí)刷新操作先執(zhí)行。
經(jīng)過(guò)仲裁判斷后,指令將傳入命令生成器。命令生成器不僅要把指令解碼成sdram需要的ras、cas等信號(hào),同時(shí)還要對(duì)命令執(zhí)行的時(shí)間進(jìn)行控制。下面的例程僅供參考。
if (do_state=refresh or do_state=reada or
do_stat

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

聲道前級(jí)設(shè)計(jì)特點(diǎn)
    與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!