0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用流水线寄存器实现最佳时序性能方案

YCqV_FPGA_EETre 来源:未知 作者:刘勇 2019-07-26 16:01 次阅读

引言

UltraRAM 原语(也称为 URAM)可在 Xilinx UltraScale +™ 架构中使用,而且可用来高效地实现大容量深存储器。

由于大小和性能方面的要求,通常这类存储器不适合使用其他存储器资源来实现。

URAM 原语具有实现高速内存访问所需的可配置流水线属性和专用级联连接。流水线阶段和级联连接是使用原语上的属性来配置的。

本篇博文描述的是通过将 URAM 矩阵配置为使用流水线寄存器来实现最佳时序性能的方法。

注意:本文由 Pradip K Kar、Satyaprakash Pareek 和 Chaithanya Dudha 共同撰写。

流水线需求:

通过在矩阵结构中连接多个 URAM,从可用的 URAM 原语实现大容量深存储器。

矩阵由 URAM 的行和列组成。一列中的 URAM 使用内置级联电路级联,且多列 URAM 通过外部级联电路互连,这被称为水平级联电路。

作为示例,图 1 示出了针对 64K 深 x 72 位宽存储器的 4x4 URAM 矩阵的矩阵分解。

图 1:4 行 4 列的 URAM 矩阵(可实现 64K 深 72 位宽的存储器)

在没有流水线设计的情况下,深度联结构会导致内存访问出现大的时钟输出延迟。例如,在默认情况下,上述 URAM 矩阵可以达到约 350 MHz。要以更快的速度访问内存,应插入流水线。如果在网表中指定了一定数量的输出时延,Vivado Synthesis 即会自动实现此功能。

指定 RTL 设计中的流水线:

有两种方法可以用来指定 RTL 设计中的流水线的用途,可以通过使用 XPM 流程,也可以通过行为 RTL 来推断内存。

如果 RTL 设计通过 XPM 流程来创建 URAM 内存,则用户可以将对流水线的要求指定为 XPM 实例的参数。参数“READ_LATENCY_A/B”用于捕获内存的时延要求。

可用的流水线阶段数是 LATENCY 值减去 2。例如,如果 Latency 设置为 10,则允许 8 个寄存器阶段用于流水线操作。另外两个寄存器可用来创建 URAM 本身。

图 2:使用 XPM 设置流水线设计

如果用户使用 Vivado 用户指南中提供的模板来编写 RTL,并通过此方法来创建 URAM,那么,他们可以在 URAM 的输出时创建尽可能多的寄存器阶段。唯一的要求是,与数据一起,流水线寄存器的启用也需要流水线化。

图 3:URAM 块输出时的数据及流水线启用规范

图 3 显示数据和流水线的启用

图 4 示出了 RTL 级 RAM 流水线设计示例。

图 4:用来指定数据和流水线启用的 verilog 模板

分析日志文件:

Vivado Synthesis 根据上下文环境和场景发布与 URAM 流水线相关的不同消息。下表说明要在 vivado.log文件中查找的一些消息和要采取的相应操作。

请注意,推荐的流水线阶段基于可实现最高性能(800 MHz+)的完全流水线化的矩阵。此建议不受实际时序约束的限制。

时间性能估计:

下表说明流水线寄存器的数量与可实现的最大估计频率之间的关系。

请注意,实际的时间数仍将取决于最终地点和路线结果。

下列数字基于 speedgrade-2 Virtex® UltraScale+™ 部件以及我们使用 4x4 矩阵实现的 64K x 72 URAM示例工程。

数据路径延迟具有以下一个或多个组件。

Tco = 1.38 ns, Clk To CascadeOut on URAM

Tco = 0.82 ns, Clk To CascadeOut on URAM with OREG=true

Tco = 0.726 ns, Clk to Dataout on URAM with OREG=true, CASCADE_ORDER = LAST

URAM -> URAM级联延迟= 0.2 ns

URAM -> LUT信号网络延迟= 0.3 ns

LUT传输延迟= 0.125 ns

LUT -> LUT信号网络延迟= 0.2 ns

LUT5 -> FF延迟= 0.05

结论:

URAM 原语是创建容量非常大的 RAM 结构的有效方法。它们被设置为易于级联以便在您的设计中创建容量更大的 RAM。

但是,太多这类结构级联在一起可能会通过 RAM 产生很大的延迟。从长远来看,花时间让您的 RAM 完全流水线化会带来很多好处。

URAM 原语是创建容量非常大的 RAM 结构的有效方法。它们被设置为易于级联以便在您的设计中创建容量更大的 RAM。

但是,太多这类结构级联在一起可能会通过 RAM 产生很大的延迟。从长远来看,花时间让您的 RAM 完全流水线化会带来很多好处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5025

    浏览量

    117699
  • 时序设计
    +关注

    关注

    0

    文章

    21

    浏览量

    43899

