Skip to content
字数
1284 字
阅读时间
6 分钟

一、从设备SRAM及工作原理介绍

static ram静态存储器,无需刷新电路即能保存内部存储数据 1、举例: 当中11位是行地址,另外11位是列地址,这是通过RAM地址接口进行分离的。 行地址解码器(row decoder)将会首先确定行地址,然后列地址解码器(column decoder)将会确定列地址,这样就能确定唯一的存储数据的位置,然后该数据就会通过RAM数据接口将数据传到数据总线。 另外,须要注意的是,RAM内部存储信息的矩阵并非一个正方形的,也就是行和列的数目不是同样的--行的数目比列的数目少(DRAM)。

2、真值表解释: 第二行:out为低,读数据 第五行:写信号为低,写数据

3、写时序

4、读时序

二、主设备DSP6713的LocalBus

DSP6713是美国TI推出的C6000系列DSP芯片,款式较老,比较典型。32位高速浮点型DSP,时钟最高频率为200MHz。 现在大多数都用国产芯片替代了。

Local Bus可以理解为,本地总线。在板内的一条总线,绝大多数情况下不需要引出,和板内其他芯片进行沟通的一条总线。

以6713为例资源介绍: EMIF:LocalBus总线 EDMA: HPI:给主控器留了一个控制接口,ARM和DSP之间的通信接口,ARM既可以为主也可以为从

实现路径: DSP通过LocalBus总线连接FPGA,再通过FPGA扩展外设。

6713EMIF总线图

LocalBus总线基本上就是一个标准的SRAM读写总线(并行)

EMIF的写时序EMIF的读时序

对于顶层而言的SRAM读写的测试程序

三、FPGA对EMIF的时序译码

关于片选 程序里读数据是片选2,写数据是片选3,那么片选是如何实现的呢? 手册里四个片选对应四个地址空间,分到不同的地址空间上。 89AB代表片选,A000 0000相当于基地址 如果想要往地址0x04000传输数据,则是基地址+地址=0xA000 4000

四、如何使用高位地址扩展片选

6713有4个片选,CS0连ADRAM,CS1连外部Flash,CS2、CS3可自定义

举例:6713接两个串口控制器82C52

问题:如果想接4个82C52怎么办?使用38译码器74HC138进行片选 用地址线中的A6-A4接到38译码器的输入端 4片82C52分别接到了Y0,Y1,Y3,Y5上, 对应74HC380的选通为000,001,011,101 对应DSP的选通地址为000xx,001xx,011xx,101xx 举例: 选通2号82C52,往里面写入数据 因为没有用到片选,所以write(0xa000 000c)或者(0xb000 000c)都可以操作2号82C52的第0个寄存器 (c对应的是1100,所以对应011xx就是2号82C52)

五、芯片片选扩展示例

上面用的是4片82C52,其实可以用一片XR16C854直接实现一个芯片4串口功能。

如何解决片选问题:

六、FPGA在LocalBus总线上扩片选应用

最终,落脚到FPGA上,谨记一句话,只要数字芯片能实现的,FPGA都是能实现的。 使用FPGA进行片选,其实就是用FPGA实现译码器,例如16片选,则实现4-16译码器 FPGA上如何实现译码器(A19未用到)

七、实现对FPGA内部逻辑块的控制

数字芯片能实现的,FPGA都能实现,那么可以把82C52做到FPGA内。

贡献者

The avatar of contributor named as dz13718198068 dz13718198068

文件历史

撰写