本博客用于记录博主在Lattice Shanghai实习期间使用Lattice Propel SDK和Lattice Propel Builder开发Lattice SoC工程中遇到的Bug及其解决方式。内容上会持续更新,直到实习结束/离开Lattice。希望可以帮助到有需要的哥老倌们!
也非常欢迎小伙伴留言讨论,在技术上共同进步。(下图在暗示你点赞、收藏和关注)
*******************************BUG集目录*****************************
\****************************************************************************************************************/
Q1: 使用Propel Builder生成Hello World模板工程后,通过Propel SDK编译后,将.bit也烧写到板子上了,但板子没有任何反应。
A1: 物理约束、引脚约束配置正确的情况下,可以查看Propel SDK中util.h文件中是否对于 CPU_FREQUENCY的参数配置错误?默认生成的值为90000000,然而SoC工程中分明是112.5MHz(根据你的实际使用情况),因而这里需要改成(112500000,根据你的实际使用情况);
Q2: 在Propel Builder中添加新模块之后,发现整个模块并未工作?
A2: Propel Builder中或许没有对新模块的地址进行锁定(Lock);
Q3: 在Propel中生成的Radiant/Diamond项目居然会无法通过P&R,并且报错internal error?
(此问题极易诱发脑血栓10级,如果解决了你的问题,一定要点赞)
A3:Propel Builder中双击CPU,取消Simulation mode;
Q4: 当程序更改了之后,发现生成的仿真效果完全没有任何改变
A4: 切记在Propel SDK 编译之后的步骤:
a.去Propel Builder里system memory重新Generate
b.在Propel Builder里再点击Generate
(c.如果仿真,在生成的veri工程里再点击Generate)
Q5: Propel SDK Debug 问题请来这里排队!!!
你是否在无数个长夜里苦苦思考,为什么这么按照User Guide上一步步照着做了的,如此常规的操作,会卡死在Debug?显示的“Time outxxx”使你感到无比绝望?
A5: 设置TCK分频,默认的JTAG速度过快,不分频软件不匹配……