微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 添加约束可以节省硬件资源吗?

添加约束可以节省硬件资源吗?

时间:10-02 整理:3721RD 点击:
我用的fpga是赛灵思XC3S500E,做了一个工程,综合编译时间大概是15分钟,报告显示number of occupied slices的使用率是99%,我没有添加任何的时序约束和区域约束,我想问问各位,添加时序约束和区域约束后,能否起到节省硬件资源的效果?添加区域约束后的效果在那个地方可以看到,是在map里吗?

Usually not. More constraints mean it needs to put more resource to meet them.

但是也有例外,呵呵,这个看实际情况!

你这明显是资源用太多,约束主要是跟时序相关,你slice不够建议主要从代码方面进行修改,不同风格的代码综合出的网表文件不同,所需要的资源也是不一样的。

添加约束主要是有利于时序。
你想优化资源建议还是从代码着手。
另外在综合的时候,可以选择结构式或平摊式flat,flat式要节约一些资源

上面说的有理,先试着换下代码风格,能更大程度地减少资源使用。
另外,SLICE使用率达到99%,也不用太担心,SLICE使用率与LUT使用率并不一致,你看下LUT和FF使用率肯定要比这个值小不少。
一个SLICE里包含两个LUT与两个FF(SLICEM与SLICEL就不作区分了),在PAR时,有时一个SLICE并不能将LUT与FF都占满,可能只使用了一个LUT或FF,如果有其它的代码包括进来,其实是还可以进一步布得下的。


显示number  of  slice flip flops的使用率是46%;
number of 4 input LUTs 的使用率是85%;但是复杂的if-else语句通常会生成优先级译码逻辑,将会增加路径上的组合延时。这也就是所谓的面积与速度的选择吧。



    将逻辑改为DSP设计,是指使用system generator 进行设计吗?


LUT资源用得也挺多,首选是改变代码风格,减少不必要的设计,FF用得相对较少,可以多用些FF做pipeline的设计,这样也可以提高速度,在某些设计上,也能减少LUT的使用。

其实用BLOCK RAM主要是可以替代部分FF,对LUT变化应不太大,

学习、学习。

你的LUT比FF使用多很多,说明组合逻辑太多,例如计数器或者if的判断句太长,可以把计数器拆分,优化判断条件或寄存器打拍,就是上面说的流水线

学些了~

從rtl code著手是比較有較大進展的方法

约束的类型很多  有对空间使用的约束,也有对时序的约束

怕是不行吧?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top