|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PIC:Peripheral InteRFace Controller。$ S) w- S* l2 `% w! y5 a6 p: G
" S* Q- e/ @2 x
FPGA:Field Programmable Gate Array。9 m' L$ {4 C+ A3 V( z4 y
+ s, z& | R' U8 N; ^$ _关于二者:% X& I& b0 W3 B$ R( s
6 Z9 x# E! p7 Q! \3 H6 I区别:
8 ~: G1 ^. C: P; A) U
{ ~8 b: i. v& ?FPGA是逻辑门器件,可以配置成为并行逻辑模块。FPGA最大优点是并行处理。例如构建一百个与非门,FPGA可以在一个周期同时完成信号输出。
- f( }# y3 E# _6 {PIC是controller类型,执行process,例如C语言程序。之所以称之为process,是因为这个程序是一条接着一条执行的,无法同时执行。所以即使可以给100个信号求与非,它们的输出也是一个一个输出的,不会像fpga一样同时输出。) `2 m& X0 d$ X& H. V# F
% V# u- b, _. {# L8 K; E
优缺点:
. Y8 u- D- X. W0 r2 R% _" Q3 r! q* @5 I+ \
fpga的优点是并行结构处理小逻辑非常迅速,而且可以构建非常多的并行模块。曾经做过一个项目就是需要20路并行SPI通信接口的,只能用fpga。因为pic系列一般只有2-3个SPI模块。
* \; t4 [! U8 _7 z/ Q$ S5 V# @% r- W- g1 |% Q
另外,fpga的引脚十分灵活,真正做到了设计电路时不需要考虑接线。因为fpga引脚功能都可以编程完成。pic虽然也提供了各种IO口的分配方式,但不是完全随意,仍然有一些限制。( p, w5 T' K" {! }
# V. u7 E1 x6 f# `! ?
fpga缺点是价格较高,处理process的能力不如pic强。另外,pic的外设非常丰富,这也是fpga不足的地方。一般的单片机都有adc(甚至dac),内部flash,超级多的timer,pwm生成器,比较器等等。可以说,随便买一块pic,这些外设都是有的。但是fpga的话外设很少(也可以买带有外设的,不过贵),一般flash、adc都必须用户买芯片自己配置。( t3 w0 z& ]" i P6 i, X- |
- W5 ]0 d3 Z% b" h8 _4 R移植性:
9 Q7 L @ R9 O; q$ g. }2 j/ Y* _/ ~- H4 j
pic的程序基本上可以完全用fpga来做。但是fpga能做的pic不一定能做。$ `: }8 [0 T* g+ Q4 U
fpga目前有软核可以使用,使得c语言编程成为可能。软核就是利用hdl语言在fpga内部用逻辑电路搭出一个控制器,用于实现process。并且这个控制器的IO口可以根据用户自己定义。不过软核也有缺点,就是速度还不够快,优化做的不如pic好。而且fpga软核的使用价格也很高。
, t% H2 J* p1 s. x) c
9 h. }/ b% @9 S$ L, M个人经验:
3 r9 h2 M8 y4 C0 T
- g& D) F" I2 q* J7 ipic系列的做控制系统,功能已经完全足够了。一般情况下不需要用到fpga。当信号非常多,非常复杂的时候,一般采取fpga+controller的方式。fpga作为状态机、片选、外设接口来用,controller执行程序。5 ~ l- }5 V; S, \( X I; j! S
T/ @2 p3 A: ?
在执行process效率不需要太高、并行接口较多、或者需要电路非常灵活的情况下,选择fpga作为开发还是不错的。只是考虑到软核价格的问题,一般只能做开发。2 l* W" i! v8 w
! y: ?9 }( ?$ Q: t* [: i i% m' p
|
|