我通过计算组件所需的触发器数量来估计我的资源使用情况。例如,当我为ins_controldata
(简单计数器和一些 I/O)估计它时,我使用 32 个触发器。当我查看该组件的详细映射报告时,第 13 节 - 层次结构的利用,我看到我的估计接近用于该组件的 slice 寄存器的数量。每个切片有 4 个 LUT 和 8 个触发器。
现在,当我对有限状态机执行相同操作时 inst_xtm640
,我估计我的触发器使用量约为 43(包括 6 个状态所需的 3 个触发器)。当我查看地图报告时,我发现我的估计或多或少是正确的(+-10% 错误)。但是所需的 slice 数量远远高于所需的 slice 寄存器和 LUT。查看使用过的 LUT 是 40,应该只有 20 左右。
为什么要为这个组件使用额外的切片?是为了速度优化吗?
+----------------------------------------------------------------------------------+
| Module | Partition | Slices* | Slice Reg | LUTs |
+----------------------------------------------------------------------------------+
| ++inst_controldata | | 6/6 | 35/35 | 20/20 |
| +++inst_xtm640 | | 40/40 | 57/57 | 88/88 |
+----------------------------------------------------------------------------------+
编辑:我想我自己找到了它,但总是欢迎其他输入:
并非所有切片都被充分使用。所以这并不意味着如果我使用 88 个 LUTS 和 57 个切片寄存器,我将使用 22 个切片。有些切片没有完全使用,所以这会使切片使用率更高。额外的片也将用于满足时序约束。