CPLD按英语说是复杂可编程逻辑器件,对于一个硬件工程师来说,能应用cpld技术是一个十分强大的能力。它的应用可在根本上解决许多数字电路设计的问题,能大幅度改变设计思想,大幅度提高工作效率,甚至可以把以前的数十颗普通分立芯片的功能用一个芯片实现。它还有一个十分**的优点,在硬件原理设计和布线的时候,不用考虑引脚的顺序,可从布线方便的角度安排需要的信号位置,使得布线难度大幅度降低。由于布线难度下降,直接带来布线优化的好处。本文就cpld初学者面对的问题做一个简单描述。希望对有志于学习cpld的硬件工程师有所启发。
我的老师大学毕业时,还没有cpld呢,可现在是他在指导我做fpga设计工作。
1:首先进行的准备是有针对性的学习cpld物理构造和资源
先不要着急去买开发板,不要着急写逻辑。了解硬件本身更加重要。Cpld是一个很大的范畴,初学者会淹没在众多厂家、众多资料的海洋中。针对这个问题,笔者建议大家有所针对的进行知识获取,推荐大家以altera的max ii系列cpld为突破口,首当其冲的就是EPM240这颗芯片。把它吃透,则max ii系列的其它都很好理解了,构造都一样,只是资源增加而已。其它厂家的也好用了,因为它们都是大同小异的。之所以选择emp240是因为它应用已经很广泛,市场上容易买到,而且价格便宜,批量买只有8元/片左右。
Emp240顾名思义具有240个宏单元。简单理解就是有240个触发器,或者理解成240个bit的存储单元。这样都好理解,以后对工程应用就容易估算容量了。对于工程来说,一般这么做,首先依据需求设计引脚的数量,然后再在开发环境中进行逻辑编写、软仿真,这样,在硬件完全没有开始之前,就能把逻辑部分全部设计完,只差物理验证一步了。仿真分2布,写逻辑时用quartus自带的仿真即可。逻辑写完之后,用model sim。Model sim是专门的仿真软件,功能十分强大,但对初学者来说,先不要介入这个领域。先把cpld用上是主要的。
好了,这样就把目标缩小到一个点上了。需要花功夫把240的相关资料吃透,把quartus用熟。到这里,一分钱都不用花。时间用在3个点上:1、240的构造和资源,2、quartus软件使用,3、verilog hdl语言学习。
设计中,如果你的逻辑需要100个单元,编译后会发现用掉120个单元,这是cpld内部布线需要。作为实际应用,必须要留20%以上的富余量,比如编译结果指示用220个单元,这时就不要用240了,应该使用570,因为240的富余量不够。
一个小技巧,针对EPM240和570来说,常用的封装是T100的,就是TQFP100,这2个芯片的封装是向下兼容的,因此,设计时,即便决定使用240,也要按570去画板子。焊接是兼容的,同时万一240不够了,可以改焊570。
2:向应用cpld走近一步,用开发板练习。
有了上面的基础,可以投资买开发板了,一般卖板子的都配套好软件和编程器了。针对240的开发板可能很少,可能570的好买。注意买cpld的开发板,不要急于用fpga的,学会cpld之后,再用fpga就容易多了。要一步一步来。570的开发板,带仿真器,带软件,带练习光盘,一整套下来估计200-300元人民币。这个资金对你要学会的技术来说,微不足道。
开发板光盘有许多例子程序,可以先跑跑看,很容易就上手了。对于初学者来说,cpld技术是一个很大的领域,切记不要急于求成,上来就弄个fpga去加载视频编解码算法,那会十分困难。建议先从简单的开始,用240替代设计中使用的一些74芯片、完成部分软件功能等,熟能生巧。这个技术绝不是短时间就能达到多高水平的,必须有积累过程。一开始就啃难度高的,会对信心造成打击,长时间没有进展,是让一个硬件工程师为抓狂的事。
对于前期学习准备比较充足的工程师来说,完全可以不买开发板,直接在工程中应用。现在的互联网太方便了,只要你的cpld外围没有接错,由于引脚分布是可编程的,PCB板导致不能用的可能性就大大降低了,鼓励直接自己画PCB去应用。这样掌握得更快。