当前位置:   article > 正文

上海安路科技的PH1系列FPGA的内部BRAM资源介绍_ph1a100gcg324

ph1a100gcg324

上海安路科技的PH1系列的内部BRAM资源介绍

1,PH1 系列 FPGA 底层由 I/O、PLL、ERAM、DSP、PLB、PMB、SERDES、PCIE、CONFIG 等模块

构成,具体 PH1A100 器件结构如图 2-1 所示:

在这里插入图片描述

2,嵌入式存储器模块(ERAM

PH1 系列 FPGA,每个 ERAM SLICE 包含两个独立的 ERAM20K 以及一个 FIFO 控制器。具体架构

框图如图 2-2- 1 所示,每个 ERAM SLICE 可以实现:

2 个 ERAM20K

1 个 FIFO20K,1 个 ERAM20K

1 个 FIFO40K(位宽=2~80)

在这里插入图片描述

ERAM20K 功能

ERAM20K 每块容量 20Kbits**,可实现:**

单口 RAM/ROM

双口 RAM

简单双口 RAM(也称为伪双口 SDP

FIFO(ERAM SLICE 内嵌有硬件 FIFO 控制器,支持实时深度指示与 Read Ahead 模式)

ERAM20K 模块支持的功能特色有:

A/B 口时钟独立

可单独配置 A/B 口数据位宽,真双口从 x1 到 x20,支持 x40 简单双口(一写一读)

写操作时带有字节使能(Byte Enable)控制 输出锁存器/锁存器可选择

支持 RAM/ROM 模式下数据初始化(通过初始化文件在配置过程中对 ERAM20K 数据初始化)

支持多种写操作模式。只写(Write Disable Read),先读后写(Read Before Write),写穿通 (Write Before Read)三种模式。

3,各种模式介绍:

下面分别介绍各种模式下操作;

因为其FIFO和RAM与之前使用的Altera的CyClone系列和Xilinx的Spartan系列的FIFO 和RAM配置及使用方法不一样;所以这里我使用Modelsim对各个模块进行仿真测试一下,记录其使用方法,避免后期忘记;

FIFO:

其中的fifo_wrpointer和fifo_rdpointer分别是写入的数据计数和读出的数据计数;这里和fifo_wrused和fifo_rdused有很大的区别;

fifo_wrpointer:代表写入fifo中有多少个数据,持续计数,计数到最大值后自动溢出后开始从0开始继续计数;

fifo_rdpointer:同上,代表从fifo中读取了多少个数据,持续计数,计数到最大值后自动溢出后开始从0开始继续计数;

fifo_wrused:代表fifo中共计被占用了多少空间;当数据被读出后,此计数值会自动减少;

fifo_rdused:同上;

在这里插入图片描述

RAMFIFO:

在这里插入图片描述

不管是FIFO还是RAMFIFO都不支持读写不同的时钟,因此在程序中如果是使用两个不同的时钟进行数据转换,不能使用FIFO来进行缓存然后进行数据的时钟转换,只能使用RAM进行读写切换;DRAM也不支持不同的读写时钟;

DRAM:

在这里插入图片描述

RAM:

如果想使用读写不同的时钟,只能采用RAM的方式;

在这里插入图片描述

各模块的modelsim的时序仿真图如下所示;

在这里插入图片描述

工程代码下载地址:
源码下载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/489591
推荐阅读
相关标签
  

闽ICP备14008679号