F-Tile动态重配置套件 Intel® FPGA IP用户指南

ID 711009
日期 6/21/2022
Public
文档目录

4.6.1. 创建.qsf Assignment

  1. 使用Platform Designer创建离散IP。
  2. 使用相应的RTL连接将这些IP例化到您的设计中。
  3. 对设计运行Design Analysis
  4. 打开Tile Assignment Editor。点击 Intel® Quartus® Prime Menu > Assignments > Tile Assignment Editor
  5. 点击new DR Group单元并为您的DR group定义属性。输入属性并点击OK
    图 6. 新的DR Group属性
  6. 查看ungrouped IP Instances单元下的IP。右键点击其中一个未分组的IP,然后点击Move IP Instance选项。
    图 7. 未分组的IP实例
  7. 为IP选择一个相应的重配置组,然后点击OK
    图 8. 选择重配置组(Selecting Reconfiguration Group)
  8. 对所有剩余的未分组IP重复执行步骤6和7。
  9. grouped IP Instances单元下,右键点击重配置组名称。使用Use master clock channel from:下拉菜单选择一个用于Master Clock Channel的IP。
    图 9. 为Master Clock Channel选择一个IP
  10. 在重配置组名称下点击您想要作为一个起始实例的IP。选择Is Startup Instance对话框按钮。
    图 10. Option: Startup Instance
  11. 点击Save Tile Assignment Editor
    注: Master Clock Channel和Startup Instance现在是在Tile Assignment Editor的Properties列中定义的。
    图 11. 属性(Properties)
  12. 使用Reconfig controller下拉菜单选择应与协议IP关联的Reconfiguration Controller IP。
  13. 点击Save Tile Assignment Editor将您最新导出的动态重配置分配写入到您工程的.qsf文件中。
  14. 打开工程的.qsf文件以验证动态重配置分配。
    样例:基本设计的QSF分配(QSF Assignments)
    set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_A:EXCLUSIVE:CLK_MASTER" -entity dr_mr_eth_mr_cpri_same_ux
    set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_A:MY_MR_CPRI_INST_1|CPRIPHY_MR_F_0/RG_A" -entity dr_mr_eth_mr_cpri_same_ux
    set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_A:MY_MR_ETH_INST_1|ETH_F_DR_0/RG_A" -entity dr_mr_eth_mr_cpri_same_ux
    set_instance_assignment -name IP_RECONFIG_GROUP_STARTUP_INSTANCE OFF -to my_mr_eth_inst_1|eth_f_dr_0 -entity dr_mr_eth_mr_cpri_same_ux
    set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_mr_cpri_inst_1|cpriphy_mr_f_0 -entity dr_mr_eth_mr_cpri_same_ux
    set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_mr_eth_inst_1|eth_f_dr_0 -entity dr_mr_eth_mr_cpri_same_ux
    set_instance_assignment -name IP_RECONFIG_GROUP_MASTER_CLOCK_CHANNEL OFF -to my_mr_eth_inst_1|eth_f_dr_0 -entity dr_mr_eth_mr_cpri_same_ux
    
上面的示例展现了一个仅使用两个Multirate IP实例的简单设计。对于同时包含多速率和单速率IP的设计,您可以使用Tile Assignment Editor来创建更复杂的层次化DR分组。下图显示了这种高级设计的Tile Assignment Editor GUI:
图 12. 示例:高级设计

以下显示了此示例的相关.qsf分配(assignment):

Sample: QSF Assignments for Advanced Design
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e100g_4_1_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e100g_4_2_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e100g_4_3_inst_1|eth_f_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_1_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_2_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_3_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_4_inst_1|eth_f_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_5_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_6_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_7_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_8_inst_1|eth_f_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_9_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_e25g_1_10_inst_1|eth_f_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_cpri25g_1_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_cpri25g_2_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4


set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_cpri25g_3_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_cpri25g_4_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_cpri25g_5_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_cpri25g_6_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_mr_e25g_inst_1|eth_f_dr_0 -entity ceg_ex_v4
set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_mr_cpri24g_inst_1|cpriphy_mr_f_0 -entity ceg_ex_v4


