当前位置:   article > 正文

Lattice系列内存时序_lattice tdpram512x10

lattice tdpram512x10

前言

1.三种方式
本文主要是ECP5™系列FPGA设备的内存。
设计人员可以通过三种不同的方式来使用内存原语

方式说明
Clarity Designer– Clarity Designer GUI 允许用户指定所需的内存类型和大小。 Clarity Designer 采用此规范并构造一个网表,通过使用一个或多个内存原语来实现所需的内存。
PMIPMI 允许有经验的用户跳过图形界面,并从 Lattice Diamond® 项目导航器中即时使用可配置内存原语。可以设置 Verilog 或VHDL 所需的参数和控制信号。顶层设计将定义参数并声明信号,因此接口可以在运行期间自动生成黑盒合成。
Instantiation of Memory Primitives(内存原语的实例化)内存原语由顶层模块直接调用并在用户设计中实例化。这是一种高级方法,需要对内存连接和设计接口有透彻的了解。

2.利用内存原语的直接实例化
在设计中使用内存的另一种方法是直接实例化ECP5设备的内存原语,用户必须在EBR
块级别上工作。如果需要具有跨多个模块的内存,则用户需要自己创建级联内存。Lattice 在 Lattice Diamond 软件安装文件夹的 cae_library/synthesis 文件夹下的 VHDL/Verilog 文件中提供了所有原语的详细列表。

例如:在软件Lattice Diamond安装目录下F:\lscc\diamond\3.10_x64\cae_library\simulation\verilog\ecp5u可以看到ecp5u系列的一些Verilog原语。

在这里插入图片描述


3.内存分类

  • 分布式内存块(Distributed Memory Modules)
    • 分布式双端口 RAM (Distributed_DPRAM)
    • 分布式 ROM (Distributed_ROM)
    • 分布式单端口 RAM (Distributed_SPRAM)
  • 嵌入式块内存块(Embedded Block RAM或基于 EBR 的模块)
    • 双端口 RAM (RAM_DP_TRUE)
    • 伪双端口 RAM (RAM_DP)
    • 单端口 RAM (RAM_DQ)
    • 只读存储器 (ROM)
  • FIFO and FIFO_DC(先进先出存储器)
  • 基于 RAM 的移位寄存器( RAM Based Shift Register)

一、单端口RAM(RAM_DQ)

(一)概述

1.Clarity Designer 生成的单端口内存模块
在这里插入图片描述
2.ECP5 器件的单端口 RAM 源语
在这里插入图片描述

3.基于EBR的单端口内存端口定义
在这里插入图片描述

(二)正常模式——-Normal (NORMAL) Mode

1.无寄存输出Q
可以看到时钟上升沿存入/读取数据,数据读取延迟了时间Tco.

:Tco是寄存器发送据时需要的“最小持续(更新)时间”

在这里插入图片描述

2.输出寄存Q
在这里插入图片描述

(三)透写模式——Write Through (WRITETHROUGH) Mode

透写:写入的数据一边写到RAM内核,一边输出到端口。

1.无寄存输出Q
可以看到时钟上升沿存入/读取数据,数据读取延迟了时间Tco.数据写入的内存Address的同时,也端口Q输出了数据。
在这里插入图片描述
2.寄存输出Q
在这里插入图片描述

(四)先读后写模式-—— Read Before Write(READBEFOREWRITE) Mode

注:写操作时,输出端口会将当前写地址的原数据输出。
1.无寄存输出Q
在这里插入图片描述
2.寄存输出Q
在这里插入图片描述

二、真双端口RAM(RAM_DP_TRUE)—基于EBR

(一)概述

1.Clarity Designer 生成的真双端口内存模块
在这里插入图片描述
2.用于 ECP5 器件的真端口 RAM 源语
在这里插入图片描述
3.基于EBR的真双端口内存端口定义
在这里插入图片描述

(二)正常模式——Normal (NORMAL) Mode

1.无寄存输出
在这里插入图片描述
2.寄存输出
在这里插入图片描述

