第1节 FPGA设计中的附加资源
第1节 FPGA设计中的附加资源
存储单元
- FPGA中RAM、ROM、CAM的存储单元的设计有其自身规律和特点;
--RAM是根据地址读、写数据的存储单元;
--在FPGA中没有专用的ROM硬件资源,实现ROM的方法是:对RAM赋初值,并保持该初值;
--CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。CAM的应用也非常广泛,比如在路由器中的地址表等。
- FPGA中与存储单元相关的资源有三类:Block RAM、LUT、Register,这三种资源都可以被综合实现为存储单元。
- Block RAM即块RAM,是FPGA中内嵌的存储单元,可以配置为单口/双口RAM、ROM、CAM、FIFO等。
- 绝大多数FPGA都是基于触发器(FF)和查找表(LUT)结构的。这两种基本资源都可以综合为RAM等存储单元。
比较小,速度高的存储结构可以用寄存器资源实现;相对大一些,时序余量宽松的存储单元可以用LUT实现。
- 目前很多综合工具支持类推RAM、ROM、CAM等存储单元使用Block RAM、Register,或者LUT资源。
- 合理、高效的使用Block RAM资源:
--使用Block RAM资源,可以节约更多的FF和LUT等可编程逻辑资源,最大程度发挥所选器件效能,节约成本;
--Block RAM是一种可以配置的硬件结构,其可靠性和速度与用LUT和Register构建的存储器更有优势。
- 分布式RAM资源的使用:
--目前FPGA的底层可编程单元基本都是由LUT和FF构成的,其工艺基于SRAM结构。
--Xilinx基于SRAM结构的4-LUT,相当于深度为16宽度为1bit RAM。由于这种小RAM分布于每个FPGA的底层可编程单元,所以被成为分布式RAM。
--Lattice的ispXPGA也可以将底层可配置单元综合成distributed RAM。分布式RAM的存于FPGA可编程单元之内,到底可编程逻辑的路径最短,非常易于实现灵活、高速、小容量的数据缓冲、FIFO等。
- 存储单元的三种基本生成方法:
--直接在HDL代码中描述:
-直接用HDL代码描述这些存储单元的模型,然后让综合器综合类推。(综合结果不确定)
-直接调用器件商提供的与这些存储单元相关的硬件原语。(需要了解各厂商的原语)
--使用综合约束属性指导综合器类推RAM等存储单元:
-设计者必须熟悉器件结构和综合软件的约束属性。
--使用EDA软件提供的IP Core实现。(推荐)
-简单,高效
全局时钟资源和锁相环
- 全局时钟布线资源:
--一般使用特殊工艺实现(如全铜层),并设计了专用时钟缓冲和驱动结构,使全局时钟在芯片内部的延时和抖动最小;
--第二全局时钟资源,即长线资源,其长度和驱动能力仅次于全局时钟资源,但数量更丰富一些;
- 时钟管理资源
--目前大多数FPGA内部具有锁相环PLL或延迟锁相环DLL,甚至是数字时钟管理单元DCM,用来完成时钟的高精度、低抖动的倍频、分频、占空比调整等操作。

全局复位/置位信号
- 与具体器件有关。有的器件推荐使用全局复位/置位信号;有的器件中,使用全局时钟资源或第二时钟资源做复位/置位操作更好。
- 全局复位/置位信号的抖动和延时可能较大,速度慢,甚至会导致逻辑错误,不像全局时钟资源是推荐使用的全局资源。因此在使用前必须确定所设计的系统是否真正需要全局复位/置位信号。确定器件是否推荐使用全局复位/置位信号。
高速串行收发器
- 并行数据传输:
--多根线,占用电路板面积;
--线间电磁干扰;
--每根线信号同步(相位一致)。
- 串行数据传输:
--占用电路板的面积小;
--信号线间的干扰小;
--没有多根数据线之间相位差的问题;
--传输速度高,使用方便,性能稳定。





<<上一节 下一节>>