Intel® Quartus® Prime Pro Edition用户指南: 部分重配置

ID 683834
日期 5/11/2020
Public
文档目录

1.5.4. 为PR区域创建封装逻辑(wrapper logic)

如果设计中的所有角色都不具有相同的顶层接口,那么必须创建封装逻辑以确保所有角色都类似于静态区域。为每个角色定义一个wrapper,并在wrapper中例化角色逻辑。如果所有角色都有相同的顶层接口,那么这些角色不需要封装逻辑。在此wrapper中,您可以创建虚拟端口,以确保PR区域的所有角色都具有与静态区域的相同连接。

在PR编译期间,Compiler将PR区域的接口上的每个非全局端口转换成边界端口线LUTS。边界端口线LUT的命名约定为:输入端口<input_port>~IPORT,输出端口<output_port>~OPORT。例如,my_region PR域上的my_input输入端口的wire LUT的实例名为my_region|my_input~IPORT

  1. 使用Logic Lock region assignment手动规划边界端口,或者使用Fitter自动布局边界端口。Fitter在基本修订版编译期间布局边界端口。边界LUT是Fitter从编译的角色排生的不变位置。这些LUT代表静态区域与PR布线和逻辑之间的边界。无论基础角色如何,布局都保持不变,因为从静态逻辑的布线不会随其他角色实现而变化。
  2. 要将所有边界端口限制在一个特定区域中,使用通配符assignment。例如:
    set_instance_assignment -name PLACE_REGION "65 59 65 85" -to \
         u_my_top|design_inst|pr_inst|pr_inputs.data_in*~IPORT

    此assignment将对应于所指定的IPORTS的所有wire LUTS限制在坐标(65 59)与(65 85)之间的布局区域内。

    图 12. PR区域边界上的Wire-LUT

    您可以有选择地将边界端口规划至LAB级别,或者单独的LUT级别。要规划至LAB级别,需要创建一个1x1 Logic Lock PLACE_REGION约束(一个LAB高,一个LAB宽)。或者,通过创建一个Logic Lock布局区域来指定一个范围约束。关于 floorplan assignment的更多信息,请参考Floorplan the Partial Reconfiguration Design