|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PIC:Peripheral InteRFace Controller。2 A, p4 Y3 q1 Z2 {& P9 R9 p2 m$ m
& l$ [3 ]( c9 V2 G; LFPGA:Field Programmable Gate Array。
) _/ z) Z" x* o. g( t
8 O% R# N5 j; T, c' }% _' l关于二者:( ?1 V4 D/ M; }
- s* V# O' \- j# m' ]8 H- o
区别:
- W& ^6 U p B: e# l8 Z- u
c/ C( z' p4 j- x' R1 c0 s# sFPGA是逻辑门器件,可以配置成为并行逻辑模块。FPGA最大优点是并行处理。例如构建一百个与非门,FPGA可以在一个周期同时完成信号输出。/ z& c8 S) k9 F# S8 |7 t
PIC是controller类型,执行process,例如C语言程序。之所以称之为process,是因为这个程序是一条接着一条执行的,无法同时执行。所以即使可以给100个信号求与非,它们的输出也是一个一个输出的,不会像fpga一样同时输出。
( D9 U: ^; k/ k2 h& }
5 D" I6 r: A9 ~优缺点:
% K0 Q' _" G+ W1 g( y7 v) E) c
% l" Y. C' B: U- Gfpga的优点是并行结构处理小逻辑非常迅速,而且可以构建非常多的并行模块。曾经做过一个项目就是需要20路并行SPI通信接口的,只能用fpga。因为pic系列一般只有2-3个SPI模块。3 [6 X( ]6 O+ N) X
6 M+ u( ?) W- `& g另外,fpga的引脚十分灵活,真正做到了设计电路时不需要考虑接线。因为fpga引脚功能都可以编程完成。pic虽然也提供了各种IO口的分配方式,但不是完全随意,仍然有一些限制。
, Y# s& M$ b1 ?* F7 O+ w* ], \2 J, M# q! K0 V' ]9 V
fpga缺点是价格较高,处理process的能力不如pic强。另外,pic的外设非常丰富,这也是fpga不足的地方。一般的单片机都有adc(甚至dac),内部flash,超级多的timer,pwm生成器,比较器等等。可以说,随便买一块pic,这些外设都是有的。但是fpga的话外设很少(也可以买带有外设的,不过贵),一般flash、adc都必须用户买芯片自己配置。" `9 T5 x0 _& C+ o3 V
( k6 ~ X3 } j8 g# v移植性:
a6 t) K! R4 P4 H/ X
0 s( h% ?- J! ^3 I& ppic的程序基本上可以完全用fpga来做。但是fpga能做的pic不一定能做。5 T1 f$ @: [$ }! p% i
fpga目前有软核可以使用,使得c语言编程成为可能。软核就是利用hdl语言在fpga内部用逻辑电路搭出一个控制器,用于实现process。并且这个控制器的IO口可以根据用户自己定义。不过软核也有缺点,就是速度还不够快,优化做的不如pic好。而且fpga软核的使用价格也很高。
2 H) o# Y: ?# K. H7 P$ u4 C0 i1 l- Z- k. _
个人经验:( k. ^: Q/ b, q3 V
$ `3 {) L5 f2 }( R, fpic系列的做控制系统,功能已经完全足够了。一般情况下不需要用到fpga。当信号非常多,非常复杂的时候,一般采取fpga+controller的方式。fpga作为状态机、片选、外设接口来用,controller执行程序。
9 z" K* D) Q+ w7 t. C f b/ ]) ~2 C1 C/ r% m% B# L
在执行process效率不需要太高、并行接口较多、或者需要电路非常灵活的情况下,选择fpga作为开发还是不错的。只是考虑到软核价格的问题,一般只能做开发。, r/ Y: b1 Y, g" `2 S" U
( b) |! k7 |+ N' i9 f0 U H/ B; ^7 S |
|