当前位置: 首页 > ds >正文

FPGA设计 时空变换

1、时空变换基本概念

        1.1、时空概念简介

                时钟速度决定完成任务需要的时间,规模的大小决定完成任务所需要的空间(资源),因此速度和规模就是FPGA中时间和空间的体现。

                如果要提高FPGA的时钟,每个clk内组合逻辑所能做的事通常就越简单,因此实现同样的逻辑会造成资源的膨胀。

                由于clk的提高,对资源的排列关系的要求就越紧凑,可是资源的膨胀会导致资源占用率的提高,增大布线的难度。

        1.2、时空变换

                1.2.1、时域优化

                        逻辑化简

                                逻辑化简是最基本的冗余去除利器,无论是针对组合逻辑还是时序逻辑,亦或是针对时域或者空域,逻辑化简会给所有方面带来好处。因为逻辑简化了,实现该功能的逻辑门和触发器就会减少,因此组合逻辑和时序逻辑中的冗余都被剔除。

                        空域方面的颠倒现象

                                有时候逻辑上的化简并不会为最终的资源占用带来好处,例如以下逻辑:

F = ABC + AB\overline{C} + A\overline{B}C +\overline{ A}BC ,化简得到F = AB + AC + BC

化简后的组合逻辑显然会消耗更少的逻辑门,但对于4输入1输出LUT的FPGA而言,对资源的占用没有任何影响。

                                有时候,逻辑上的化简甚至会带来更多的资源消耗。

                        时域方面的颠倒现象

                                有时候逻辑的化简并不会为最终的FPGA时序带来好处,例如

F = (AB + BC)AC 化简为F = ABC

化简对于FPGA时序指标没有任何影响。

                        

                        结构调整

                                结构调整是提高时序性能的另一种方式,它是在不改变原有组合逻辑功能单元的前提下,通过改变其内部逻辑门之间的连接关系,来达到减少逻辑门级数的目的,进而提高时序。

        现在有同步输入总线A B C D         :

        HDL code

                

always@( posedge sys_clk )
beginSUM    <=    A + B + C + D    ;
end

                这样子电路会有三个串联的adder,时序延时就是3T;

always@( posedge sys_clk )
beginSUM    <=    (A + B) + (C + D)    ;
end

                这样子 A + B 和 C + D 就会同时运算,时序延时为 2T。

                        分布调整

                                分布调整又叫时间调整(retiming),通过移动工作的时间来提高完成的延时。

                1.2.2、空域优化

                1.2.3、时间换空间

                1.2.4、空间换时间

                        模块复制

                                同频模块复制

                                降频模块复制

                        流水线

                

http://www.xdnf.cn/news/1262.html

相关文章:

  • 【springsecurity oauth2授权中心】jwt令牌更换成自省令牌 OpaqueToken P4
  • 西门子PLC S7-1200按钮控制灯实例
  • day4-小白学习JAVA---开发软件_Scanner键盘录入_Random随机数_流程控制语句
  • 基于龙芯 2K1000处理器和复旦微 FPGA K7 的全国产RapidIO 解决方案研究
  • 【Pytorch 中的扩散模型】去噪扩散概率模型(DDPM)的实现
  • ProxySQL性能调优案例
  • 星光璀璨,跨界共鸣——李炳辰亮相 第十五届北影节嘉年华“音乐之旅”
  • [Java · 铢积寸累] 可变参数
  • Win10 关闭自动更新、关闭自动更新并重启
  • 实践项目开发-hbmV4V20250407-跨平台开发框架深度解析与VSCode一站式开发实践
  • 重装系统后的自用包
  • MulanPSL-1.0开源协议
  • PaddlePaddle线性回归详解:从模型定义到加载,掌握深度学习基础
  • 状态空间模型(State‐Space Model)、传递函数和极点
  • React项目添加react-quill富文本编辑器,遇到的问题,比如hr标签丢失
  • 文件操作和IO(上)
  • Towards Multi-Domain Learning for Generalizable Video Anomaly Detection
  • 一页概览:EMC Avamar备份方案
  • C++初阶——string的使用(上)
  • Tomcat启动闪退是为什么?
  • 第6次课 贪心算法 A
  • Electron使用WebAssembly实现CRC-32 原理校验
  • 前端路由 ( 1 ) | history 原理
  • Hyper-V 管理工具
  • Java队列(Queue)核心操作与最佳实践:深入解析与面试指南
  • AI+直播电商:短视频商城APP开发如何实现智能化推荐?
  • Varjo-XR3在UE5中,头显中间有一个方块一直显示
  • Java Set/List 知识点 Java面试 基础面试题
  • 无人设备遥控器之远程操控系统篇
  • 数据结构-队列