由于英特尔® Quartus® Prime 专业版软件版本 21.3 及之前出现问题,您在使用带有快速输入寄存器、快速输出寄存器或快速输出支持寄存器分配的双向引脚时,可能会观察到一个内部错误。如果启用了任何快速寄存器,则必须启用所有寄存器。
故障案例的一个示例:
输入寄存器被分配到快速输入寄存器,但 OOE/Output 寄存器未被指定为快速 OEM 寄存器和快速输出寄存器。将生成以下内部错误消息:
内部错误:子系统:U2B2_GENERIC,文件:/quartus/db/u2b2_generic/u2b2_generic_translator.cpp,行:353
找不到适用于 pio_1_1 的解决方案
规则:fmgpio_reg::io_gpio_reg_rule @ pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_top_5_.gpio_wrapper_0.gpio_reg pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_top_5_.gpio_wrapper_0.gpio_reg.mode != BIDIR_MODE || |pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_5_.gpio_wrapper_0.gpio_reg.xio_gpio_ireg.mode != REG_MODE ||pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_5_gpio_wrapper_0.gpio_reg.xio_gpio_oreg.mode 在 {DDR_MODE_FR,SDR_MODE}
输入变量及其值:
pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_5_.gpio_wrapper_0.gpio_reg.xio_gpio_ireg.mode =REG_MODE
pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_5_.gpio_wrapper_0.gpio_reg.xio_gpio_oreg.mode =COMBI_MODE
pio_1_1.x0.fmio96_core_inst.fmio48tile_bot.x3.u1_0.x0.ioereg_5_.gpio_wrapper_0.gpio_reg.mode =BIDIR_MODE
选项 1:
请勿将任何寄存器设置为 快速* 注册。
选项 2:
将所有输入/OE/输出分配给快速* 寄存器。例如,在 .qsf 文件中添加以下行:
输入寄存器包装:set_instance_assignment名FAST_INPUT_REGISTER开到
输出寄存器包装:set_instance_assignment名FAST_OUTPUT_REGISTER ON-到
输出支持寄存器包装:set_instance_assignment名FAST_OUTPUT_ENABLE_REGISTER开到
选项 3:
使用以下分配来包装所有寄存器。将以下行添加到 .qsf 文件:
set_global_assignment 名称OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING“打包所有 IO 寄存器”
这已经英特尔® Quartus® Prime Pro Edition 软件版本 21.3 中修复。