方便工作的小物件:
对于FPGA岗位,烧写和debug是不可避免的事情,很多时候一些实际情况仿真起来难度比较大,那debug就是最好的选择。
debug里面连线是第一步,从lattcie到XILINX以及quarters,包括现在国内的主流FPGA厂家紫光和安路,连线都是一模一样的。TCK,TDO,TDI,TMS,VCC,GND。我不清楚原因,在我所接触的产品上,PCB丝印对于这几个接口的标注总是使用J29,J30,J31,J32(分别对应TCK,TDO,TMS,TDI)。而且在不同的产品上因为布局走线的原因,这些接口的顺序也不是固定的,导致每次在连线的时候都要找来找去,其实花不了几分钟,但是那个细细的线看起来真的是很没有耐心。
还有一个严重的问题就是,这样子一根根交错连接的杜邦线很容易接触不良和断开。如果断开(由于环境负责,实验空间狭小,这种情况经常发生),你就得重新再折磨一次自己;如果接触不良,你得重新连接或者更换新的杜邦线不断尝试。当这个事情重复上3~5遍的时候,我的注意力已经从debug转移到了怎么搭建环境了,这可不是什么好的事情,最讨厌的就是来回切换自己的注意力。
因此,我打算彻底解决这个问题。是的,没错,程序员总是想一劳永逸,但是我也知道这并不简单。
我的想法是:
- 两边的接口插座是固定的,FPGA芯片上是4根线,烧写器上为2.45mm的通用牛角刺破式插座,使用固定的接口进行连接,可以避免单根杜邦线导致的连接不稳定问题。
- 不同的连接顺序可以使用PCB进行分配,可以将每次都要几根线找来找去的问题,转化为根据产品型号直接进行选择的问题。选择一个大的接口可比对照4个小线舒服的多。
就这样,我开始了我的第一次PCB制作。虽然之前读书时使用过Multisim进行元器件仿真,但当时只是为了做课堂作业,早就忘了怎么画图了,而且使用的还是洞洞板和面包板+杜邦线。一切都是重新开始。
打开https://lceda.cn/ ,DDDD(懂得都懂),在嘉立创专业编辑器,新建工程,从嘉立创商城选择自己要使用的器件,然后复制这个器件的编号到EDA编辑器中就可以直接找到对应的原理图,我这次使用的是2.45mm的通用牛角刺破式插座,以及对应的6根线。在使用这种通用接口的时候一定要注意接口的防呆设计(接口上凹进去一小块),不要接反了。在原理图上标注每个触点的定义,命名相同的触点就会自动连接起来。画完原理图,来到器件图环节,这个环节的就涉及到了实际的PCB尺寸,以及重要的布局布线。
当然,也可以使用立创EDA自带的“自动布线”很是顺滑。由于立创商城每个月的免费板子是两层的,我们也没有过高需求,直接奔着“免费”的选项点点点就好了。先领券再下单,直接薅羊毛成功。PCB就开始制作了,当然,没有贴片服务(垃圾板子也不需要),我们还要在淘宝上购买相应的器件,等待PCB到手后进行焊接。
3天后,收到了自己制作的PCB,那种快乐,无以言表,很久没有感受到了。火急火燎的拿起焊枪,马不停蹄的焊接,焊接好后进行测试。测试结果正常,烧录和debug功能都可以正常使用。但是有一个问题,就是这个接口固定导致的中间的连接线多了一些,整个环境还是乱糟糟的。能不能把他们再简化一些,我想到直接把一个线剪短然后焊接到PCB上,这样子可以简化一段。就有了下面的成品。
再优化一下,把lattice和XILINX的pcb分开,把焊接的线改成标准插座。最终形态确认。
把这个小物件的成品分享给朋友门,他们也投来赞赏的目光,都想拥有一个。我觉得利人利己呢。但是在中途,偶尔想和朋友讨论这件事,但是得到的反馈一般都是,这不属于你的工作责任范畴,你不用花精力去想办法提高效率,更何况是还要自己花钱。我想,不是这样的,我也不愿意去争论,做着自己认为的对的事情。这其中的道理在我理解,就是对于工作的熟练程度不断地提高,你完成的任务难度也在不断增大,但人的经历是有限的,想多做些有挑战性的任务,多学一些有水平的知识,你不得不把那些简单但耗时的事情给想办法解决掉。而做一个便利的软件,画一个方便的硬件,写一些额外的总结,这都是我为了更好面对挑战的铺垫。
这之后更好的优化途径就是将烧写器换成现在市场上最新的八合一烧写器,可以直接兼容市面上的国产和非国产所有FPGA芯片,然后将PCB重新进行修改,就可以设计出一个方便且万能的烧写器了。这个烧写器太贵了,暂时不考虑购入,如果哪天公司愿意破费给我买一个,到时候再发一篇文章出来。
十分感谢嘉立创提供的免费打印PCB服务,以及开源广场,这给我们这种入门级的卡拉米提供了很好的学习途径。