FPGA中的速度优化

一、逻辑设计中的速度概念

逻辑设计速度相关的概念有三个:设计吞吐量、设计延时和设计时序。速度优化策略而言,吞吐量需要提高,延时应该降低,时序应该收敛(时序余量slave越大,收敛越强,移植性越好)。吞吐量提高的方法一般是采用大的并行设计,延时降低的方法则是采用缓存结构或者并行结构,时序收敛则需要综合考虑。

二、时序收敛的早期考虑

问题发现的越早,解决的成本越低。时序收敛考虑地越早,后面可能的问题就会越少。

先看一下标准FPGA设计流程:

(1)制定设计指导文件

(2)设计功能代码

(3)进行功能仿真

(4)编译设计

(5)时序分析

(6)时序调整直至时序收敛

在设计之初,大部分考虑都集中在如何实现功能上,而容易忽略时序问题。在制定指导文件时,应该建立时序收敛的概念,最好能提前对某些信号转换区给出时序约束图,通过设计提前消除隐患。

三、时序收敛的设计考虑

设计中,也就是得到时序分析报告后所需要的措施。时序分析报告会给出最大时钟频率的报告,这个参数直接决定了电路的时序收敛等级(频率越高,收敛越好)。整个设计中的考虑也是依靠对这个参数的优化来展开的。最大时钟频率相关参数有五个:

Tclk-q:时钟到达启动触发器时钟端,数据到达Q端(也就是触发器输出端)的延时,。

Tlogic:启动触发器和锁存触发器之间的延时

Trouting:布线延时,这个是EDA工具调整时序收敛常改变的参数。

Tsetup:建立时间,数据到达锁存触发器D端,时钟最快到达时间。

Tsekw:时钟偏斜,时钟到达启动触发器和锁存触发器之间的延时。

这五个参数中只有最后一个是正相关,其他都是负相关。所有在某些设计中,会人为制造Tskew来满足高速时序收敛。

四、时序收敛的总体考虑

总体考虑的基本原则:

①提前规划,有备无患②实时对应门级层次③预先计算资源用量,选择合适器件④并行原则,同步原则

具体优化方法则是需要在设计中一一验证。

(1)在关键路径上减少组合逻辑

关键路径,就是时序收敛最差的路径。这里是典型的水桶效应,将别的长木板锯下来补足短板,可以有效提高某些关键短板导致的收敛问题。减少组合逻辑,也就是减少Tlogic。至于如何减少,就根据逻辑表达式增加并行结构了,调整位置有时也可以做到。

(2)适当加入逻辑复制

逻辑复制,就是将一个信号作为多个输入改为若干个复制信号作为多个输入,从而减低扇出。扇出对逻辑延时的影响就好像工人工作时间对工作量的影响,要求工人必须同时开始同时结束,必然导致整体效率下降,增加工作时间的灵活性可以缓解工作压力。当然,逻辑复制也会增加资源消耗。寄存器逻辑复制不能解决内部寄存器的时序,但可以优化寄存器之间的时序。组合逻辑复制同样可以优化这逻辑之间的时序关系。而且,逻辑复制可以在布局布线层次上实现更好地效果,缓解面积紧张。

(3)在组合逻辑中加入寄存器

组合逻辑延时过大,会直接降低最大时钟频率,这时候在组合逻辑中间插入寄存器暂存,可以让数据歇一会,从而缓解时序紧张。也是降低逻辑延时的一种方法。

(4)寄存器平衡优化

常见的平衡优化有操作符平衡,就是使用括号将操作符尽量实现对称来保证硬件结构上的对称,进而减少关键路径的长度。

寄存器平衡,在Altera中被定义为寄存器重定时,通过移动关键路径和相邻路径上的组合逻辑来实现时序性能的提高

(5)并行结构优化

就是尽可能将输入应用起来。

(6)消除优先级

优先级,在if语句中体现尤为明显,对于选择结构,可以不考虑优先级,就可以使用case来编写,消除优先级,进而提高时序收敛性。

五、小结

时序收敛是时序是否符合要求的体现,掌握代码设计时的时序收敛方法是重要的。

