基于PSoC3 UDB的異步SRAM讀寫控制[圖]

1 概述

Cypress PSoC3使用基于單循環(huán)流水線的高性能8051內(nèi)核 (67MHz/33MIPS),提供業(yè)界廣泛采用的5.5V至0.5V電壓范圍和低至200nA的休眠電流,可以滿足極低功耗的應(yīng)用場(chǎng)合。PSoC3的高性能模擬子系統(tǒng)和數(shù)字系統(tǒng)都擁有可編程通路,允許將任何模擬或數(shù)字信號(hào)(包括可編程時(shí)鐘)分配到任何通用I/O引腳,這為使用者提供了真正的"系統(tǒng)級(jí)"可編程能力。

PSoC3中SRAM的容量最大為12KB(3個(gè)4KB塊),8051CPU和DMA控制器均可訪問SRAM.如果訪問不同的4KB塊,8051和DMA控制器可同時(shí)訪問SRAM.圖1為PSoC3訪問片上SRAM框圖。

圖1,PSoC3訪問片上SRAM

PSoC3同時(shí)也提供了外部存儲(chǔ)器接口(External Memory Interface, EMIF)用來連接外部的存儲(chǔ)器設(shè)備。它與UDB、I/O端口和其他硬件產(chǎn)生外部存儲(chǔ)器地址和控制信號(hào)。EMIF支持同步和異步存儲(chǔ)器,但在同一時(shí)刻只支持一種存儲(chǔ)器類型。其結(jié)構(gòu)如圖2所示。

圖2,EMIF結(jié)構(gòu)框圖

從圖2可以看出,CPU和DMAC都可訪問SRAM.若數(shù)據(jù)來源于其他外設(shè)比如ADC或者UDB,則數(shù)據(jù)傳輸?shù)絊RAM的速度將受到CPU或DMAC的限制。因此,在這些數(shù)據(jù)來源于外設(shè)并有傳輸速度要求的應(yīng)用中,若采用EMIF可能無法滿足其要求。這時(shí)可用PSoC3的UDB實(shí)現(xiàn)SRAM的讀寫控制,以實(shí)現(xiàn)與外設(shè)數(shù)據(jù)直連。

UDB(Universal Digital Blocks)是PSoC3可編程數(shù)字系統(tǒng)的核心功能,由可編程邏輯PLD、結(jié)構(gòu)邏輯(Data path)和靈活的布線資源提供在這些元件、I/O連接和其他外設(shè)之間的互聯(lián),可以創(chuàng)建各種通用外設(shè)和定制化功能。PSoC3的數(shù)字邏輯部分由多個(gè)UDB通過矩陣和可編程互聯(lián)組成,UDB結(jié)構(gòu)如圖3所示。

圖3, UDB結(jié)構(gòu)示意圖

2 SRAM接口模塊設(shè)計(jì)

采用PSoC3的UDB 實(shí)現(xiàn)對(duì)SRAM的讀寫,就是在PSoC3的UDB中,用Verilog語言設(shè)計(jì)PSoC3的端口時(shí)序以滿足SRAM讀寫的要求,下面以CyprESS的SRAM CY7C1069AV33為例介紹PSoC3 SRAM接口的設(shè)計(jì)過程。

1) PSoC3 與CY7C1069AV33的硬件連接。

PSoC3與CY7C1069AV33的硬件連接框圖如圖4所示:

圖4,硬件連接框圖

PSoC3的具體引腳分配如表一所示:

表一,PSoC3 SRAM控制引腳分配

2) CY7C1069AV33讀寫時(shí)序。

CY7C1069AV33是Cypress生產(chǎn)的2M Bytes 8Bit位寬的高速異步SRAM,支持高速的隨機(jī)讀寫操作。它有21根地址線A0~A20,8根數(shù)據(jù)線D0~D7以及一些控制信號(hào)線CE1、CE2、WE和OE.

圖5為CY7C1069AV33讀時(shí)序,其中置CE1=VIL,CE2=VIH,WE=VIH.

圖5, CY7C1069AV33讀時(shí)序圖

圖6為寫時(shí)序,其中置OE為低電平。

圖6, CY7C1069AV33寫時(shí)序圖

3) 基于PSoC3 UDB 的SRAM模塊設(shè)計(jì)。

在SRAM讀寫過程中,一共使用了3個(gè)主要模塊,這些模塊是在PSoC Creator中生成的。addrGen模塊是產(chǎn)生SRAM讀寫所需要的時(shí)序,包括地址線、數(shù)據(jù)線和控制信號(hào)線時(shí)序。FIFO_Unit模塊是采用PSoC3 Datapath里的數(shù)據(jù)FIFO保存從SRAM里讀過來的數(shù)據(jù),作為臨時(shí)緩沖。LatchRise模塊類似DFF觸發(fā)器,用于鎖存信號(hào)的上升沿。

  這里重點(diǎn)介紹一下addrGen模塊在PSoC3 UDB中的Verilog設(shè)計(jì)。

模塊接口定義:

起始地址參數(shù)傳遞,在PSoC3中CPU可以通過控制寄存器來傳遞參數(shù)到UDB中。下面的示例代碼為傳遞一個(gè)21bits的起始地址到UDB中。

4) PSoC Creator中SRAM 讀寫原理圖。

圖7,讀SRAM原理圖

En_R_Reg是控制寄存器,用來啟動(dòng)SRAM讀操作。地址、數(shù)據(jù)及控制信號(hào)由圖8產(chǎn)生。當(dāng)讀完8bytes數(shù)據(jù)存放在Datapath的FIFO中后,F(xiàn)IFO_Unit模塊會(huì)產(chǎn)生FIFO 滿(full)信號(hào),LatchRise將鎖存該上升沿信號(hào)并置Read_En信號(hào)為低。這時(shí)CPU可將數(shù)據(jù)從UDB的FIFO中讀出。然后再復(fù)位LatchRise模塊繼續(xù)讀SRAM操作。

圖8,SRAM地址數(shù)據(jù)產(chǎn)生原理圖

Pin_W_Din為8位外部數(shù)據(jù)輸入,當(dāng)執(zhí)行讀操作時(shí)Read_En和Read_Clk有效,并置Mode_Select=1;當(dāng)執(zhí)行寫操作時(shí)Pin_W_En和Pin_W_Clk有效,并置Mode_Select=0.

3 SRAM模塊測(cè)試

經(jīng)測(cè)試,該模塊工作正常,當(dāng)數(shù)據(jù)從外部模塊輸入時(shí)其最高寫SRAM速度可達(dá)20MHz,用邏輯分析儀測(cè)量SRAM模塊的部分引腳信號(hào)如圖9所示:

圖9,SRAM模塊部分引腳信號(hào)圖

從上圖可以看出,輸入信號(hào)經(jīng)過PSoC3 UDB后是有些延時(shí)的,大約21ns左右。這是在去除輸入引腳的同步功能后得到的延時(shí),輸入引腳的同步配置如圖10所示:

圖10,輸入引腳同步配置

若在輸入引腳配置上選擇"Input SynchrONized",則上面延時(shí)可能達(dá)到45ns,因此在設(shè)計(jì)時(shí)需要考慮到這些信號(hào)的延時(shí)。

來源:電子工程專輯


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動(dòng):6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息