|
4#
楼主 |
发表于 2008-11-13 18:45
|
只看该作者
Cyclone III 与 Spartan3 的对决--苹果对苹果?经常有人说,为什么你们的LEs数目相同, 价格很不同。 做些解释, 一家之言。
# |1 M5 E; q6 g, z. J5 E1 P9 ]' S4 s! M4 }
1---在今天,尽管是可以编程的器件,还是有不灵活的地方。 例如, 你的应用决定你对什么资源敏感* N% c% g" p* {' u. U
2--不同市场也有不同的关注。 没有哪个东西绝对适合, 只能是系列之间互相交叉来完成。
0 R7 m& i- P+ s, m
% V* `1 F9 l0 H L有一点要说,那些所谓我的是多少系统门的比较方式, 是典型的大忽悠模式
% }/ @$ Q* v B! m) G0 X3 t! n7 i! E: ?# h6 @6 g$ Q7 B3 X. j
比较产品有很多benchmark。 这里列举一些。 不全的地方, 可以大家补充。 3 `& m1 Y% I/ L8 D7 d
5 }0 M, F: b1 I; o' w* A8 J1--工艺2 F9 C3 ]! V& T% M& f e
% W- d6 O8 p" x
Cyclone III,65nm L v2 i5 d' G. X
Spartan3, 90nm
8 K' V8 C. h. k
U( f7 }# t1 S! X8 H眼前看, 90nm是主流工艺, 但是未来降价空间在2009年中达到轨点, 另外,65nm的功耗不用说,35%的优势轻轻松松。
% W: C# j3 Q% [0 T6 I( B1 r* w
/ f6 V7 h+ O2 @ A2 n. ?8 @2--设计学+ |" M3 R& f8 G
; s: O: J/ ?# a7 ^& D
CycloneIII ---LP工艺, 有很多人不理解这个,同样的设计采用LP和不采用就很大不同。 4 y1 R$ W+ |+ x) f5 |
Spartan3--没有采用
1 `, s' h1 Z7 T) o% i: n
, y8 t5 y9 k# B/ l) b4 F3--规模1 C! N+ O6 G) _% k4 Y; E; H5 T) `
4 J* B& ]; b5 V/ @. @2 I$ M5 N
Spartan3,3e,3a,3an, 覆盖区域不同, 从1K到40KLE左右
5 T& }4 y' l# X) m' S$ OCycloneIII: 典型长中长焦距镜头, 5K到120K,4 a; a/ D5 D' g4 X+ X
$ h- q/ R2 Z) m3 X40K 以上, 基本上Spartan3没有产品,可以用V5, V5定义为Highend, S3定义为Lowercost- Z! Z# y6 C+ h9 h/ {
无线,DSLAM,医疗, 平均规模在25KLE到80KLEs为最多, CycloneIII解决了有无问题
c" p/ E( u) n7 t# ~9 K) K
: E" |% T6 A6 ]* n+ h. b4--Memory1 p6 H9 j# X& A* s" E
2 ]- W: m- W/ K: Z: t" @0 f
这个是CycloneIII的幸运之处, 当时可能设计上没有这么大吧。
+ ?. V7 y4 Y. V8 Z9K块, 总容量绝对平均高出S为30%, 块数也同样。 Sp3dsp例外, 但是他只有两个孩子。定焦镜头。要符合你的品味。
/ @- d( b( Z+ A: ?6 q4 @6 H4 q% l* O* G6 m% n
memory多影响到: CPU速度的提高, DSP应用,DUC,DDC,FIR等,级数上可以做更多。 速度高, 还可以提高复用。 O& D2 P6 _. r0 {
* [7 A4 P* _9 _! r) g& h, h. m5--乘法器, 一个18x18的乘法器,相当于350-450个LEs,当然流水的话要另外算。 8 G% r& K( i8 X, x! Y$ z
- Q" K* f, V! D* X" s6--PLL: Altera是模拟的, X是数字的。 恢复性和收敛速度那毫无疑问,地球人都知道模拟的好。 A的时钟树更是多# O4 ~* [6 L [+ v, E
% Q6 G s- ?% k$ g; k% C. K. p7 d! f7--布局: 从左到有, 基本符合多时钟域交叉,
0 D# n- a( v; c2 I7 U! R) t# d k- y
如: LVDS入, 经过第一级FIFO,进行时钟域交叉, 或者数据交叉, 第一次处理, 然后经过中间逻辑加工,参数重加载等,然后进入乘法器, 可以级联, 然后有通过通用逻辑池进行加工, 再次通过FIFO或者RAM来对接下一级。 ' v% s3 u0 f& O$ Y" K: i9 I2 F
: y4 h. a& D4 b9 b其他行可以独立构成NiosII等, 布局收敛性一流。 我尽量找个照片来显示。 9 D* W% I4 v6 @' b
3 l u x+ V/ @) ?2 ~3 ~
& P5 {1 L- ~8 q, f6 i, @所以不是简单说我的苹果和你的苹果一样。 S3只有销价处理才是真正的出路。
+ E3 \/ N/ u: g- ^+ _" b9 L0 @5 ~. a3 R$ g* Z
+ Q$ D; F) s! ]6 fCyclone III的巧合。Cyclone III的诞生,可以说也是有划时代意义的。但是赢得偶然,其中已有些必然。下面来说说这个东西。
5 z7 V5 l+ P( d; w v" Z) m: U/ J4 Q- R8 p
前面有人说过Xilinx的V5不错, 但是如果说V5和StatixIII带有Serdes的产品同时间面世的话。 作为设计者, 可能问题就来了。 太多选择就是难以选择
. f! W. |9 K1 {% Z. T/ W n# G2 c& S4 V# C6 M4 H2 e
StratixIII 速度快, 布线好, 但是没有Serdes
% p0 ~2 S) b. g( @! b& C( U5 Q5 p! K, uV5速度布线都不错, 出来的早, 快人一步也是卖点。
8 ^/ w2 c* n( n) c' i9 l7 Z' a' }( L8 V. N9 K
但是呢?这两个产品都很贵。
0 Q' [6 e6 Q d" k- g: k3 p# g" ]3 G c% s7 U5 q4 |, E0 @
由于Xilinx很重视高端用户, 因此他们也认为Spartan3可以解决目前很多需要,这个也对, 因此他们计划在45nm左右推出Spartan的升级产品。% T" x" h7 Q& L5 \% G
. l$ J# i& @4 P. OCyclone III,正好赶上高端DSP处理市场的繁荣, 以前Xilinx的website上面也有这方面的迹象。 号称Xilinx也是一个DSP的公司。 这个也要得益于其他生态链软件系统的发展, Matlab的simulink,* \) P& ]. `! r% w+ f4 _1 e
Z5 v7 j/ f, `: x! N$ m8 `' q0 a另外, 目前的有线系统中对Memory的需求也非常高, 作为有效的缓冲也需要更多的空间。
$ A/ i7 |2 ~% k& } O( g3 g! W举例来说, 一个Video的应用。 需要一些滤波或者其他的应用, 那需要的FIR的Tap数目实际上是可大可小的。 但是以前他们认为逻辑资源的比例太多于DSP的建立资源。 导致很多设计用30万个LE的资源的FPGA,实际上, Logic资源利用在30%左右, 而Memory仍旧显得很局促。 还有一个就是用DDR2的设计也有增多的趋势,
3 |, E$ W( H* e# o' W
6 y& x) _" { f0 V3 h; |: W4 i
% n1 R: j% f$ m8 {$ W2 Q还有就是中型设计的比重已经上升很快, 就是在3年前, 大家很多集中在6000个LE左右的资源。 而紧接着的趋势是200个500个左右的资源和10000个LE资源的迅速两级化。 另外一个增长就是50000个LE左右的区间, 而这部分长期以来都是Stratix和v4,v5的传统空间。 可是现在由于memory,mulitiplier的增加, 导致系统性能也可以用CycloneIII实现资源换取速度和效率的方案。 因此CycloneIII的资源也能利用低价格来和高端FPGA分一杯羹。 2 X6 Q) Q, U/ o9 q o
5 j: H6 k5 ]% Z% y/ i% |7 F1 V但是CycloneIII尽管有价格优势, 逻辑和memory的优势, 可是在Serdes的应用上, 还是一片空白。 这也是大家觉得他的缺憾所在。 ) i0 J7 \; |2 M0 O; h
m5 [6 I* Z5 n9 Y: ?$ }. ?
总之, CycloneIII和Spartan3 DSPA系列的推广, 已经有一个暗示的信号,就是, c$ o0 N/ Q) v, P
a, ^/ Z* Y% a* \
以多块,大容量memory,Serdes可选的特点将成为新的中级FPGA市场的标杆了。
$ k8 n( H) ~/ @1 E: B- O" J4 S2 f$ c. A7 H s. h
9 G9 z2 x- q5 L+ Z
为什么Cyclone,或者说Altera的粗颗粒有一定的好处?大家都知道, Altera的结构可以说看起来是大开大合, 实际上是粗中有细。
. j* ?4 k m# Q4 i% o4 a& e5 j以前一个LAB有8个LE,大家都可以理解, 后来又发展成有10个LE,有16个LEs" O! d& o, x: Q" V0 p- s
cycloneLAB.JPG (30.67 KB)# u. u* t" }8 z$ m* V% z
2008-10-8 22:35/ n1 y0 Y; U& j$ }! g2 h) }
7 ?" u7 p1 B) P9 A5 o
7 s3 k. g( W& w如果你有一个计数器,假定在Cyclone里和Spartan里面跑, Cyclone和Spartan在做8位计数器方面应该是不相上下, 但是, 当在16位计数器还要跑同样的速度, 而且保证路由资源最简单的时候, Cyclone的优势, 或者说A家的优势就来了。
6 b7 p& ]1 r; \! @3 X# y! g8 V
8 s, z" ]2 B# [4 @
1 P# S, K9 K! y* B, ]6 X- }大家都知道,计数器就是进位翻转的传递链路是他性能的关键路径, 换句话说, 16位的计数器,就是两个8位计数器的级联,唯一区别的复杂度就是8位的传递时间如果是8x,那16位的就是16x了。 用另外一种方式来思考:2 \4 E. \9 z! B5 b; b. B
" C- K* o6 k$ K8 E
8位的计数器, 在到达FE这个数字的时候, 就用一个DFF进行一次隔离, 提前一个时钟节拍将进位准备好, 这样就将一个16位的计数器的复杂度降低到了8位一个样子。 可是原本Cyclone的LAB就有10个LE,因此为了防止毛刺的问题以及刚才需要一个插入的DFF,就刚好放在一个LAB里面, LAB里面的路由是最快的, 而且编译基本不太花时间。 同时也为设计流水线的译码技术, 提供两级的DFF延迟, 但是这些全部做到了放在一个LAB。 : U3 q6 x2 b$ v/ _
! p( E& N/ V& w/ s, d, c3 [! Z8 Z
大家回顾一下我们的设计, 不就是计数器, 加多选一, 什么FSM就是那几个玩意来回的组合。 然后中间加流水, 再平衡流水寄存器之间的路由。 没有新的发明, 只有新的组合。 但是Altera这样的结构就相对来说。。哈哈又要吹一下牛皮了。# j. h" n5 m# I. ^; K0 s
$ E3 m& m. N+ c+ t' @0 y, Q' Y
; s7 Y( L8 i' o. q! h6 m过去10年FPGA产业的发展和FPGA厂商的挑战?过去10年, FPGA产业发生了些重要变化, 简要3点:3 `1 K9 }: k8 S: z! q- r3 }+ \
7 ~ h" }! P. I4 m3 W \
逻辑数量超过10年前50倍, , t! \' N& y2 G, ~# E
存储容量超过100倍( ?! ?6 {0 J6 ]+ x
Serdes速度接近10G(Xilinx6.5G)
" G9 X6 Q! Z" s" B# R/ Y消耗功耗只提高10倍多些。
7 b6 y5 _! t. `1 d0 P y n3 L: Y===============================
$ S0 E4 }1 M! ^ b% i" N
! G! _; x/ s* A2 K6 {编译算法和综合算法的提高 s; c w \; E2 ~: S2 L* S
和结构结合的物理综合
7 i. d$ D# b8 Y$ Y编译平台多CPU的支持, 例如4核CPU的PC
( H2 l% t2 k1 W. s递增编译和编译约束的更好支持
5 j, y# P6 p+ [
; l) b+ {! L3 w# G1 d
; p4 O+ Q" J6 b. e W$ A0 e" }cycloneIII结构和Spartan3,V5在结构上的对比。主要指DSP应用或者数据链应用结构上的差异,首先看一下简单的结构上的! w9 ?; @( ?: S, j9 ]) D0 |* A, A- m& F
c3v5s3ram.jpg (142.15 KB)5 M# [1 o$ F3 I: F
2008-10-30 00:51
: u. j( X) Z0 V6 e( B3 n2 g3 T) C/ I. a0 ^
# u0 Q3 Q# z( e" X2 O# C% i9 k+ z5 ~1 T( W& f# l; g
CycloneIII或者V5, 或者S3
4 E8 `1 C' X; J, L0 C! T- X: H' n: n6 ?
乘法器的数目乘以2,就是大概的RAM块, 但是到了稍微大点规模的时候, 就是RAM块的个数有大于乘法器的个数的趋势增大了。 而且CycloneIII的RAM块的个数有比较大的优势。 1 Z# O+ i! I9 _7 x0 |+ q8 E3 b
0 b% n) w" H3 l' Q$ t. Q
另外一个重要的参数。 7 B( h( f, i5 `( w
" f8 G0 V0 n$ T! C* o
V5,110规模的RAM的容量和CIII的120的容量基本相当。 / O* N+ k4 C9 j' r( r+ y
S3的两个和CIII的40,55这两个兄弟的容量基本相当。 6 x6 F- O. \8 e; L3 c
( q5 c+ J3 |4 x- j" e" @% y2 n+ t, z这个时候。 我们再来看FPGA在DSP上是如何应用的。
- P1 p i+ L0 G
; p$ j' F$ P: D4 b# T5 K实际上数字信号处理,可以看成就是一些信号的延迟和一些信号的卷积, 也就是象下面的结构图, 这里信号的输入, 输出, 以及参数都是需要FIFO来完成。 那么在FPGA中就是要靠BlockRam来实现。 有些人可能问, 那为什么不都是RAM的个数两倍于乘法器的个数, 这里要注意到是, 当乘法器可以复用的时候, 就可以认为RAM块的个数是DSP应用的关键因素了, 例如, 是否可以实现更多级数的FIR,是否可以实现更多级数的FFT等。
, h7 f1 Q S, g7 O
: e9 h" N7 @$ {- A因此, DSP应用中关键的因素就是
! ~1 a9 r3 Z S1 a
8 t$ Z* K g K; ?. D1--,memory的总容量很重要
& t2 k' R, k/ c) m0 T: E2---memory的块数更加重要,
- p a2 |' E1 `
# \& p2 m Z1 H* Y- N如果这两个因素可以表现比较好, 就说明他更加适合DSP的应用。 因此你选择器件的时候, 这就是两个关键的因素。 / K6 @# e* c! _
$ S: q5 Q g4 o4 A& W- U DSPapp'.jpg (27.33 KB)
* s E3 Q' c% S) B7 C M2008-10-30 01:07
# U' w4 _% _5 n! U. m( D6 g7 `8 T7 e$ u, ~7 h) e) d* ?/ }& `
* ^& ?* {0 _4 u f7 s) F. @
0 P, M" l) G$ }; K9 y3 O3 R( S
2 x1 U9 T4 K6 R8 P: {
7 @5 S Z4 h/ Q# k0 K, S他们的分歧在哪里呢?大家实际上可以看到的主要分歧就是StatixIII中ALM结构和V5中的6-LUT结构的比较, Altera认为是1个ALM相当于1.8个以6输入LUT为基础的逻辑单元结构。 但是Xilinx认为是1.2个, 因此就得出截然不同的结论。
# E/ b1 g: n$ t6 R; C: _3 `" C) d0 W, S' y% e* i
这里Xilinx说,Altera的设计样本中有很多是经过挑选比较适合Statix结构的, 也就是说Register-rich的设计相对来说Altera是占便宜的。 如果只是比较大扇入的LUT,Xilinx应该有优势。
6 M; `% O9 N) s" |
6 e3 ^8 C9 G! Y5 `1 s; X不过我搜索了一些文章, 又发现一些不同的论调和Altera的论文。 3 ]+ i" R5 x+ y9 c# y
3 [' y( g* T: s9 |
1---用流行的第三方的IPcore来测试谁的器件更加有好的布通率和利用率% ~/ }' M9 A/ J2 W# Z! ~6 T
2---用第三方的综合工具来进行综合* Q% G, m0 O2 w- X; W
. ]7 P# t! ?* _3 k @/ V$ B: ] Z大家可以看到这里链接, 尽管是Altera的人写的, 但是也有一些借鉴的意义。 1 g8 M/ N \+ U" k2 o. V
$ j% c! ^# t# T* Xhttp://www.pldesignline.com/showArticle.jhtml?articleID=197005332
e+ b1 e; I9 I# P( D
( _7 @& L2 `- ~, a* k( B这里也有一些我自己的见解。我用红色画上不同点。
2 B8 T1 D" U/ _0 C
8 i! ^+ l2 V% a$ Y8 Q V5andS3.jpg (68.66 KB)
8 J8 a: o8 f! O& C' C2008-11-2 13:48- H" x; @+ S+ t; I
% _2 L: u* b' Z3 ] P* V
4 G4 d0 |( s& F1 N8 t# i( s }" C( G+ S! ]5 ?- e
可以采用另外一种说法: % D; z. {+ J$ P6 |/ `
ALM是一个至少6输入LUT, 有时8输入的有至少4个输出的包含2个DFF的结构。 / h2 N; S/ T" N: |* ~* R0 j h* @
. f7 p1 P% p' X6 e
V5 的单元是一个6输入LUT,有3个输出的包含一个DFF的结构。 1 E2 K. ~8 {- s) M5 g8 B/ s
! H& N8 x( D( v1 f, a- {
如果你的设计是全同步, 多级流水结构的设计, 那么S3占有上风。 如果不是Rigester敏感的, 要看运气
0 i2 \! k% P2 v& Q2 L, s6 v9 S& ^2 }8 g
如果你的设计中有很多高性能的宽度比较大的总线结构, 那么S3也相对占上风。 # h/ P. H5 j7 K: G+ c$ f4 o/ W
3 K: r* u) Q& h7 x' K1 l在资源利用率为70%的时候, SIII和V5区别不大, 在超过这个的时候, 要具体情况视乎最终结果来看。 根据双方提供的资料, SIII在20%的设计中拥有两倍以上的等效容量比V5,在5%的设计中,V5的容量和SIII相同。 以下内容出自Xilinx的论文:: I+ x. \1 }3 R4 e# Q; k
$ b; ?/ W3 p# |# z% u xilinxtechv5.jpg (59.39 KB)4 d1 Q J7 ~0 B
2008-11-2 13:48
+ N' C2 s' ?1 t
/ {1 ?2 O- H6 }, A5 S8 Y, H/ j7 B
更加权威或者说学术论证的说法大家知道, 产业界总是以引用谁的文章次数的多寡来说明这篇文章的重要性。 1 u; C+ s3 Z8 ^0 b6 Q
" k4 B( `9 g( `, K在Google上搜索以及切的图形! f" s( u6 Q0 y$ @
3 ]/ U* Y" t4 x" Z* \5 J
IEEEFPGA.jpg (157.53 KB): z5 ]8 ?+ ^' f; y+ A2 W
2008-11-2 14:142 G% a6 y L5 |* A3 s) s9 x
W! }: r+ z, w. \9 e: v
: ^1 G' h/ S- `) u$ S$ z" ?
1 Q# F6 N& h+ h# K% n T- c9 ]
' ^$ X' \% q. W0 z' q8 I( dThe effect of logic block architecture on FPGA performance1 H1 A% h" n. I1 X
Singh, S. Rose, J. Chow, P. Lewis, D.
6 Q) k1 ]$ l- P- j8 k4 nDept. of Electr. Eng., Toronto Univ., Ont.;/ W3 [0 y& C0 ?; {
& o8 j, V$ Q7 e
0 S7 P5 h6 n& T9 BThis paper appears in: Solid-State Circuits, IEEE Journal of
% U: b/ L5 `: r+ cPublication Date: Mar 1992
, C d) G: k0 K6 H4 |4 aVolume: 27, Issue: 3
0 w+ |) B1 K0 x D( M7 z$ }' D# SOn page(s): 281-287! r6 r& L' a( S' l$ j
ISSN: 0018-9200
/ d* H S! H1 s, O' u6 C7 [References Cited: 29
: K6 Z- e, J9 ]+ w( |' p" I! oCODEN: IJSCBC
' @4 V F: j' c: O% EINSPEC Accession Number: 41389576 S9 O+ f( D0 v" k6 u3 d
Digital Object Identifier: 10.1109/4.121549
4 d# |* P2 t5 bCurrent Version Published: 2002-08-06 ' R/ o4 I* t2 |. ~, A/ u$ p- ]. c
! g* K+ E6 z) e, n! D8 [) N8 I
7 [ m' R$ J& v" @% { [5 y
; D* Q8 S& J7 H* |% ]8 M$ d
+ a/ @+ o' U- O6 D
Abstract
/ N/ b7 J _" f2 U$ [- k& BThis authors explore the effect of logic block architecture on the speed of a field-programmable gate array (FPGA). Four classes of logic block architecture are investigated: NAND gates, multiplexer configurations, lookup tables, and wide-input AND-OR gates. An experimental approach is taken, in which each of a set of benchmark logic circuits is synthesized into FPGAs that use different logic blocks. The speed of the resulting FPGA implementations using each logic block is measured. While the results depend on the delay of the programmable routing, experiments indicate that five- and six-input lookup tables and certain multiplexer configurations produce the lowest total delay over realistic values of routing delay. The fine grain blocks, such as the two-input NAND gate, exhibit poor performance because these gates require many levels of logic block to implement the circuits and hence require a large routing delay' `7 ^: H, e9 b7 V; x& d6 p
7 }$ w% A/ } A, |4 @5 j# R9 d- `; N$ X1 t3 s* j
这篇文章是来自IEEE的论文, 已经可以看到,目前的高端FPGA的结构都已经向着“粗颗粒,部分基于MUX,可以打包或者分开使用组合和时序资源”的方向发展。
" ?8 ?+ n8 f1 u- S, U) z
. ?& Q( m+ N& ?2 u% X- u7 I( S而当初讥笑altera最早采用粗颗粒结构的人是万万没有想到,当标准到了一定程度的时候, 裁判规则又发生了质的变化。
; X R( i3 u1 z6 ?1 p; Z2 v
$ E, N. L# b, |6 i7 w) i
6 a7 C' ^' W9 ?为什么又回到了粗颗粒的结构呢?现在大家在利用大规模的,例如以20K逻辑单元来说, 经常有编译时间在20分钟以上, 以2C35,3S1400A为例, 在1G内存的非双核的笔记本电脑上, 基本上都要编译大约25分钟, 我当时就以多少K资源来衡量需要多少分钟, 今天的Altera最大的530K逻辑资源, 可以认为需要接近530分钟, 就是大概要10个钟头, 实际结果估计差不太多, 当然这个要用更先进的处理器的PC应该可以接近, 因为用2S180跑3个钟头也很正常。 # k3 A, W8 e Z/ Y
实际上, 结构的不同和算法也有很密切的关系。 不好的结构, 可能也导致最后没有办法完成布局布线。
. Z) N, B2 W+ |% Q% D6 O
* ]& o1 H" U6 p" U2 Q6 [以前有很多低于4个输入的LUT,或者就是可以拆分成多个小单元的Mux结构的FPGA,称呼自己为细颗粒的。 总之都是以一个LUT加上一个时序的寄存器为基本结构。 这样的缺点就是当设计不是对REG很敏感的时候, 就有很多REG的浪费。 FPGA的细颗粒呢, 可能是基于以前ASIC的思想, 就是可以用更小的单元连在相关的小面积内, 来实现大颗粒的功能, 但是大家应该已经知道我说的那个握手的例子了。 细颗粒的实际逻辑综合显示其效率比较低,而FPGA也必须改名为可编程联线结构, 因为需要太多的联线,路径资源限制了很多应用的成功。 布线不通。 大家都知道, Altera的创新就是以最少的连接线尽可能联通更多的资源。 而且路径太多,必然导致延迟太大, 这也就是现在几乎高端的FPGA无一例外都是粗颗粒的了。 " J1 E% l% ]+ ?0 {; Y$ ~
( q& ?- K/ w6 c$ }0 R+ b* s
当然小规模的, 100个LE,到5K个LE的,可能还有些喜欢用细颗粒结构的。 |
|