没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
31页
基于深度学习的Block RAM核的功能简介和应用说明,具体章节内容安排如下:Xilinx FPGA内部的存储资源和典型应用;BlockRAM硬核的内部结构和接口信号进行详细说明;ROM核的生成和使用,以及对应的COE文件的解释;RAM核的生成,举例说明RAM核的接口信号时序;介绍FIFO核的生成,举例说明 FIFO核的接口信号时序。Block RAM 硬核是Xilinx FPGA内部重要的缓存资源,可用于数据内容的长时间或临时存储,在FPGA开发中经常用于生成ROM、RAM、FIFO和CAM等存储类IP核。本文重点介绍了Virtex-6FPGA中Block RAM硬核的内部结构、接口信号和基本属性。本文分别给出了ROM、RAM和FIFO核的生成过程,并解释了coe文件格式,演示了上述3种IP核的仿真应用实验。
资源推荐
资源详情
资源评论
Block RAM 核的功能简介和应用说明
Block RAM 核作为 Xilinx FPGA 内部的重要缓存资源,可以生成 ROM、RAM、FIFO 和 CAM
等存储器,在 FPGA 开发中应用广泛。本文主要对 BlockRAM 硬核的内部结构、接口时序和
生成进行说明。
1 Xilinx FPGA 器件内部存储资源介绍
1.1
基于
Block RAM
的
IP
核简介
Xilinx FPGA 内部的 BlockRAM 硬核可用于数据内容的长时间或临时存储。Block RAM 在
ilinx Spartan-2 系列中首次启用。随着器件工艺水平和用户需求的不断增加, FPGA 内部的
BlockRAM 容量从最初的 16Kb 提高到了 5000Kb 以上。从 Virtex-5 系列开始,单个 RAM 硬核
的存储规模已经从 18Kb 增加到 36Kb,即由两个 18kb 存储器构成。在简单双口模式中的数
据宽度从 36 位增加到 72 位,单口 RAM 的带宽提高了一倍。Virtex-6 系列 FPGA 中嵌入 Block
RAM 硬核可以配置成独立的 36KbBlock RAM 使用,或配置成两个独立的 18Kb RAM 分开使用。
以 Block RAM 硬核作为基础缓存资源,根据用户需求在 XilinxCORE Generator 工具下例化生
成单端口 ROM、双端口 ROM、单端口 RAM、双端口 RAM、内容可寻址存储器(CAM)、FIFO
存储器,其中 FIFO 包括同步 FIFO、异步 FIFO 和数据宽度转换 FIFO 等。
1.1.1 单端口和双端口 ROM 功能简述
ROM(Read Only Memory,只读存储器)IP 核是只有数据读取接口,没有数据写入功能的
存储器。通过对 ROM 导入初始配置文件,可以给 ROM 内部的各个地址赋初值,用户再通
过地址接口读取 ROM 对应地址存储的数据。在 ROM 使用过程中,读各地址输出的数据不
变,除非导入新的初始配置文件改变对应地址的内容。Block RAM 资源可以例化为单端口
ROM 或双端口 ROM,如图 1 所示。单端口 ROM 只提供一个端口的读取控制信号,数据输
出端只有 DOUTA 一个接口,如图 3-1(a)所示:双端口 ROM 包括两组数据读取控制信号,且两
组信号可以分别独立控制,存在两个不同的数据输出接口,如图 3-1(b)所示。生成单端口 ROM
与双端口 ROM 占用的资源是相同的,其中 A 接口与 B 接口共享 36Kb 存储资源。可将单端
口 ROM 视为双端口 ROM 的简化版。
图 1 单端口 ROM 与双端口 ROM 示意图
1.1.2 单端口和双端口 RAM 功能简述
RAM(Random Access Memory
,随机存储器
)
中的数据既可通过类似于
ROM
的初始配置
文件导入,也可通过
RAM
的写输入接口对各地址写入数据。
RAMIP
核分为单端口
RAM
、简
单双端口
RAM
和真双端口
RAM
。单端口
RAM
与单端口
ROM
的结构较为类似,只有一套数
据存储处理接口,读
/
写操作复用同一个接口,支持数据的在线写入功能,另外单口
RAM
的
读指令和写指令其享地址线和数据线,如图
2
所示。
图 2 单端口 RAM
简单双端口
RAM
提供了
A
和
B
两个接口,数据写操作可以通过
A
口完成,数据读操作
可通过
B
口完成
;
简单双端口
RAM
的读
/
写操作可以独立完成,其接口带宽比单端口
RAM
提
高一倍。
Virtex-6
简单双端口
RAM
示意图如图
3
所示。简单双端口
RAM
的
A
和
B
接口同时
对同一个地址操作时涉及读
/
写冲突,可以在生成
RAMIP
核时设置
READ FIRST
、
WRITE_FIRST
或
NO_CHANGE
三种模式,根据设定的模式决定读接口在写操作发生时如何进行读处理。
表 3 简单双端口
真双端口 RAM 存储器由 A 和 B 两个完全独立的访问接口组成,A 和 B 接口信号完全对
称,独立支持数据的读/写操作,数据存储功能同简单双端口 RAM。真双端口 RAM 示意图
如图 4 所示。真双端口 RAM 存在 A 和 B 两接口同时向同一个地址写入数据而发生写冲突的
情况,导致写入的存储内容不确定,因而对 A 和 B 两接口的写过程需要相应的逻辑控制,
避免两接口同时向同一个地址写入数据。
表 4 真双端口
1.1.3 FIFO 功能简述
FIFO
是英文
First In First Out
的缩写,是一种先进先出的数据缓存器,对用户屏蔽了内
部的读
/
写地址指针,
FIFO
的用户接口只提供数据总线、读
/
写使能信号及
FIFO
的空
/
满状态
信号,如图
5
所示。根据
FIFO
的出入接口是否采用相同的时钟,分为同步
FIFO
和异步
FIFO
,
同步
FIFO
的读
/
写操作采用同一时钟,异步
FIFO
的读
/
写操作采用不同时钟。针对不同速率
模块之间的数据传输,以
FIFO
作为缓冲器可以进行调节。同步
FIFO
的读时钟和写时钟为同
一个时钟,在时钟沿来临时同时发生读
/
写操作。多时钟域系统往往含有数个不同频率的时
钟,可以使用异步
FIFO
隔离各个时钟域信号,优化信号时序。
图 5 FIFO 的示意图
1.1.4 内容可寻址存储器功能简述
内容可寻址存储器
(Content Addressable Memory
,
CAM)
是一种专门为快速查找数据地址
而设计的并行比较处理器,基于硬件电路实现快速匹配,通过把输入数据与
RAM
中所存数
据进行比较
,
快速确定输入数据是否与内部存储的某个数据或多个数据相匹配,并返回配置
数据所存储的地址信息。
CAM
的并行处理特性使其在路由器转发引擎、模式识别和数据分
类等领域受到广泛应用。随着
XilinxFPGA
中逻辑单元和
RAM
资源的不断增加,可以基于
RAM
资源和逻辑资源生成
CAMIP
核,且
CAM
的存储空间越来越大。基于
FPGA
生成
CAM IP
核在
网络应用中尤其广泛,通常实现
IP
转发引擎或接入控制列表
(ACL)
。在大学生信息安全竞赛
中使用的
NETFPGA
板卡,都涉及利用
FPGA
生成
CAMIP
核进行报文处理
,
如图
6
所示是典型
的基于
CAM
实现数据、包
IP
层转发处理的结构框图。
图 6 基于 CAM 实现数据包 IP 层转发处理的结构框图
剩余30页未读,继续阅读
资源评论
icysmile131
- 粉丝: 3124
- 资源: 111
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功