set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_mr_cpri24g_2_inst_1|cpriphy_mr_f_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_mr_pma25g_inst_1|directphy_f_dr_0 -entity ceg_ex_v4

set_instance_assignment -name IP_COLOCATE F_TILE -from dr_ctrl_inst_1|dr_f_0 -to my_pma25g_3_inst_1|directphy_f_0 -entity ceg_ex_v4

set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_A2:EXCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_C1:INCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_A1:EXCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_C2:INCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_B2:INCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_A3:INCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_A4:INCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_D:EXCLUSIVE:CLK_MASTER" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_B1:EXCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_B3:INCLUSIVE" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_A:RG_A1" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_A:RG_A2" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_A:RG_A3" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_A:RG_A4" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_B:RG_B1" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_B:RG_B2" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_B:RG_B3" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_C:RG_C1" -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_C:RG_C2" -entity ceg_ex_v4

set_instance_assignment -name IP_RECONFIG_GROUP RG_D -to my_pma25g_3_inst_1|directphy_f_0 -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_D:MY_MR_CPRI24G_INST_1|CPRIPHY_MR_F_0/RG_A" -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_STARTUP_INSTANCE OFF -to my_mr_cpri24g_inst_1|cpriphy_mr_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_MASTER_CLOCK_CHANNEL OFF -to my_mr_cpri24g_inst_1|cpriphy_mr_f_0 -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_D:MY_MR_E25G_INST_1|ETH_F_DR_0/RG_A" -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_STARTUP_INSTANCE OFF -to my_mr_pma25g_inst_1|directphy_f_dr_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_MASTER_CLOCK_CHANNEL OFF -to my_mr_pma25g_inst_1|directphy_f_dr_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A1 -to my_e100g_4_1_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_STARTUP_INSTANCE ON -to my_e100g_4_1_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A2 -to my_e100g_4_2_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A3 -to my_cpri25g_1_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A3 -to my_cpri25g_2_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A4 -to my_e25g_1_1_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A4 -to my_e25g_1_2_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A4 -to my_e25g_1_3_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_A4 -to my_e25g_1_4_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_B1 -to my_e100g_4_3_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_STARTUP_INSTANCE ON -to my_e100g_4_3_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_B2 -to my_cpri25g_3_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_B2 -to my_cpri25g_4_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_B3 -to my_e25g_1_5_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_B3 -to my_e25g_1_6_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_C1 -to my_cpri25g_5_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_C1 -to my_cpri25g_6_inst_1|cpriphy_ftile_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_C2 -to my_e25g_1_7_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_STARTUP_INSTANCE ON -to my_e25g_1_7_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_C2 -to my_e25g_1_8_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_C2 -to my_e25g_1_9_inst_1|eth_f_0 -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP RG_C2 -to my_e25g_1_10_inst_1|eth_f_0 -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_B:EXCLUSIVE:CLK_MASTER" -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_MASTER_CLOCK_CHANNEL "PLD_PCS_TX_CLK_OUT1_DCM:RG_B" -to my_e100g_4_3_inst_1|eth_f_0|hip_inst|per_aib[0].x_bb_m_hdpldadapt_tx -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_C:EXCLUSIVE:CLK_MASTER" -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_MASTER_CLOCK_CHANNEL "PLD_PCS_TX_CLK_OUT1_DCM:RG_C" -to my_e25g_1_7_inst_1|eth_f_0|hip_inst|per_aib[0].x_bb_m_hdpldadapt_tx -entity ceg_ex_v4
set_global_assignment -name IP_RECONFIG_GROUP_TYPE "RG_A:EXCLUSIVE:CLK_MASTER" -entity ceg_ex_v4
set_instance_assignment -name IP_RECONFIG_GROUP_MASTER_CLOCK_CHANNEL "PLD_PCS_TX_CLK_OUT1_DCM:RG_A" -to my_e100g_4_1_inst_1|eth_f_0|hip_inst|per_aib[0].x_bb_m_hdpldadapt_tx -entity ceg_ex_v4

set_global_assignment -name IP_RECONFIG_GROUP_PARENT "RG_D:MY_MR_PMA25G_INST_1|DIRECTPHY_F_DR_0/RG_A_E" -entity ceg_ex_v4