(三)透写模式——Write Through (WRITETHROUGH) Mode

1.不带输出寄存
在这里插入图片描述

2.带输出寄存器
在这里插入图片描述

(四)先读后写模式-—— Read BeforeWrite(READBEFOREWRITE) Mode

1.不带输出寄存
在这里插入图片描述

2.带输出寄存
在这里插入图片描述

三、伪双端口 RAM (RAM_DP) – 基于 EBR

(一)简介

1.Clarity Designer 生成的伪双端口内存模块
在这里插入图片描述
2.ECP5 器件的伪双端口 RAM 源语
在这里插入图片描述
3.基于 EBR 的伪双端口内存端口定义
在这里插入图片描述

(二)时序

  1. 无输出寄存器
  2. 在这里插入图片描述
    2.输出寄存
    在这里插入图片描述

四、只读存储器 (ROM) – 基于 EBR

(一)概述

1.由 Clarity Designer 生成的只读内存模块
在这里插入图片描述

2.基于 EBR 的 ROM 端口定义
在这里插入图片描述

(二)时序

1.无输出寄存器
IROM:internal rom 内部ROM,指的是集成到SoC内部的ROM
在这里插入图片描述
2.有输出寄存
在这里插入图片描述

五、单端口FIFO

(一)概述

1。Clarity Designer 生成的 FIFO 模块
在这里插入图片描述
2.FIFO端口定义
在这里插入图片描述

(二)数据写入时序

1.无寄存器
在这里插入图片描述
在这里插入图片描述

2.不带寄存器
在这里插入图片描述

在这里插入图片描述

(三)数据读取时序

1.不带寄存器
在这里插入图片描述
在这里插入图片描述

2.带寄存器
在这里插入图片描述
在这里插入图片描述

(四)寄存输出Q和读使能RdEn

在这里插入图片描述

六、双端口FIFO(FIFO_DC) – 基于 EBR 或 LUT

(一)概述

1.Clarity Designer 生成的 FIFO_DC 模块
在这里插入图片描述


2.rFIFO_DC端口信号定义
在这里插入图片描述

(二)写时序

1.不带寄存器
在这里插入图片描述
在这里插入图片描述

2.带寄存器
在这里插入图片描述
在这里插入图片描述

(三)读时序

1.不带寄存器
在这里插入图片描述

在这里插入图片描述

2.带寄存器
在这里插入图片描述
在这里插入图片描述

(四)寄存输出Q和RdEn

在这里插入图片描述

七、分布式单端口 RAM (Distributed_SPRAM) – 基于 PFU

(一)概述

1.Clarity Designer 生成的分布式单端口 RAM 模块

在这里插入图片描述
2.用于 ECP5 设备的单端口分布式 RAM 源语
在这里插入图片描述
3.基于 PFU 的分布式单端口 RAM 端口定义
在这里插入图片描述

(二)时序

1.无输出寄存器
在这里插入图片描述
2.有输出寄存器
在这里插入图片描述

八、分布式双端口 RAM (Distributed_DPRAM) – 基于 PFU

(一)概述

1.Clarity Designer 生成的分布式双端口 RAM 模块
在这里插入图片描述
2.用于 ECP5 设备的双端口分布式 RAM 原语
在这里插入图片描述
3.基于 PFU 的分布式双端口 RAM 端口定义
在这里插入图片描述

(二)时序

1.无输出寄存器
在这里插入图片描述
2.带输出寄存器
在这里插入图片描述

九、分布式 ROM (Distributed_ROM) – 基于 PFU

(一)概述

1.Clarity Designer 生成的分布式 ROM
在这里插入图片描述
2.ECP5 设备的分布式 ROM 源语
在这里插入图片描述
3.基于 PFU 的分布式 ROM 端口定义
在这里插入图片描述

(二)时序

1.不带寄存器
在这里插入图片描述

2.带输出寄存器
在这里插入图片描述

参考链接

FPGA下RAM的工作模式

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

闽ICP备14008679号