特权同学

硬件电路设计的灵活性

0
阅读(2216)

那天地铁上和老前辈聊的很欢畅,正好提到硬件设计的灵活性方面问题。也忽然想起前阵子帮助新同志调 试FPGA下载配置电路时遇到的一连串啼笑皆非的故事,也确实感觉硬件电路的灵活性是蛮重要的。如果在原理验证 期间的硬件电路设计有很高的灵活性,那么这也绝对算是硬件设计师经验的体现。

         先说说这个啼笑皆非的故事吧,这里绝没有诋毁任何人的意思,也不是对任何人有偏见。毕竟我们也是从 不懂到懂,从不会到会一步一步走过来的。一个Virtex II的百万门FPGA,BGA封装的器件我看管脚肯定是有余的,但是他在设计的时候也没有一个简单的指示(如LED)或者一个简单的跨接针引出电路(未用管脚)。在拿到板子以后要调试配置电路是否正常,就只能写一个 将某个管脚输出0或1的代码,下载后拿着示波 器探头围着附近的芯片找管脚,那叫一个费劲啊。对于FPGA的配置方式控制的MSEL0-2确实是引出 来了,可以灵活的接1或接0,但是他居然不焊接一个 跨接针上去,而是用导线焊死了,在切换配置模式时,又得拿着烙铁在那搞破坏,花点时间倒是小事,把焊盘弄坏了可就太没必要了。我就在想,我平时很习以为常 的做法(闲置IO接个指示灯什么的,调试时总是派得上用场的;MSEL接个跨接针,用 跳线帽控制,举手之劳),为什么在他这里就变得特别的复杂呢?也许,新人还是欠缺一些硬件设计灵活性方面的思想吧。也许,不仅是新人,我个人其实也还是需 要加强这方面的思想,也许因为项目做得还不多,目前做过的板子好像还没有飞线割线这么郁闷过,但是谨慎一些总是好的,设计前期的工作考虑周全一些也总是有 益的。

         下面列举一个很简单的指令输出电路,该电路的输出一方面是由处理器指令控制,另一方面是由独立于处 理器的应急使用的按键控制。如图1所示,处理器和按键控制通过SN54LS74控制输 出,具体原理这里不介绍了,不是本文的重点。如图2所示,从SN54LS74输出的控 制信号需要再送给数字隔离器件隔离后输出。

 


图1

 


图2

         也正是这样简单的按键电路,通过图1和图2中的两个跨接针做特别的设置后(用跳线帽),就变得灵活多了。SN54LS74和ADuM5230都是两路的器件,正常情况下可以作为两个独立的指令输出电路,并且这种输出电路对于按键而言,只有 一种功能,就是在按键按下后让输出指令拉高(输出1),而无法将指令输出拉低,这在一次性输出的使用中也是蛮常见的。

但是对于更多的应用中,往往需要按键既能清零 (0)又能置位(1),所以这个电路中就通 过P1的2和3相连,使得S2能够对输出清零。因此,P1的作用就是调整按键是1个按键单独控制输出,还是两个按键同时控制一路的输出。而P2的作用也显而易见,当1和2相连时,就是一路输出控制两路的后端隔离驱动;当2和3相连时,就是单独两路分别输出隔离。P1和P2两个跳线帽从很大程度上使得这个按键电路变得灵活多了。

         其实这个电路也是蛮简单的,没有什么技术性好讨论。但是从这两个跳线帽的配置设计中,也许我们可以 学到更多关于硬件设计灵活性方面的思想。人非圣贤,孰能无过,新板子上飞线、割线有时也是难免的,但是对于需要对电路有一些大的改动时,走线在外层还比较 容易搞定,如果走线在内层估计设计者只有“望板兴叹”了。有时,电路设计的灵活和便利也只在于多一个跨接针或一个电阻,甚至一个LED,也许在设计的初期多考虑一些这样的问题,后期的调试效率会得到大大的提高,我想这是每一个硬件工程 师所乐意看到的。