FPGA中的速度优化的更多相关文章

  1. FPGA中改善时序性能的方法_advanced FPGA design

    本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一 ...

  2. web访问速度优化分析

    请求从发出到接收完成一共经历了DNS Lookup.Connecting.Blocking.Sending.Waiting和Receiving六个阶段,时间共计38ms.请求完成之后是DOM加载和页面 ...

  3. 【转】关于FPGA中建立时间和保持时间的探讨

      时钟是整个电路最重要.最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错:因而明确FPGA设计中决定系统时钟的因素,尽 ...

  4. 【原创】Webpack构建中hash的优化

    背景: SPA的vue应用,采用webpack2构建,打包入口为main.js 输出:main模块打包成app.js,公共lib打包成vendor.js,公共样式打包成app.css,运行时依赖打包成 ...

  5. Tone Mapping算法系列二:一种自适应对数映射的高对比度图像显示技术及其速度优化。

    办公室今天停电,幸好本本还有电,同事们好多都去打麻将去了,话说麻将这东西玩起来也还是有味的,不过我感觉我是输了不舒服,赢了替输的人不舒服,所以干脆拜别麻坛四五年了,在办公室一个人整理下好久前的一片论文 ...

  6. FPGA中IBERT核的应用(转)

    https://wenku.baidu.com/view/50a12d8b9ec3d5bbfd0a74f7.html (必看)    摘要 IBERT即集成式比特误码率测试仪,是Xilinx专门用于具 ...

  7. 记一次cocos项目的加载速度优化

    半个月前,我们用cosos creator做了一个简单的小游戏,也许算不上小游戏吧..一边学cocos,一边做,几经波折后终于上线了.然鹅,功能是实现了,但是加载速度十分感人(毕竟没经验嘛,无辜脸). ...

  8. 在 Android开发中,性能优化策略十分重要

    在 Android开发中,性能优化策略十分重要本文主要讲解性能优化中的布局优化,希望你们会喜欢.目录 示意图 1. 影响的性能 布局性能的好坏 主要影响 :Android应用中的页面显示速度 2. 如 ...

  9. (转)网站速度优化技巧:Nginx设置js、css过期时间

    网站速度优化技巧:Nginx设置js.css过期时间 原文:http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for ...

  10. 详解Oracle数据货场中三种优化:分区、维度和物化视图

    转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...

随机推荐

  1. Wireguard笔记(三) lan-to-lan子网穿透和多网段并存

    目录 Wireguard笔记(一) 节点安装配置和参数说明 Wireguard笔记(二) 命令行操作 Wireguard笔记(三) lan-to-lan子网穿透和多网段并存 多 Wireguard 服 ...

  2. 将字符串"a,b,c"以逗号分隔转换为数组并打印

    主要利用了String的split方法. package com.dylan.test; /** * @author xusucheng * @create 2017-12-22 **/ public ...

  3. Modbus协议入门

    1.Modbus协议是不是开源的,免费的? 标准.开放,用户可以免费.放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权. 2.怎么传输,有线还是无线? 既可以有线传输如双绞线.光纤, ...

  4. win32-Transparent的使用

    这个api的功能主要是实现"透明" 原理: Transparent将hdc中bmp的特定颜色"透明化" #include <Windows.h> # ...

  5. android 逆向笔记

    壳检测工具 GDA 2. 逆向分析APP 一般流程 1. 使用自动化检测工具检测APP是否加壳,或者借助一些反编译工具依靠经验判断是否加壳 2. 如果apk加壳,则需要先对apk进行脱壳 3. 使用` ...

  6. day03--实际操作演示linux系统挂载过程

    # 第一步骤: 拥有一个存储设备-光驱,使光驱加载光盘 # 第二步骤: 在linux系统中找到光驱设备 ls -l /dev/cdrom # 第三步骤: 需要将存储设备进行 挂载 挂载命令语法格式: ...

  7. java数组案例

    数组:         数组就是用来存储一批同类型数据的内存区域(容器) 数组中的最大值实现方法:   数据拿到程序中去,用数组装起来. 定义一个变量,用于记录最大值.这个变量建议默认存储第一个元素作 ...

  8. Java 异常处理(1) : try-catch- finally中finally的使用

    1 package com.bytezero.throwable; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 impor ...

  9. 并发操作导致的BUG-解决方案

    一.问题由来 上周五项目发布新版本之后,生产环境一直没有出现什么问题,大家也都开开心心,平平安安的开始新需求的开发. 可是刚稳定运行没几天,负责人突然在群里面发了一个截图,从图片中的信息可以看到,有一 ...

  10. 酷呆桌面 CooDesker 桌面整理工具 - 软件推荐

    酷呆桌面 CooDesker 桌面整理工具 - 软件推荐 推荐理由 满足了我对桌面映射到某一目录的需求,这样桌面就真的干净了 免费且没有广告 可进入目录继续延展,双击空白地方返回上一层,非常方便 5M ...