• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA SDRAM的AXIS_SDRAM接口設(shè)計(jì)與實(shí)現(xiàn)

      2020-07-14 18:27:26李浩申偉
      科技創(chuàng)新導(dǎo)報(bào) 2020年11期

      李浩 申偉

      摘? ?要:由于FPGA片內(nèi)存儲(chǔ)資源有限,擴(kuò)展外部存儲(chǔ)空間是必要的,然而眾多存儲(chǔ)芯片總線結(jié)構(gòu)復(fù)雜,控制繁瑣。為此,本文以賽靈思的FPGA為平臺(tái),設(shè)計(jì)一種以常用而快捷的axi_stream的形式訪問(wèn)SDRAM的接口。

      關(guān)鍵詞:FPGA? SDRAM? AXIS? FIFO? BRAM

      隨著芯片的不斷更新?lián)Q代,集成ARM核的FPGA芯片得到了廣泛的應(yīng)用[1]。axi的總線協(xié)議在FPGA里面應(yīng)用也越來(lái)越廣。axi_stream協(xié)議為axi的一種總線標(biāo)準(zhǔn)。本文將采用axi_stream的時(shí)序以fifo與bram的形式訪問(wèn)SDRAM的設(shè)計(jì)與實(shí)現(xiàn)方法。

      1? axis_sdram接口

      本文將axis_sdram接口分為兩種,不帶地址的axis_fifo_sdram(下文簡(jiǎn)稱axis_fifo)和帶地址的axis_bram_sdram(下文簡(jiǎn)稱axis_bram)接口。兩種接口均采用axis_stream的時(shí)序。axis_bram接口為一個(gè)地址對(duì)應(yīng)一幀數(shù)據(jù),可重復(fù)讀取數(shù)據(jù)。與axis_fifo的區(qū)別在于axis_bram寫指定存儲(chǔ)空間,當(dāng)用戶需要讀寫數(shù)據(jù)時(shí),需要同時(shí)給出讀寫地址總線地址數(shù)據(jù)。

      axis_fifo和bram接口的讀寫數(shù)據(jù)共同點(diǎn)在于,當(dāng)ready與valid兩根信號(hào)線同時(shí)有效(高電平)時(shí),數(shù)據(jù)總線上的數(shù)據(jù)才有效。此外,axis_bram中,當(dāng)用戶寫完一幀數(shù)據(jù)后,等待監(jiān)測(cè)m_axis_tlast3信號(hào)線拉高,可以開(kāi)始寫第二幀數(shù)據(jù),具體時(shí)序見(jiàn)圖 1。讀用戶監(jiān)測(cè)到m_axis_tlast3信號(hào)拉高時(shí),說(shuō)明底層sdram已經(jīng)存儲(chǔ)好寫用戶的一幀數(shù)據(jù),此時(shí)讀用戶將讀地址使能信號(hào)拉高一段時(shí)間,同時(shí)給出讀地址總線數(shù)據(jù),后讀地址使能信號(hào)拉低,至此,用戶監(jiān)測(cè)到讀數(shù)據(jù)側(cè)的axis_last拉高,完成一幀數(shù)據(jù)讀寫。

      2? sdram接口

      此sdram存儲(chǔ)空間為256Mb,數(shù)據(jù)位寬為32位,速率等級(jí)有-5、-6、-7三個(gè)等級(jí),最高時(shí)鐘頻率為200MHz。Bank數(shù)量為4,行地址位寬為12bit,列地址復(fù)用行地址的低位9bit??刂七壿嫴蓸訝顟B(tài)機(jī)的形式,首先狀態(tài)機(jī)設(shè)置為初始化狀態(tài),初始化主要是芯片上電后首先執(zhí)行的操作。首先執(zhí)行空操作,再延時(shí)100us,進(jìn)行預(yù)充電操作,緊接著兩次自刷新操作,進(jìn)入模式寄存器配置,初始化完成。模式寄存器配置過(guò)程中,首先cmd給模式寄存器配置指令,通過(guò)給12bit地址總線信號(hào)設(shè)置操作模式、突發(fā)模式、潛伏期、突發(fā)傳輸方式以及全頁(yè)突發(fā)設(shè)置。

      初始化完成后,狀態(tài)機(jī)進(jìn)入刷新、預(yù)充電狀態(tài),給寫指令進(jìn)入寫數(shù)據(jù)狀態(tài)機(jī),給讀指令進(jìn)入讀數(shù)據(jù)狀態(tài)機(jī)。

      3? axis與sdram底層接口

      將sdram四個(gè)bank分成兩個(gè)存儲(chǔ)空間,bank0、bank1作為axis_fifo的存儲(chǔ)空間,bank2、bank3作為axis_bram的存儲(chǔ)空間。由于axis_fifo與axis_bram兩種接口訪問(wèn)同一塊物理存儲(chǔ)芯片,所以邏輯設(shè)置優(yōu)先級(jí)與新增標(biāo)志信號(hào)控制時(shí)序。

      此部分控制邏輯采用狀態(tài)機(jī)循環(huán)監(jiān)測(cè)標(biāo)志信號(hào)狀態(tài)以判斷對(duì)底層sdram的操作。狀態(tài)機(jī)流程見(jiàn)圖2,首先,狀態(tài)機(jī)檢測(cè)axis_fifo緩沖器里面是否有數(shù)據(jù),如果有數(shù)據(jù),狀態(tài)機(jī)檢測(cè)sdram存儲(chǔ)是否寫滿,如果沒(méi)有,狀態(tài)機(jī)將狀態(tài)設(shè)置為axis_fifo向sdram寫數(shù)據(jù)狀態(tài)。如果axis_fifo里面沒(méi)有數(shù)據(jù)或者sdram的剩余存儲(chǔ)空間不足以寫一幀數(shù)據(jù),那么狀態(tài)機(jī)將進(jìn)入中斷axis_fifo寫狀態(tài),進(jìn)入等待狀態(tài),底層sdram會(huì)進(jìn)入中斷等待定時(shí)刷新?tīng)顟B(tài)。

      當(dāng)狀態(tài)機(jī)檢測(cè)到axis_fifo緩沖器數(shù)據(jù)last信號(hào)后,識(shí)別為一幀數(shù)據(jù)傳輸結(jié)束,狀態(tài)機(jī)也將跳到中斷等待狀態(tài),狀態(tài)機(jī)會(huì)依次監(jiān)測(cè)axis_fifo寫使能、axis_fifo讀使能,axis_bram寫使能、axis_bram讀使能。檢測(cè)到其中一個(gè)使能信號(hào)將進(jìn)入對(duì)應(yīng)狀態(tài)機(jī)操作,執(zhí)行對(duì)sdram進(jìn)一步控制。

      此部分涉及到last信號(hào)傳遞、讀寫數(shù)據(jù)sdram地址數(shù)據(jù)的記憶以及時(shí)序邏輯采樣延時(shí)導(dǎo)致信號(hào)時(shí)序不同步的問(wèn)題。sdram地址記憶采用fifo ip和單口bram ip存儲(chǔ)寫數(shù)據(jù)時(shí)最后一幀數(shù)據(jù)last信號(hào)的地址,地址采用bank+row+column的形式。當(dāng)讀取sdram的數(shù)據(jù)時(shí),檢測(cè)到讀數(shù)據(jù)的地址與fifo ip或者bram ip數(shù)據(jù)總線上的數(shù)據(jù)一致時(shí),則判斷為一幀數(shù)據(jù)的結(jié)束,底層sdram接口產(chǎn)生讀數(shù)據(jù)端的last信號(hào)。由于axis的使能信號(hào)采用時(shí)序邏輯采樣傳遞到底層sdram接口,會(huì)有兩個(gè)時(shí)鐘周期的延遲,因此,axis接口的數(shù)據(jù)采用D觸發(fā)器延遲兩拍傳遞到sdram,為更快的更新信號(hào)狀態(tài),ready信號(hào)采用組合邏輯。

      4? 接口測(cè)試

      測(cè)試方法分別向兩種接口下發(fā)測(cè)試數(shù)據(jù),再讀取數(shù)據(jù)進(jìn)行效驗(yàn)(見(jiàn)圖3、圖4)。測(cè)試數(shù)據(jù)通過(guò)編寫測(cè)試邏輯產(chǎn)生。向axis_fifo_sdram接口下發(fā)1、2、3…10000,10000個(gè)寄存器數(shù)據(jù),數(shù)據(jù)拆分為9幀數(shù)據(jù),后通過(guò)axis_fifo接口讀回來(lái)效驗(yàn)。向axis_bram接口固定地址寫一幀數(shù)據(jù),讀回來(lái)效驗(yàn)。效驗(yàn)方法為,定義一個(gè)出錯(cuò)數(shù)據(jù)寄存器(cnt_erro_fifo、cnt_erro_bram),如果數(shù)據(jù)出錯(cuò),cnt_erro_fifo或者cnt_erro_bram會(huì)進(jìn)行累加。

      測(cè)試結(jié)果:錯(cuò)誤數(shù)據(jù)計(jì)數(shù)器為0,last信號(hào)正確傳遞。

      5? 結(jié)語(yǔ)

      隨著科技的發(fā)展,知識(shí)體系越來(lái)越龐大。在FPGA應(yīng)用設(shè)計(jì)中,利用IP CORE可以大大節(jié)約FPGA工程師開(kāi)發(fā)的周期。對(duì)于沒(méi)有IP CORE資源的,用戶進(jìn)行自定義IP設(shè)計(jì)是必要的。本文主要進(jìn)行了一種物理存儲(chǔ)芯片SDRAM的二次封裝,以更簡(jiǎn)潔更實(shí)用的方式建立用戶接口,以便用戶快速訪問(wèn)外部SDRAM存儲(chǔ)器。

      參考文獻(xiàn)

      [1] 齊佳碩,王洪巖.基于FPGA的SDRAM接口設(shè)計(jì)及實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2018(19):141-144.

      广州市| 石屏县| 乳山市| 汉沽区| 滨州市| 西乌珠穆沁旗| 四川省| 阳原县| 舒城县| 弋阳县| 安陆市| 北京市| 龙游县| 新安县| 六安市| 桐柏县| 天峨县| 格尔木市| 马鞍山市| 阿拉善盟| 剑川县| 成安县| 泰顺县| 荔波县| 广元市| 普安县| 霍林郭勒市| 海兴县| 余江县| 鲁甸县| 砚山县| 辽源市| 蕲春县| 昌乐县| 惠州市| 扶余县| 赤壁市| 永州市| 达尔| 临西县| 荃湾区|