控制集就是对一个寄存器的所有控制信号(复位,置位,使能,时钟信号)的一个集合。
对于一个Slice的控制必须在同一个控制集下面。
Xilinx推荐:在设计中要尽可能多的共享寄存器的控制信号。
1、逻辑包装(logic packing):将可以集成在一个slice的逻辑放在slice里面,这个技术也叫做逻辑分组。(related packing)
2、LUT组合(LUT combining):可以利用综合进程的“LUT combining”特性,LUT可以减少设计总的LUT的使用,但是对时序会有负面的影响。这时候是共享输入信号,所以可以用一个LUT来做两个LUT才能实现的事情。
3、SRL组合(SRL combining):具有两个SRL16带有公共输入的总线利用两个SRL16可以用一个公用输入代替,就得到了以下的slice。
4、精简控制集(reduced control sets):如果控制集不同,那么就不能包装进入一个slice,所以控制集数量不能太多,不然就导致FPGA资源浪费了。使用综合工具中的“reduced control sets“就可以设置这个特性。slice包装后一般是在前面加上门控制。
IOB寄存器的使用:采集片外数据和时钟的最快方法。一般设计只有在满足I/O的时序的是才使用IOB寄存器。最好的话是根据时序约束把寄存器放入IOB中,否则,在综合工具中禁止使用全局I/O寄存器;在布局工具中禁止将寄存器步入IOB;通过XDC或tcl,命令选择性将寄存器步入IOB。
Block RAM&#