CPLD与单片机的区别
推荐于2017-10-11 · 知道合伙人体育行家
CPLD与单片机的主要区别:
CPLD由需要用户编程实现想要的处理功能,而单片机的功能已经设计好了,由用户自己编程来使用它的部分或全部功能。
单片机是软件方法实现,而CPLD是硬件实现的。可以把CPLD看成是一款专用的解码芯片。因为是硬件实现,所以强项就是快。就好像用电脑看电影,用CPU软件解码可以做,也可以用显卡硬件解码,当然硬件解码比较快。
CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,属于大规模集成电路范围。是一种用户根据需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
通俗地说就是通过编程,使之实现一堆数字逻辑芯片的组合功能。比如你想用一堆74之类的片子,你得布线、焊接,时间、人力成本以及可靠性,都不如一片CPLD。
对于你这个应用CPLD与单片机的区别,单片机可用实现高级别的逻辑以及运算,而CPLD一般用来做门电路类的逻辑;单片机自身能够做到数十MHz级别的脉冲控制,而CPLD至少高一个数量级;单片机因为外设所限,一般几个到十几个脉冲输出口,而CPLD可以有几十个。
你说的500个LED,是要同时控制这么多?刷新时间要求呢?单片机做几路这个频率的输出是没问题的,如果要同时控制,则需要缓冲电路,而CPLD可以在一片芯片中编程实现比较大规模的缓冲电路,当然用缓冲芯片也可以就是了。。。
最后说一句,CPLD是比较早的东西,自然也比较廉价,如果学习用的话,我建议还是用FPGA,FPGA比CPLD的集成门电路更多,也就是资源更多,可以生成的器件越大型,而且频率会更高,我的FPGA可以达到200Mhz以上(ALTERA的EP2C8),而另一个是可以达到1Ghz的输出(XILINX的XC6LX16-CS324)。
寥寥数语,说明了我好多天都不能理解的东西。定是大侠了。那么,可以给我这个对FPGA一窍不通的门外汉,推荐几本FPGA入门的书吗?谢谢。太谢谢了。
FPGA的参考书很多很多呢,但其实一类器件,并不是书能够解决的,最重要的是动手。建议你先大致了解一下FPGA的内部构造和功能实现的方法,而后学习Verilog HDL语言,当然,如果学习其他语言,如VHDL也是可以的,只是如果你有C语言基础,Verilog更容易入手罢了。而大部分的书都是在讲语言的,目前我看过的都是如此,但有基本书不错,只是难度比较大,比如ALTERA的官方教程(以前在图书馆借过来看的,名字也忘了),那本书侧重讲的是解决方案,如时序问题,毛刺的解决等,是一本比较深奥的书,有上下两册,一册入门篇,一册高级篇。你也可以去ALTERA的官方网站,里面我电子教程,以前我也去看过,好像是英语讲述的。也可以到VeryCD去下载视频教程,好VERYCD里面也有ALTERA的官方教程。至于书,我就不推荐了,因为我觉得我所看过的书都是一个抄一个,没有一本让我太深刻。
如果要买器件,我建议买ALTERA的,因为比较便宜,而且很多资料都是用ALTERA的芯片。