xilinx 寄存器区别 LUT/IOB
时间:10-02
整理:3721RD
点击:
一个比较简单的设计,里面有将近40个寄存器
关于寄存器定义都是同样的RTL代码,组合逻辑部分用了两种方法,一种是纯RTL描述,一种是调用了一些底层primitive,比如LUT等来实现
综合出来的电路有比较大的差别,RTL综合的方法寄存器都是map在LUT里面的register,但是调用底层primitive的方法寄存器都是map在IOB里面的register
对xilinx的器件不是很熟,选用的是spartan 6,请问LUT和IOB里面的register区别是什么,什么可能的原因导致综合工具选用了不同的register
谢谢
关于寄存器定义都是同样的RTL代码,组合逻辑部分用了两种方法,一种是纯RTL描述,一种是调用了一些底层primitive,比如LUT等来实现
综合出来的电路有比较大的差别,RTL综合的方法寄存器都是map在LUT里面的register,但是调用底层primitive的方法寄存器都是map在IOB里面的register
对xilinx的器件不是很熟,选用的是spartan 6,请问LUT和IOB里面的register区别是什么,什么可能的原因导致综合工具选用了不同的register
谢谢
LUT和IOB里的FF没有什么区别,在MAP的设置里有一个选项是Map I/O Registers into IOB,意思是把输入的第一级寄存器和输出的最后一级寄存器放在IOB里边,这样从输入管脚到第一级寄存器或最后一级寄存器到输出管脚的延迟是一定的,这在源同步系统中很有用,比方说你需要同时输出时钟和数据,且希望保持时钟和数据的之间对齐的时候。
顺便问一下,你所说的用原语用的是什么primitive
谢谢,就是说slice和IOB里的寄存器除了location没有本质区别,仅仅是综合工具根据时序优化需要自动map
primitive就是说的直接调用底层的电路单元,比如LUT,Fast Carry Chain,RAM这些xilinx提供的,可以直接例化调用来实现电路,而不是综合工具把逻辑map到里面去。
