FPGA综合优化
1 速度和面积
在全面优化水平将达到速度和面积RTL要利用逻辑拓扑的优势。
供FPGA由于在后端而言缺乏知识,门级优化。普通情况下更高的速度要求更高的并行性以及更大的面积,可是在某些特殊情况下并非这样。由于FPGA的布局布线具有二阶效应。
直到布局布线完毕。工具才会知道器件的拥堵或者布线的困难,可是这时实际逻辑拓扑已经被提交,假设我们的优化选项设置为速度,那么当实现后器件过于拥挤而无法布局布线时,布局布线工具进而会产生附加逻辑。从而是实际速度更慢。因此当FPGA的资源利用率接近100%时进行面积的优化将获得更快的速度。
2 利用综合工具提供的资源共享选项,能够实现一些互不相容的并且类似的操作,某些时候可能会减少面积,比如
assign outdata=isel?idata1+idata2:idat2+idata3; 没有设置资源共享选项时实现例如以下:
打开资源共享设置后:
3 流水线、又一次定时和寄存器平衡
a 寄存器平衡不应该用于非关键路径。
b 带有不同复位类型的相邻触发器会阻止寄存器平衡。
c 约束又一次同步寄存器,使其不被其它寄存器平衡影响。
4 有限状态机的编译
採用标准编码的状态机会被编译器识别而且又一次优化。
对于状态机,驱动异步输出时应该採用格雷码,格雷码产生例如以下图所看到的:
编译器会自己主动去除没用的状态。假设要求安全就别非常高。打开安全模式。无效的状态产生时将会产生一个复位信号。
5 黑匣子,黑匣子被放在优化模块的网表或者布局图的坐席。它包括在实现流程中的较后的设计总。
假设要求黑匣子时应该给出I/O的时序模型。
6物理综合提供综合和布局图之间的紧密联系。
版权声明:本文博主原创文章,博客,未经同意不得转载。
FPGA综合优化的更多相关文章
- FPGA综合工具--Synplify Pro的常用选项及命令
最近要用到Synplify,但以前没使用过,无基础,找到一篇帖子,隧保存下来. 本文转自:http://blog.sina.com.cn/s/blog_65fe490d0100v8ax.html Sy ...
- FPGA时序优化简单窍门
尽量用硬核,比如硬件乘法器,这个应该都知道. 结构上的pipeline,简言之就是“拆",最极端的情形是拆到源和目的Reg间只有基本的组合逻辑门,比如说~a & b之类...:当然F ...
- FPGA综合的约束
近日发现,有些逻辑电路的综合时间约束和布局布线约束相差太大时,难以布通.此时,应该选择尽量接近的时钟约束.
- FPGA 设计怎样进行面积优化(逻辑资源占用量优化)
FPGA面积优化 1 对于速度要求不是非常高的情况下,我们能够把流水线设计成迭代的形式,从而反复利用FPGA功能同样的资源. 2 对于控制逻辑小于共享逻辑时,控制逻辑资源能够用来复用,比如FIR滤波器 ...
- 【FPGA】相关介绍
什么是 FPGA ? FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL.GAL.EPLD等可编程器件的基础上进一步发展的产物.它是作为专用集 ...
- Tcl与Design Compiler (八)——DC的逻辑综合与优化
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 对进行时序路径.工作环 ...
- FPGA设计思想与技巧(转载)
题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...
- FPGA笔试必会知识点2—FPGA器件
FPGA 综合工具并不一定保证能够充分利用芯片结构特点以达到最优目的而且工具本身也不一定非常智能,因为设计本身是复杂多样的且一直在变化,问题总会越来越多,因此在这种情况下,我们必须了解我们的器件结构, ...
- modelsim仿真正确FPGA运行不正确的可能原因 - cm4写寄存器错
困住整整一周了,工作进行不下去,中午偶遇导师,指导意见是有两种可能: 1. FPGA编译器优化代码,可以考虑把综合过程中所有的warning排查一下 2. verilog里有不可综合的语句. 又及 ...
随机推荐
- Netty系列之Netty可靠性分析--转载
原文地址:http://www.infoq.com/cn/articles/netty-reliability 1. 背景 1.1. 宕机的代价 1.1.1. 电信行业 毕马威国际(KPMG Inte ...
- report_timing_requirement
report_timing_requirement -ignored 会报告set_faults_paths,set_multi_path等
- [Angular] Intercept HTTP requests in Angular
Being able to intercept HTTP requests is crucial in a real world application. Whether it is for erro ...
- Machine Learning With Spark学习笔记(提取10万电影数据特征)
注:原文中的代码是在spark-shell中编写运行的,本人的是在eclipse中编写运行,所以结果输出形式可能会与这本书中的不太一样. 首先将用户数据u.data读入SparkContext中.然后 ...
- Log4net.confager配置官方文档
http://logging.apache.org/log4net/release/config-examples.html
- Searching with regular sentences will only get you so far – if you need to find something a bit tricky turn to these advanced yet simple methods--转
原文地址:http://www.theguardian.com/technology/2016/jan/15/how-to-use-search-like-a-pro-10-tips-and-tric ...
- HDU 2587 - 很O_O的汉诺塔
看题传送门 吐槽题目 叫什么很O_O的汉诺塔我还@.@呢. 本来是想过一段时间在来写题解的,不过有人找我要. 本来排名是第8的.然后搞了半天,弄到了第五.不过代码最短~ 截止目前就9个ID过,小小的成 ...
- 【习题 5-11 UVA 12504 】Updating a Dictionary
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 不确定某个map里面是否有某个关键字的时候. 要用find来确定. 如果直接用访问下标的形式去做的话. 会强行给他加一个那个关键字( ...
- Visual Studio中你所不知道的智能感知
在Visual Studio中的智能感知,相信大家都用过.summary,param,returns这几个相信很多人都用过的吧.那么field,value等等这些呢. 首先在Visual Studio ...
- css3-10 如何使用滚动条
css3-10 如何使用滚动条 一.总结 一句话总结:给设置了宽高的块标签使用,直接将overflow属性写到style里面即可. 1.滚动条的使用对象时谁? 一般是div,当div比较小(设置了宽高 ...