基于PSoC3 UDB的异步SRAM读写控制[图]

1 概述

Cypress PSoC3使用基于单循环流水线的高性能8051内核 (67MHz/33MIPS),提供业界广泛采用的5.5V至0.5V电压范围和低至200nA的休眠电流,可以满足极低功耗的应用场合。PSoC3的高性能模拟子系统和数字系统都拥有可编程通路,允许将任何模拟或数字信号(包括可编程时钟)分配到任何通用I/O引脚,这为使用者提供了真正的"系统级"可编程能力。

PSoC3中SRAM的容量最大为12KB(3个4KB块),8051CPU和DMA控制器均可访问SRAM.如果访问不同的4KB块,8051和DMA控制器可同时访问SRAM.图1为PSoC3访问片上SRAM框图。

图1,PSoC3访问片上SRAM

PSoC3同时也提供了外部存储器接口(External Memory Interface, EMIF)用来连接外部的存储器设备。它与UDB、I/O端口和其他硬件产生外部存储器地址和控制信号。EMIF支持同步和异步存储器,但在同一时刻只支持一种存储器类型。其结构如图2所示。

图2,EMIF结构框图

从图2可以看出,CPU和DMAC都可访问SRAM.若数据来源于其他外设比如ADC或者UDB,则数据传输到SRAM的速度将受到CPU或DMAC的限制。因此,在这些数据来源于外设并有传输速度要求的应用中,若采用EMIF可能无法满足其要求。这时可用PSoC3的UDB实现SRAM的读写控制,以实现与外设数据直连。

UDB(Universal Digital Blocks)是PSoC3可编程数字系统的核心功能,由可编程逻辑PLD、结构逻辑(Data path)和灵活的布线资源提供在这些元件、I/O连接和其他外设之间的互联,可以创建各种通用外设和定制化功能。PSoC3的数字逻辑部分由多个UDB通过矩阵和可编程互联组成,UDB结构如图3所示。

图3, UDB结构示意图

2 SRAM接口模块设计

采用PSoC3的UDB 实现对SRAM的读写,就是在PSoC3的UDB中,用Verilog语言设计PSoC3的端口时序以满足SRAM读写的要求,下面以CyprESS的SRAM CY7C1069AV33为例介绍PSoC3 SRAM接口的设计过程。

1) PSoC3 与CY7C1069AV33的硬件连接。

PSoC3与CY7C1069AV33的硬件连接框图如图4所示:

图4,硬件连接框图

PSoC3的具体引脚分配如表一所示:

表一,PSoC3 SRAM控制引脚分配

2) CY7C1069AV33读写时序。

CY7C1069AV33是Cypress生产的2M Bytes 8Bit位宽的高速异步SRAM,支持高速的随机读写操作。它有21根地址线A0~A20,8根数据线D0~D7以及一些控制信号线CE1、CE2、WE和OE.

图5为CY7C1069AV33读时序,其中置CE1=VIL,CE2=VIH,WE=VIH.

图5, CY7C1069AV33读时序图

图6为写时序,其中置OE为低电平。

图6, CY7C1069AV33写时序图

3) 基于PSoC3 UDB 的SRAM模块设计。

在SRAM读写过程中,一共使用了3个主要模块,这些模块是在PSoC Creator中生成的。addrGen模块是产生SRAM读写所需要的时序,包括地址线、数据线和控制信号线时序。FIFO_Unit模块是采用PSoC3 Datapath里的数据FIFO保存从SRAM里读过来的数据,作为临时缓冲。LatchRise模块类似DFF触发器,用于锁存信号的上升沿。

  这里重点介绍一下addrGen模块在PSoC3 UDB中的Verilog设计。

模块接口定义:

起始地址参数传递,在PSoC3中CPU可以通过控制寄存器来传递参数到UDB中。下面的示例代码为传递一个21bits的起始地址到UDB中。

4) PSoC Creator中SRAM 读写原理图。

图7,读SRAM原理图

En_R_Reg是控制寄存器,用来启动SRAM读操作。地址、数据及控制信号由图8产生。当读完8bytes数据存放在Datapath的FIFO中后,FIFO_Unit模块会产生FIFO 满(full)信号,LatchRise将锁存该上升沿信号并置Read_En信号为低。这时CPU可将数据从UDB的FIFO中读出。然后再复位LatchRise模块继续读SRAM操作。

图8,SRAM地址数据产生原理图

Pin_W_Din为8位外部数据输入,当执行读操作时Read_En和Read_Clk有效,并置Mode_Select=1;当执行写操作时Pin_W_En和Pin_W_Clk有效,并置Mode_Select=0.

3 SRAM模块测试

经测试,该模块工作正常,当数据从外部模块输入时其最高写SRAM速度可达20MHz,用逻辑分析仪测量SRAM模块的部分引脚信号如图9所示:

图9,SRAM模块部分引脚信号图

从上图可以看出,输入信号经过PSoC3 UDB后是有些延时的,大约21ns左右。这是在去除输入引脚的同步功能后得到的延时,输入引脚的同步配置如图10所示:

图10,输入引脚同步配置

若在输入引脚配置上选择"Input SynchrONized",则上面延时可能达到45ns,因此在设计时需要考虑到这些信号的延时。

来源:电子工程专辑


微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“YD5GAI”免费领取《中国移动:5G网络AI应用典型场景技术解决方案白皮书
  • 2、回复“5G6G”免费领取《5G_6G毫米波测试技术白皮书-2022_03-21
  • 3、回复“YD6G”免费领取《中国移动:6G至简无线接入网白皮书
  • 4、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 5、回复“ZGDX”免费领取《中国电信5GNTN技术白皮书
  • 6、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 7、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 8、回复“5GX3”免费领取《R1623501-g605G的系统架构1
  • 本周热点本月热点

     

      最热通信招聘

      最新招聘信息

    最新技术文章

    最新论坛贴子