在Lattice Radiant中使用PLL时布局布线报错的问题求助
ICE40UP5K Place&Route ERROR <60001149>排查方案
1. 引脚分配合法性检查
ICE40UP5K的PLL模块要求输入时钟必须连接到专用时钟输入引脚(CLK0/CLK1),否则工具无法完成PLL的布线绑定:
- 确认Upduino v3.1引脚20是否为ICE40UP5K的CLK1专用时钟引脚:查阅官方引脚定义,该引脚确实对应CLK1,但需确保硬件上未被复用为普通GPIO。
- 检查
outclock引脚10:PLL输出可分配到普通引脚,但需确认该引脚无资源冲突,且电平标准匹配Upduino的3.3V规格。 clockreset引脚6:复位引脚无特殊限制,但需确保硬件上有稳定的电平(如上拉到高电平),避免复位信号波动。
2. PLL IP配置与代码例化检查
- 验证IP向导生成的PLL参数是否符合ICE40UP5K规格:输入时钟频率需在10-50MHz范围内,输出时钟频率不得超出PLL的输出上限,参数越界会导致布线失败。
- 检查VHDL代码中PLL例化的完整性:确保所有必要端口(如
lock信号)正确连接,未使用的端口可设为open,禁止悬空:
pll_inst : pll_ip port map ( inclock => inclock, clockreset => clockreset, outclock => outclock, lock => open -- 未使用时设为open避免工具报错 );
3. 时钟约束文件补充
必须在.sdc约束文件中添加输入时钟约束,否则工具无法正确分析PLL时钟树:
-- 假设输入时钟为50MHz,周期20ns create_clock -name inclock -period 20 [get_ports inclock]
若PLL输出时钟有特定分频/倍频要求,需添加生成时钟约束:
create_generated_clock -name outclock -source [get_ports inclock] -divide_by 2 [get_ports outclock]
4. 工具流程与日志排查
- 清理工程目录下的
synth_1、map_1、par_1等中间文件夹,重新执行综合、映射、布线流程,避免缓存文件引发异常。 - 开启Radiant的详细日志输出(设置中勾选
Enable Detailed Logs),重新运行布线,从.par日志中定位具体冲突点(如引脚绑定失败、资源不足等)。
内容的提问来源于stack exchange,提问作者gus
相关产品推荐
相关产品推荐

