|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PIC:Peripheral InteRFace Controller。' ^. M$ q8 ~- G! U- i
( Z4 U' y; R! F& q2 JFPGA:Field Programmable Gate Array。
& X3 @4 e- Q" }4 t0 U) \! P: p2 J# J' y( \
关于二者:
/ a, k. H# t3 s9 g2 d
! z b6 a1 |( Y3 w% F. I区别:) o- h5 z* C# Q- W- P
5 c5 m E; r1 T! FFPGA是逻辑门器件,可以配置成为并行逻辑模块。FPGA最大优点是并行处理。例如构建一百个与非门,FPGA可以在一个周期同时完成信号输出。6 N8 k2 g' U* u- ~' ]
PIC是controller类型,执行process,例如C语言程序。之所以称之为process,是因为这个程序是一条接着一条执行的,无法同时执行。所以即使可以给100个信号求与非,它们的输出也是一个一个输出的,不会像fpga一样同时输出。1 J% U) \0 A! d7 K$ w, `/ v' d
' j( J9 r6 C9 {/ k5 s9 D
优缺点:
0 K8 m" v+ m. p5 J6 Q* Q R y1 T( x) V# _
fpga的优点是并行结构处理小逻辑非常迅速,而且可以构建非常多的并行模块。曾经做过一个项目就是需要20路并行SPI通信接口的,只能用fpga。因为pic系列一般只有2-3个SPI模块。
7 d8 v) R2 h( M3 ~8 n# R
7 t! Y) d' x- H, V另外,fpga的引脚十分灵活,真正做到了设计电路时不需要考虑接线。因为fpga引脚功能都可以编程完成。pic虽然也提供了各种IO口的分配方式,但不是完全随意,仍然有一些限制。
) G. C* j! a7 ~: ]. V1 g$ t; d- G4 b& Y8 V$ o6 `" D
fpga缺点是价格较高,处理process的能力不如pic强。另外,pic的外设非常丰富,这也是fpga不足的地方。一般的单片机都有adc(甚至dac),内部flash,超级多的timer,pwm生成器,比较器等等。可以说,随便买一块pic,这些外设都是有的。但是fpga的话外设很少(也可以买带有外设的,不过贵),一般flash、adc都必须用户买芯片自己配置。
1 ~# S" q8 _7 c8 S2 Z$ r# Q
3 o+ }+ x. p4 o移植性:
% N8 u# r+ A s7 D9 e8 q E
) _3 f3 Y+ [" C2 H }4 I( o+ Dpic的程序基本上可以完全用fpga来做。但是fpga能做的pic不一定能做。5 ^, T7 S6 B( h) }8 a. G* F
fpga目前有软核可以使用,使得c语言编程成为可能。软核就是利用hdl语言在fpga内部用逻辑电路搭出一个控制器,用于实现process。并且这个控制器的IO口可以根据用户自己定义。不过软核也有缺点,就是速度还不够快,优化做的不如pic好。而且fpga软核的使用价格也很高。$ y. u5 q: J( ~) A2 V+ P. F! X
& u' v- D* F6 Z$ d; L' C% ^个人经验:
% V. |+ V4 Z) Y* S, m) c y5 i: I% m, Y; x+ h
pic系列的做控制系统,功能已经完全足够了。一般情况下不需要用到fpga。当信号非常多,非常复杂的时候,一般采取fpga+controller的方式。fpga作为状态机、片选、外设接口来用,controller执行程序。
" ^* O; k! K8 ~ G5 X" O W7 e6 f# Z4 i7 K
在执行process效率不需要太高、并行接口较多、或者需要电路非常灵活的情况下,选择fpga作为开发还是不错的。只是考虑到软核价格的问题,一般只能做开发。
7 V8 {" n( Z7 T% o/ n; v# b( O, X! _$ b
|
|