添加约束可以节省硬件资源吗?
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著手是比較有較大進展的方法
约束的类型很多 有对空间使用的约束,也有对时序的约束
怕是不行吧?