原文标题:通过在 Vivado Synthesis 中使 URAM 矩阵自动流水线化来实现最佳时序性能

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA时钟约束余量超差问题的解决方案

    就是看看超差的那个线路,增加一些中间寄存器,或者使用流水线技术,就是将组合逻辑和时序逻辑分开,大的时序逻辑,尽量优化成由很多小的时序逻辑组成
    发表于 02-29 12:47 177次阅读
    FPGA时钟约束余量超差问题的解决<b class='flag-5'>方案</b>

    固定式安装工业读码器,助力提高流水线人工上料效率

    在工业生产中,固定式安装工业读码器主要是为了配合流水线、传送带进行高效准确地条码扫描,因此它能为流水线人工上料提供高效的解决方案。通过使用这种二维码识别扫描器,工人可以迅速准确地识别和读取流水
    的头像 发表于 02-27 14:43 93次阅读
    固定式安装工业读码器,助力提高<b class='flag-5'>流水线</b>人工上料效率

    【RISC-V开放架构设计之道|阅读体验】RV64指令集设计的思考以及与流水线设计的逻辑

    的执行过程分解成多个阶段,并在多个阶段并行执行。 RISC-V指令集体系结构的简单性和可扩展性使得它非常适合流水线设计。 RISC-V指令集体系结构的五级流水线设计可以实现较高的性能
    发表于 01-29 10:09

    超级方便的轻量级Python流水线工具

    Mara-pipelines 是一个轻量级的数据转换框架,具有透明和低复杂性的特点。其他特点如下: 基于非常简单的Python代码就能完成流水线开发。 使用 PostgreSQL 作为数据处理引擎
    的头像 发表于 10-31 11:26 351次阅读
    超级方便的轻量级Python<b class='flag-5'>流水线</b>工具

    基于流水线CORDIC算法通用数字调制器的FPGA实现方案

    电子发烧友网站提供《基于流水线CORDIC算法通用数字调制器的FPGA实现方案.pdf》资料免费下载
    发表于 10-27 09:46 0次下载
    基于<b class='flag-5'>流水线</b>CORDIC算法通用数字调制器的FPGA<b class='flag-5'>实现</b><b class='flag-5'>方案</b>

    多周期cpu的设计思想是什么?怎样实现cpu多流水线

    多周期cpu的设计思想是什么?怎样实现cpu多流水线? 多周期cpu的设计思想是针对传统的单周期处理器在执行每条指令时需要花费大量时间等待内存访问,而提出来一种新型的处理器设计思想。多周期cpu可以
    的头像 发表于 10-19 16:53 1396次阅读

    流水线ADC结构解析 流水线ADC和其它ADC的比较

    、分辨率、动态性能和功耗方面有了很大的提高。对于几Msps到100Msps的8位高速和16位低速模数转换器(ADC),流水线已经成为最流行的模数转换器结构,它可以涵盖很广的应用范围,包括CCD成像
    发表于 09-26 10:24 530次阅读
    <b class='flag-5'>流水线</b>ADC结构解析 <b class='flag-5'>流水线</b>ADC和其它ADC的比较

    什么是流水线?ARM处理器流水线简析

    流水线是为了提高效率,能并发同时进行多个任务。
    的头像 发表于 09-05 15:39 1218次阅读
    什么是<b class='flag-5'>流水线</b>?ARM处理器<b class='flag-5'>流水线</b>简析

    流水线Andon安灯呼叫系统是工业4.0转型最佳解决方案

    流水线Andon安灯呼叫系统是工业4.0转型中的最佳解决方案之一。Andon系统可以通过自动化、数据分析等技术应用到制造业中,实现了智能化和自动化生产,提高了生产效率和品质,而且可以通过数据分析优化生产线的运行效率和生产质量。
    的头像 发表于 09-04 11:29 228次阅读
    <b class='flag-5'>流水线</b>Andon安灯呼叫系统是工业4.0转型<b class='flag-5'>最佳解决方案</b>

    制造企业常用的流水线Andon安灯呼叫系统是什么

    制造企业使用的流水线Andon安灯呼叫系统是一种非常实用的生产管理工具,它不仅能够提高生产效率和质量,还可以为企业提供宝贵的数据支持,帮助企业实现持续改进和优化。
    的头像 发表于 08-30 21:14 299次阅读

    新版本Jenkins推荐使用声明式流水线

    stage:和声明式的含义一致,定义流水线的阶段。Stage 块在脚本化流水线语法中是可选的,然而在脚本化流水线实现 stage 块,可以清楚地在 Jenkins UI 界面中显示每
    的头像 发表于 07-20 16:43 467次阅读

    总结一下pipeline流水线设计的关键点

    pipeline流水线设计是一种典型的面积换性能的设计。一方面通过对长功能路径的合理划分,在同一时间内同时并行多个该功能请求,大大提高了某个功能的吞吐率
    发表于 06-27 15:26 1093次阅读
    总结一下pipeline<b class='flag-5'>流水线</b>设计的关键点

    串联式流水线和并联式流水线

    串联式流水线,应该备用几台机器人,能立即刷程序和立即上位。 因为串联式流水线一停机就必须全线停,等你修好了黄花菜都凉了。必须有一套每工位替换的设计。能换机上程序就行。按机器的故障率来说,每100台
    发表于 05-19 18:30

    什么是流水线 Jenkins的流水线详解

    jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkin
    发表于 05-17 16:57 656次阅读

    一个典型的流水线设计

    流水线设计通常可以在一定程度上提升系统的时钟频率,因此常常作为时序性能优化的一种常用技巧。如果某个原本单个时钟周期完成的逻辑功能块可以进一步细分为若干个更小的步骤进行处理,而且整个数据处理过程是单向
    的头像 发表于 05-08 10:55 696次阅读
    一个典型的<b class='flag-5'>流水线</b>设计