1、时空变换基本概念
1.1、时空概念简介
时钟速度决定完成任务需要的时间,规模的大小决定完成任务所需要的空间(资源),因此速度和规模就是FPGA中时间和空间的体现。
如果要提高FPGA的时钟,每个clk内组合逻辑所能做的事通常就越简单,因此实现同样的逻辑会造成资源的膨胀。
由于clk的提高,对资源的排列关系的要求就越紧凑,可是资源的膨胀会导致资源占用率的提高,增大布线的难度。
1.2、时空变换
1.2.1、时域优化
逻辑化简
逻辑化简是最基本的冗余去除利器,无论是针对组合逻辑还是时序逻辑,亦或是针对时域或者空域,逻辑化简会给所有方面带来好处。因为逻辑简化了,实现该功能的逻辑门和触发器就会减少,因此组合逻辑和时序逻辑中的冗余都被剔除。
空域方面的颠倒现象
有时候逻辑上的化简并不会为最终的资源占用带来好处,例如以下逻辑:
,化简得到
化简后的组合逻辑显然会消耗更少的逻辑门,但对于4输入1输出LUT的FPGA而言,对资源的占用没有任何影响。
有时候,逻辑上的化简甚至会带来更多的资源消耗。
时域方面的颠倒现象
有时候逻辑的化简并不会为最终的FPGA时序带来好处,例如
化简为
化简对于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、空间换时间
模块复制
同频模块复制
降频模块复制
流水线