FPGA中的面积优化
FPGA中的面积优化
一、优化的意义
面积优化,就是在实现预定功能的情况下,使用更小的面积。通过优化,可以使设计能够运行在资源较少的平台上,节约成本,也可以为其他设计提供面积资源。
二、操作符平衡
对于复杂逻辑操作,输入到输出的对称性越好,往往中间逻辑就越少,面积越小。一般优化中,可以将不关注中间信号的设计的逻辑优化掉,实现对称结构。
三、打破设计流水
流水设计可以提高时序余量,同样需要消耗面积资源。去除这些缓存器,降低设计的频率,即可实现面积的优化。
四、资源共享
(1)互斥操作的共享
对于不会同时出现的操作,其共用单元可以共享,方法有很多,简单的就是使用控制信号切换模块的工作模式。
(2)表达式共享
将可以写成一样结构的表达式用括号连接起来。
(3)逻辑功能模块共享
某些逻辑功能相同的模块,可以进行共享,但是控制逻辑可能会复杂一些。
五、复位对设计面积的影响
能不用复位最好不用,优先使用异步复位,其次使用同步复位。三者的资源消耗依次增加。
六、器件角度的面积节约
(1)使用原语设计
可以直接调用数字电路的结构,降低面积的使用率。
(2)使用触发器控制端口
某些复位信号可以作为输入来实现某些功能。
(3)多路选择器优化
每个LAB自带的信号有:时钟、时钟使能、异步清零、异步加载、同步清零、同步加载。
1️⃣时钟和时钟使能
时钟用于驱动LAB中的寄存器,时钟使能则是驱动数据。但是一般不要使用这些低扇出的信号,对LAB的使用率产生消极的影响。
2️⃣异步加载和异步清零
异步清零可以使用全局或者普通布线资源,二异步加载只能使用普通布线资源。两者同样控制LAB内部的寄存器。
3️⃣同步清零和加载
在LAB中,同步信号一般全局使用。
了解了LAB常用的信号,然后看一下多路选择器的实现:
①二进制多路选择器(case):二进制编码的选择器
②多路复用选择器(case 状态机 IF):采用独热编码的选择器
③带优先级多路选择器(IF):由比较器组成的选择器。
上面三种结构中,资源消耗依次增加。
如果想进一步缩小资源消耗,则可以使用LAB的全局资源实现选择。
七、小结
想要节约面积,就必须尽可能地利用资源。从简单的从大到小的顺序调整,到人为的共享,再到结构的改变,还有硬件结构资源的利用,都是在不断地提高资源使用频率。对于某些设计的资源紧张时,可以考虑这些方法进行设计简化。
FPGA中的面积优化的更多相关文章
- FPGA 设计怎样进行面积优化(逻辑资源占用量优化)
FPGA面积优化 1 对于速度要求不是非常高的情况下,我们能够把流水线设计成迭代的形式,从而反复利用FPGA功能同样的资源. 2 对于控制逻辑小于共享逻辑时,控制逻辑资源能够用来复用,比如FIR滤波器 ...
- FPGA中改善时序性能的方法_advanced FPGA design
本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一 ...
- FPGA中竞争冒险问题的研究
什么是竞争冒险? 1 引言 现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能. FPGA可以替代其他PLD或者各种中小规模数 ...
- 巧用FPGA中资源
随着FPGA的广泛应用,所含的资源也越来越丰富,从基本的逻辑单元.DSP资源和RAM块,甚至CPU硬核都能集成在一块芯片中.在做FPGA设计时,如果针对FPGA中资源进行HDL代码编写,对设计的资源利 ...
- FPGA中的delay与latency
delay和latency都有延迟的意义,在FPGA中二者又有具体的区别. latency出现在时序逻辑电路中,表示数据从输入到输出有效经过的时间,通常以时钟周期为单位. delay出现在组合逻辑电路 ...
- FPGA中的INOUT接口和高阻态
除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上 ...
- FPGA中的时序分析(四)
常用约束语句说明 关于Fmax 上述是实现Fmax的计算公式,clock skew delay的计算如下图, 就是两个时钟的差值.到头来,影响Fmax的值的大小就是组合逻辑,而Fmax是针对 ...
- 浅谈iOS中的视图优化
引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为 ...
- Visual C++中的编译器优化
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Visual C++中的编译器优化.
- 【转】关于FPGA中建立时间和保持时间的探讨
时钟是整个电路最重要.最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错:因而明确FPGA设计中决定系统时钟的因素,尽 ...
随机推荐
- Laravel入坑指南(2)——路由、控制器
接上一节,我们已经把Laravel有Hello World项目跑起来了. 现在各位小友最着急的,应该是想了解,我们怎么在"页面"echo一个自己的Hello World字符串. & ...
- golang常用库包:redis操作库go-redis使用(03)-高级数据结构和其它特性
Redis 高级数据结构操作和其它特性 第一篇:go-redis使用,介绍Redis基本数据结构和其他特性,以及 go-redis 连接到Redis https://www.cnblogs.com/j ...
- 关于json序列化时报错json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
1.今天在写客户端与服务端交互的程序的时候,发现了一个问题 客户端代码 #客户端程序主要是发送注册请求/登录请求给服务端,服务端接收响应后回应对应的应答给客户端,客户端接收响应后,然后做一些操作 # ...
- Alpine安装gcc g++ make编译环境
apk add gcc g++ make cmake gfortran libffi-dev openssl-dev libtool
- Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口. 本文将用 waynboot-mall 项目举例,给大家介绍常见 ...
- 【ACM专项练习#03】打印图形、栈的合法性、链表操作、dp实例
运营商活动 题目描述 小明每天的话费是1元,运营商做活动,手机每充值K元就可以获赠1元,一开始小明充值M元,问最多可以用多少天? 注意赠送的话费也可以参与到奖励规则中 输入 输入包括多个测试实例.每个 ...
- 【LeetCode剑指offer#06】实现pow函数、计算x的平方根
实现pow函数 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn ). 示例 1: 输入:x = 2.00000, n = 10 输出:1024.00000 示例 2: 输入:x ...
- Centos8上安装Redis5.X
一.下载Redis 下载地址:wget http://download.redis.io/releases/redis-5.0.7.tar.gz 解压:tar -xzvf redis-5.0.7.ta ...
- [C++] does not name a type
从网上找到了以下几点 https://blog.csdn.net/fly20180712/article/details/88306008 1.没有加调用函数的头文件 2.不存在xxx命名空间 3.包 ...
- 2022年RPA行业发展十大趋势,六千字长文助你看懂RPA
2022年RPA行业发展十大趋势,六千字长文助你看懂RPA 2022年RPA行业如何发展?十大趋势助你看懂RPA行业未来 这里有2022年RPA行业发展的十大趋势,关注RPA的朋友定要收藏! 文/王吉 ...