Agilex 5 的HPS 工程里面若没有设置HPS IO 的引脚绑定和IO_STANDARD属性,就会无法生成sof文件,提示如下:

Critical Warning(25196): A programming file will not be generated because the assembler identified user pins missing pin location assignments. Refer to the I/O Assignment Warnings table in the fitter report for a list of unassigned pins. You can assign these pins in the Pin Planner tool and recompile to allow programming file generation to pass.

7f7d2340e4e259058c0739b85c73e991

 所以除了要在HPS IP 窗口这样设置:

c2fce50bb1f7a176a2140f17bdfb07b4

 还需要在qsf文件里面添加HPS IO 的引脚绑定和IO_STANDARD属性,具体可以直接拷贝DE25-Nano开发板的GHRD工程的qsf文件的这段内容:

#============================================================
# HPS
#============================================================
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_CLK_25
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_MDC
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_MDIO
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_RX_CLK
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_RX_CTL
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_RX_DATA[0]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_RX_DATA[1]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_RX_DATA[2]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_RX_DATA[3]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_TX_CLK
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_TX_CTL
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_TX_DATA[0]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_TX_DATA[1]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_TX_DATA[2]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_ENET_TX_DATA[3]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_GSENSOR_I2C_EN
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_GSENSOR_INT
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_I2C_SCL
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_I2C_SDA
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_KEY
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_LED
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_SD_CLK
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_SD_CMD
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_SD_DATA[0]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_SD_DATA[1]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_SD_DATA[2]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_SD_DATA[3]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_UART_RX
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_UART_TX
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_CLK
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[0]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[1]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[2]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[3]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[4]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[5]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[6]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DATA[7]
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_DIR
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_NXT
set_instance_assignment -name IO_STANDARD "1.8-V" -to HPS_USB_STP
set_location_assignment PIN_AN67 -to HPS_CLK_25
set_location_assignment PIN_D71 -to HPS_ENET_MDC
set_location_assignment PIN_C74 -to HPS_ENET_MDIO
set_location_assignment PIN_BL75 -to HPS_ENET_RX_CLK
set_location_assignment PIN_AP74 -to HPS_ENET_RX_CTL
set_location_assignment PIN_BD74 -to HPS_ENET_RX_DATA[0]
set_location_assignment PIN_AN71 -to HPS_ENET_RX_DATA[1]
set_location_assignment PIN_AJ74 -to HPS_ENET_RX_DATA[2]
set_location_assignment PIN_AJ75 -to HPS_ENET_RX_DATA[3]
set_location_assignment PIN_BP75 -to HPS_ENET_TX_CLK
set_location_assignment PIN_BL74 -to HPS_ENET_TX_CTL
set_location_assignment PIN_BG74 -to HPS_ENET_TX_DATA[0]
set_location_assignment PIN_AP75 -to HPS_ENET_TX_DATA[1]
set_location_assignment PIN_BD75 -to HPS_ENET_TX_DATA[2]
set_location_assignment PIN_AM74 -to HPS_ENET_TX_DATA[3]
set_location_assignment PIN_P75 -to HPS_GSENSOR_I2C_EN
set_location_assignment PIN_Y75 -to HPS_GSENSOR_INT
set_location_assignment PIN_N72 -to HPS_I2C_SCL
set_location_assignment PIN_L75 -to HPS_I2C_SDA
set_location_assignment PIN_F75 -to HPS_KEY
set_location_assignment PIN_AD71 -to HPS_LED
set_location_assignment PIN_AC74 -to HPS_SD_CLK
set_location_assignment PIN_AK69 -to HPS_SD_CMD
set_location_assignment PIN_AF75 -to HPS_SD_DATA[0]
set_location_assignment PIN_AC75 -to HPS_SD_DATA[1]
set_location_assignment PIN_AN64 -to HPS_SD_DATA[2]
set_location_assignment PIN_Y74 -to HPS_SD_DATA[3]
set_location_assignment PIN_AD72 -to HPS_UART_RX
set_location_assignment PIN_N71 -to HPS_UART_TX
set_location_assignment PIN_BC64 -to HPS_USB_CLK
set_location_assignment PIN_AN72 -to HPS_USB_DATA[0]
set_location_assignment PIN_AY69 -to HPS_USB_DATA[1]
set_location_assignment PIN_BC71 -to HPS_USB_DATA[2]
set_location_assignment PIN_AU74 -to HPS_USB_DATA[3]
set_location_assignment PIN_AY71 -to HPS_USB_DATA[4]
set_location_assignment PIN_AU75 -to HPS_USB_DATA[5]
set_location_assignment PIN_BC72 -to HPS_USB_DATA[6]
set_location_assignment PIN_BP74 -to HPS_USB_DATA[7]
set_location_assignment PIN_AY67 -to HPS_USB_DIR
set_location_assignment PIN_BA75 -to HPS_USB_NXT
set_location_assignment PIN_BC67 -to HPS_USB_STP