是的,由于 Quartus® Prime 软件版本 16.0 及更早版本出现问题,IOPLL 中 C 计数器的重新配置可能无法正常工作。出现这个问题是因为在某些编译中无法正确生成物理计数器映射逻辑。因此,在用户模式下执行重新配置时,预期 C 计数器不会被正确重新配置。
要解决此问题,可以手动重新订购设计中使用的 IOPLL 输出计数器。请按照以下步骤重新订购输出计数器:
将以下行放入 quartus.ini 文件中,并将该文件置于项目目录中:
cpll_disable_oport_rotation=开启- 确定编译中使用的物理输出计数器。
使用 Read_PLL_Setting.tcl 读出设计中使用的物理 C 计数器设置。有关如何使用脚本的说明,请参阅 tcl 文件中的自述文件部分。
下载Read_PLL_Setting.tcl 文件
- 交叉引用 PLL Summary Report 来识别使用的物理计数器。
- 重新生成 IOPLL IP,根据第 2 步中识别的物理计数器重新订购输出时钟。对于用于外部内存接口的 IOPLL,这一点不是必需的。
例子:
考虑以下 IOPLL IP 和编译中使用的物理计数器
IOPLL IP 中的输出时钟 | 频率 | 物理计数器 |
Outclk0 | A | C4 |
Outclk1 | B | C5 |
使用以下参数重新生成 IOPLL IP
IOPLL IP 中的输出时钟 | 频率 |
Outclk0 | 不在意 (A 或 B) |
Outclk1 | 不在意 (A 或 B) |
Outclk2 | 不在意 (A 或 B) |
Outclk3 | 不在意 (A 或 B) |
Outclk4 | A |
Outclk5 | B |
- 基于传递的编译功能限制 IOPLL 位置。
- 在 RTL 文件中进行必要的连接更改。
- 以重新订购的时钟名称更新 SDC 文件(如适用)。
- 重新编译设计。
此问题将在 Quartus Prime 软件的未来发行版中解决。