CPLD初学者入门知识

2011-11-26 14:25:58来源: 互联网
          CPLD按英语说是复杂可编程逻辑器件,对于一个硬件工程师来说,能应用cpld技术是一个十分强大的能力。它的应用可在根本上解决许多数字电路设计的问题,能大幅度改变设计思想,大幅度提高工作效率,甚至可以把以前的数十颗普通分立芯片的功能用一个芯片实现。它还有一个十分优秀的优点,在硬件原理设计和布线的时候,不用考虑引脚的顺序,可从布线方便的角度安排需要的信号位置,使得布线难度大幅度降低。由于布线难度下降,直接带来布线优化的好处。本文就cpld初学者面对的问题做一个简单描述。希望对有志于学习cpld的硬件工程师有所启发。

  我的老师大学毕业时,还没有cpld呢,可现在是他在指导我做fpga设计工作。

  1:首先进行的准备是有针对性的学习cpld物理构造和资源

  先不要着急去买开发板,不要着急写逻辑。了解硬件本身更加重要。Cpld是一个很大的范畴,初学者会淹没在众多厂家、众多资料的海洋中。针对这个问题,笔者建议大家有所针对的进行知识获取,推荐大家以altera的max ii系列cpld为突破口,首当其冲的就是emp240这颗芯片。把它吃透,则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。

   

  有了上面的基础,可以投资买开发板了,一般卖板子的都配套好软件和编程器了。针对240的开发板可能很少,可能570的好买。注意买cpld的开发板,不要急于用fpga的,学会cpld之后,再用fpga就容易多了。要一步一步来。570的开发板,带仿真器,带软件,带练习光盘,一整套下来估计200-300元人民币。这个资金对你要学会的技术来说,微不足道。

  开发板光盘有许多例子程序,可以先跑跑看,很容易就上手了。对于初学者来说,cpld技术是一个很大的领域,切记不要急于求成,上来就弄个fpga去加载视频编解码算法,那会十分困难。建议先从最简单的开始,用240替代设计中使用的一些74芯片、完成部分软件功能等,熟能生巧。这个技术绝不是短时间就能达到多高水平的,必须有积累过程。一开始就啃难度高的,会对信心造成打击,长时间没有进展,是让一个硬件工程师最为抓狂的事。

  对于前期学习准备比较充足的工程师来说,完全可以不买开发板,直接在工程中应用。现在的互联网太方便了,只要你的cpld外围没有接错,由于引脚分布是可编程的,pcb板导致不能用的可能性就大大降低了,鼓励直接自己画pcb去应用。这样掌握得更快。

  3:cpld与cpu的接口

  这个问题十分重要,因为cpld大部分扮演的是cpu的扩展,替cpu完成外部引脚资源扩展、输入输出时序管理、部分软件功能实现。很少有让一个cpld单独工作的。

  Cpld与cpu的接口就十分突出,对于要学cpld的工程师来说,用的cpu可能仅限于51单片机或者arm7系单片机。这种接口算是比较简单了,还是应该循序渐进,从简单的入手,比如用单片机3个io去cpld,由cpld完成74hc138功能,这就是一个简单接口。再进一步,用cpu的p0口和一个io脚接到cpld,用cpld完成373、244、273等功能,这就进了一步,有时序的概念了。最后,用cpu的数据口、晶振、wr、rd、ale等信号接入cpld,把cpld做成几个字节的ram,读写实验。这一关过去之后,cpld与单片机的接口就再无秘密可言了。

  与51单片机的接口注意必须深刻理解cpu的工作时序,地址与数据口如何复用,ale信号如何锁存地址等。与arm7的接口相对简单,因arm7比较灵活,对外部接口的管理功能强。

  初学者使用cpld的时候,建议在所有io脚的连线中都串联一个51欧电阻,这样会方便测量,更重要的是能保护cpld的io口,更深入的说,能改善高速信号的振铃、信号反射,提高信号完整性。

  4:cpld与fpga的简单介绍

  Cpld比较简单,fpga更加复杂,在cpld基础上,增加了PLL、硬件乘法器、ram块等硬件资源。更有的fpga直接集成了dsp的硬核。Altera的max ii系列cpld,其内部应用了走线池,因此严格地说它已经属于fpga了。

  目前主要的cpld和fpga厂家是altera和xilinx,还有actel等规模稍小。Altera主要面对商用和工业用,其产品性价比稍好,市场应用最为广泛。Xilinx初期定位在宇航级产品,因此,它的芯片具有更好的性能。后来xilinx也面对商业用户了,因此形成了与altera分庭鼎立的情况,两个这么大的厂家,芯片的系列十分类似。建议初学者使用altera的。当然,使用xilinx也无所谓。

  Altera的开发环境是quartus,笔者使用的是8.1版,已经老了,但是够用,且不出问题,姑且使用。Xilinx的开发环境是ISE。这些环境本身已经提供了比较完整的仿真功能。但有一个功能更加强大、更加独立的仿真环境是model sim,它分前仿真和后仿真,由于altera和xilinx的主导作用,因此model sim提供了这两家的芯片的完整支持。‘前仿真’属于逻辑仿真,所有瞬态时序同步发生,用于初期测试逻辑功能是否正确。‘后仿真’则带有延迟特性,这与芯片内部构造和编译后的内部走线密切相关。这个后仿真,一般情况下就等同于在实际板子上跑的结果。如果在pcb上跑出现问题,则此问题就比较难解决。

  软件分两种规范,一个是verilog hdl,一个叫vhdl。前者基本就是c语言的底子,因此对于工程师来说,很容易上手,所以用verilog的人非常多。Vhdl则更加严谨,其语言规范需要一段时间熟悉。如果要长期以hdl语言为伍,则推荐学习vhdl,它的结构更加严谨,能避免比较复杂的问题的发生。听一个在华为的硬件工程师说,华为要求必须熟练一个语言的同时要能看懂另一个语言。

关键字:CPLD

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/1126/article_2727.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
CPLD

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved