关于PIC和FPGA
PIC:Peripheral Interface Controller。
FPGA:Field Programmable Gate Array。
关于二者:
区别:
FPGA是逻辑门器件,可以配置成为并行逻辑模块。FPGA最大优点是并行处理。例如构建一百个与非门,FPGA可以在一个周期同时完成信号输出。
PIC是controller类型,执行process,例如C语言程序。之所以称之为process,是因为这个程序是一条接着一条执行的,无法同时执行。所以即使可以给100个信号求与非,它们的输出也是一个一个输出的,不会像fpga一样同时输出。
优缺点:
fpga的优点是并行结构处理小逻辑非常迅速,而且可以构建非常多的并行模块。曾经做过一个项目就是需要20路并行SPI通信接口的,只能用fpga。因为pic系列一般只有2-3个SPI模块。
另外,fpga的引脚十分灵活,真正做到了设计电路时不需要考虑接线。因为fpga引脚功能都可以编程完成。pic虽然也提供了各种IO口的分配方式,但不是完全随意,仍然有一些限制。
fpga缺点是价格较高,处理process的能力不如pic强。另外,pic的外设非常丰富,这也是fpga不足的地方。一般的单片机都有adc(甚至dac),内部flash,超级多的timer,pwm生成器,比较器等等。可以说,随便买一块pic,这些外设都是有的。但是fpga的话外设很少(也可以买带有外设的,不过贵),一般flash、adc都必须用户买芯片自己配置。
移植性:
pic的程序基本上可以完全用fpga来做。但是fpga能做的pic不一定能做。
fpga目前有软核可以使用,使得c语言编程成为可能。软核就是利用hdl语言在fpga内部用逻辑电路搭出一个控制器,用于实现process。并且这个控制器的IO口可以根据用户自己定义。不过软核也有缺点,就是速度还不够快,优化做的不如pic好。而且fpga软核的使用价格也很高。
个人经验:
pic系列的做控制系统,功能已经完全足够了。一般情况下不需要用到fpga。当信号非常多,非常复杂的时候,一般采取fpga+controller的方式。fpga作为状态机、片选、外设接口来用,controller执行程序。
在执行process效率不需要太高、并行接口较多、或者需要电路非常灵活的情况下,选择fpga作为开发还是不错的。只是考虑到软核价格的问题,一般只能做开发。
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号
扫描二维码关注杭州卿萃科技FPGA极客空间