名字可以一笔一划一蹴而就,但是FPGA的PCB电路设计也许不行。笔者虽说也算是拥有多年FPGA设计经验,但很少有一下子成功的设计,多多少少都需要适当的调试。铁杵磨成针,是因为功夫深;而FPGA/CPLD电路设计的调试能力,也是经验总结。没有谁生来就是天才,天才是因为比常人花费了更多的血汗,天才之路充斥了狂风暴雨。只有经历过地狱般的洗礼,才能达到天堂的力量。
前些日子一个由软件开发,走向销售,继而开始创业做产品的前辈告诉我,“创业、奋斗,就是读博,一旦进入,只有黑暗没有光明,很多人知难而返。你不知道何时会遇到光明,也许就在那一瞬间,抑或也许遥不可及;但重点是,如果你坚持走下去,总共遇到光明的转角,但如果你不敢走下去,那你就注定是输。”敢打敢拼不服输,才能成功。即便是“赌博式”奋斗,最重要的也是方向。即便在FPGA/CPLD电路设计中,路途坎坷四处碰壁,但是没有不能调试成功的电路,就看你愿不愿意花费功夫。也许Bug就在那一瞬间,抑或也许你直接放弃,永远找不到迷失的方向。
对于FPGA/CPLD驱动电路设计,首先我们得设计原理图与PCB,接着投产打样,拿到板子后进行焊接调试以及相关的测试,如果电路基本功能验证OK,就可以进行项目工程设计,反之,如果出现了这个那个的问题,继而发现原理图设计的问题,只能重新设计电路图。硬件开发流程如下图所示。
笔者有时候这个流程要循环好几遍,刚开始由于设计上的问题导致了得重新设计电路,抑或是后来发现可升级的部分,在基本功能完成后在此进行修改。不就得将来发现有更好的方案,为了性能不惜以再次设计、调试电路的代码重新进行优化。笔者有一个基于EP2C8Q208C8N的VIP_Board视频开发平台,不停地优化升级,少说也进行过4个版本的升级。总是,完美是没有极限的,电路设计也一样,不断地升级、优化,才能做出苹果这样的产品。
笔者在这里想重点总结一下关于FPGA/CPLD电路焊接、调试经验。也许会有遗漏或者,不符合常规的部分,但至少这些是笔者认为相对于DIY或者手工焊接调试电路,进行开发的比较有效的流程。为此笔者专门设计了一整套的PCB焊接、调试、排错、到最终硬件定型的流程(当然这不仅仅只适用于FPGA/CPLD,而是一个基本的思维),如下图所示(CPLD根据需要可以相应的精简):
1) PCB的检查
在拿到厂家打样好的PCB后,一定不要急着进行焊接。虽说现在的制版工艺,以及飞针测试技术,一般电路不会有问题,但也不排除以外。笔者当年一个沉浸的板子倍某厂家做短路了;笔者当年还有2个FPGA板子也被做短路过。当然现在的技术,这个是小概率事件。不过宁可信其有,不可信其无,首先大致的检查一下PCB是否有问题(主要是短路)。如果小概率事件发生,板子被做短路了,立即与厂家联系。笔者的经验,一般厂家都会通过免费加急重做一次的途径,来给客户做出补偿。
2) 电源与主芯片的焊接主次
原本焊接电路应该有主到次,从主芯片到外围电路。但是如果电源方案是最新尝试的,同时恰好出现了设计问题。而这个我们已经将FPGA/CPLD焊接在上面了,徒劳而又费钱伤神的事情,笔者当年也层冒昧过。
因此,如果方案是成熟的,并且经过了多次验证,这都无所谓。反之如果方案(尤其是电源方案)如果是最新的,一般先焊接电源进行测试,在保证板载电压(5V、3.3V、1.2V、2.5V等)都正常的情况下,继而进行FPGA/CPLD的焊接,以保证风险的最小化。如果焊接后发现电源有问题,只能通过割线、跳线等方法来临时解决,最终在下一版本中进行优化。同时,焊接完FPGA/CPLD之后,也必须进行短路、虚焊等的测试(可以用放大镜辅助观察,也可以用玩表表短路档进行点测,这些都是硬件工程师需要掌握的最基本的能力)。
当然产品焊接中,硬件电路均已验证通过,一般机器都会遵循由主到次,由贴片到直插的顺序进行焊接,这主要是为了焊接的方便。
展开