floorplan应该是布图规划的意思。而placement才算是布局,因为floorplan针对的是抽象的modules,placment针对具体的standard
cells和blocks
DCG工具在没有def文件的情况下,可以跑起来,工具会根据自己的理解给出一个
floorplan,我们因此可以调整floorplan。我们也可以自己设定一些物理约束来确定
floorplan,比如使用set_aspect_ratio来确定形状,set_utilizaton来确定利用率,set_port_side
set_port_location来确定port位置,set_cell_location来确定单元位置,create_placement_blockage来给出placement,DCG可以接受这些物理约束。用户的设计首先转化成RTL级,然后再MAP到FPGA的资源,比如LUT,DFF或者DSP等资源里去。这些MAP好的FPGA资源用实际芯片里的哪个物理资源(哪一行哪一列的哪个slice)来实现就是place了,place完成后就要根据他们之间的逻辑关系来连线,用什么布线资源来连,就是ROUTE。
这里面有非常复杂的优先级算法关系,还要求速度快,节省资源,延时小。