|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
电路设计漫谈
# K) ?, d2 c% [" W
4 }2 ]) s( a! u' ?5 ]原创Sun_IC,在这里转载,共勉!
3 |- Z2 p6 ?: J4 o0 ?6 R
A1 e3 n5 r5 n做了若干年的电子系统设计。所涉领域有数字通信,数据交换机,模拟电路,芯片设计等等。有些感慨逐渐写出来灌灌水,博大家一笑。
' A; H2 x4 \0 U3 {; [5 E
5 @& q3 j# q1 {3 A3 t××××××××$ R M) E# ]! y* v. ~: A' p( x
第一回:境界层数
4 p& _' w9 T7 _; x% A传统的武功都分若干层,好像大多是7-9层吧,呵呵。这电路设计的功力也一样,印象中有dx分过4-9层。俺这也不免俗,根据自己的经验把它分成了5层。# S) c; t0 f4 T; m& N. C# {
$ i% p9 C$ }$ u- c" f7 I第1层:初步入门。做什么都难。大多时间是借鉴前人或能找到的设计。仿制的过程中来理解电路的架构类型。能拿到一个可直接用的电路很兴奋。经常看些2-3流杂志上的实际例子。做些笔记什么的。经常参加各种会议讲座。设计出来的板子一堆飞线。总是疑惑为啥电路图或者逻辑设计一样,怎么出来的性能总比不上原设计。: I+ e' `. U- G( T, s) U% ?
) e- Y+ W, K- Y+ t
第2层:做了几年后有了感觉。了解了电路设计需要遵循的一些实际原则。开始能独立完成一个系统,即使是新的算法或者协议也能实现。设计一个电路有点随心所欲。觉得这电路设计也就那么会事,什么东西只要有时间都能做出来。但细节的考虑不周(细节这个词可能有误导,其实并不像字面那样简单)。做出的东西长期稳定性和可靠性不见得理想。
1 w+ @" Y+ P4 C7 ^% @
+ ~% F: A$ T( p: t6 R+ z第3层:觉得做什么都要慎重。再简单的东西设计好了,成为批量生产的可靠产品都不容易。即使做个分频器也要分析半天。不管大小project都先仔细做architecture spec,都想事前先做仿真。注重步骤和过程的严谨。以一种敬畏的态度对待大大小小的设计项目。
5 a5 F; ?2 k* n- Z7 T" |知道了R和D的不同。明白做个项目主要80%的部分用20%的时间就可完成。而余下的20%要花80%的时间。当别人说这个项目简单花不了多少时间时,也不愿意与其争论。; a* m! Y' d2 t! m$ H( J
8 I: G( p) G" j5 A. c# |第4层
7 B8 f+ A2 a* R常回过头来看看以前的教科书。比如电磁学上电容的原理。有了些以前不管上学还是应用时没有过的领悟。
& L* b# O( ]* ~1 Y0 B& }注重可重复性设计,测试结果跟仿真的比较。积累仿真与实现一致性的经验。5 C; x1 K6 h9 y$ d
开始琢磨一些新的协议或者想独创点什么。' r9 G; o5 |6 c; Q2 \* O
7 q' u( V1 p1 ?0 M L5 @. d1 y
第5层:只是一个工具和过程,用它来赚钱养家。跟去养猪种菜一样,是谋生或者用来创业的一个手段
( t9 k7 Z: R2 t$ R' h. z) Y& d开始研究电子管,做点自己喜欢的东西
. L% J: }, c- D( ~* O- h7 a( j( Q& h( p2 }
×××××××××××××××××, J* V: }% V0 j/ w
第二回:需要仿真吗,仿真怎么不管用?9 e* i" ?- h' \
4 Z2 ~* _' x# M) c2 @& z) G早期设计电路时没有仿真这个概念,尤其是低速数字设计时。并不是这个不重要。感觉到仿真的重要% H$ l* b( g8 l7 L. f+ [
性是在设计一个3GHz速率的电路时。0 n [$ D6 J6 x5 H& A
% [9 q" [: s0 }! c k( f$ t
大多数情况下,或者初次使用仿真时总是感觉仿真的结果跟最后的测试对不上。尤其在做模拟电路的
* V' p$ @5 C! ^" Z' E( N5 s0 d仿真时,比如运放等组成的放大电路。这其实不是仿真的问题而是 1)model的准确性 2)对实际电! G% r$ u5 O8 P4 h% s' ^
路的描述。
9 E( W, }- n4 E* J3 z7 G
& `5 u, y2 I( }6 X第一个比较容易理解。一个仿真是否可靠,与使用的model直接相关。你怎么描述电阻?电阻在你眼
& o0 U5 H1 k# P4 z' K I里是否就是一个R值?其实电阻是有寄生电感和电容的。电容有lead inductance和shunt resistance
9 {. Q$ U. v0 K7 k5 F。有做RF的人讲如果不是将每个没用过的电阻电容测试一下,就不敢用它做设计或者用它的标准
2 p4 i9 M" n: umodel做仿真。
3 C- x: T; k6 j% \( ]& J9 f1 b" L7 {; M( B. f I- s# ]
你怎么看待电路图?电路图是否代表了所有设计信息?不是的。电路图只是给你了一个所有集中参数1 l% k; V1 i' b$ s
元件的连接顺序。大家知道电路的实质是用电场和磁场描述的。而电场和磁场的相互作用跟携带他们
0 w+ s" u: [6 k& h物体(元器件)的空间相对位置有关。也就是这些元器件的摆放位置,方向,和公用的通路(地,电' ~# i4 v6 D/ @5 R9 h# m6 a; k5 y
源)会对电磁场的行为产生影响。所以一个电路图只是携带了有限的设计信息,至少不是全部!$ g* r; ^/ f0 a2 @
具体来说,每个信号loop的大小和相互作用,在公用通路上的相互耦合,电感等元件产生的磁场对其
$ s# c! X `1 s他电路的影响,大信号(比如控制的输出)对小信号(被检测的弱信号)回路的影响,等等都是应该& L2 N% }6 M4 x% y& t( o% C
考虑的。有时大家在纠缠数模混合设计是否该分地和怎么分,其实你把每个信号都看成有一个loop,3 L/ g/ Z+ Y5 I; X# L
该loop会影响别人,也会被别人影响,分析起来就清晰多了。地和电源符号的使用往往使设计者忽略! ?9 x* A1 N7 l. g" Y0 N2 C4 ^. [1 x" @
的这一因素。
2 c% ^8 j: G7 ~2 d. a/ H. `: p- s f( t& `6 t9 i. |
一般做仿真会从电路图开始编写仿真的描叙。更有甚者有的人想用自动软件直接从电路图得到spice7 ]9 ?* x0 c2 L& u9 l# J
的网表。其实电路图并没有告诉你元器件是怎样连接的,除了告诉你他们的连接顺序外。电路图上表
7 J2 H$ a5 T3 `4 \, d3 L示的是一根线,虽然你做仿真时已经考虑到了一个trace可以用传输线来描述。但在不同频率下介电
9 m6 X' S1 a2 l) |% y8 D8 B* \常数不是个常量,趋肤效应使得高频下的trace thickness发生了变化。过孔对高频影响最甚,过孔: u0 p J5 v5 Z# i
的model到现在也没个精确的数学模型。过孔中non-functional pad产生的寄生电容,你是否想着' o7 V( `2 t/ `4 C; c2 M
model了?via stub呢?记得几年前公司招一个人对他面试,他说起他的博士论文就是研究过孔的model。+ V1 R: t9 `# a
所以仿真不是一个简单的事情。专业的公司有专门的modeling和仿真的工程师。做仿真不是学会了用
, T4 w. [, N, B0 u' g仿真软件就可以做的。就像比尔盖茨用basic能写出MS来一样。
: r m- b3 Z+ ] b# z
, v# G3 U* i" m/ S0 b当你仿真的结果跟最后测试不一致时,可以考虑一下上边提到的两个问题。有篇文章说,一个简单的
% o$ n/ t5 q1 A" ?; A放大电路,在一般人眼里是几个电阻和一个运放器件。在一个有经验的工程师眼中是一个有若干传输
|' q2 `3 H- a3 Z4 m2 ] h% v2 @3 A9 c线,寄生参数,干扰源,干扰回路,以及非线性的复杂网络。当你看到电路图背后隐含的那些复杂网. G' p( K$ p' x( s$ [& t2 E
络时,做仿真才能对你有帮助。
: T2 w f* M# A$ I) g9 G- j& E- Q" G/ b( b# ?! a8 I3 ?9 h, S* V
另外两点:7 i- C" T: V8 b
1)仿真不能替你设计电路,它只能验证你的设计和你期待的结果是否相符
" N6 \+ s1 \( I* W9 K' g2)仿真不只是验证工具,它的最终目的是代替大部分实验台的作用; c- o m: S. E3 P
& U2 ^( a0 M; w, D' J& g通常的设计流程是设计电路,仿真,实现,测试。当你发现测试结果跟仿真不相符时,你可能接
2 f0 g( w8 {: x3 m, `下就修改电路版上的电路,加点电容拉,去掉噪声了,调整放大倍数拉,使得最后得到你的指标。然
# d* R- l( Q% |3 V# Y0 }后就去修改电路图,再制版去了。且慢!这时你可能丢掉了一次非常珍贵的使你的水平提高到另一层
+ y0 o8 P8 V& L+ W次的机会!6 [9 R* Z+ ?4 {3 I. H
1 T4 F+ O* |# \. R/ D' [4 k: n
正确的做法是测试结果与仿真不相符时,在确认不是制造和测试引起的之后,a)先根6 q* h, V( ]( O4 p" L4 c
据实际情况调试你的仿真(可能是模型,可能是对实现的描述)使得仿真跟测试在预计的误差之内
# ~5 C% n7 h- J% M* j8 _
/ w7 c& A$ M) Z" ob)在仿真平台上调试你的设计,使得达到预期指标的仿真结果 c)根据仿真所做的修改来相应调试实! y6 D! w- [7 L$ U
际电路达到预期的指标。以上3步可能要需要有几个来回。这样最后做到仿真和实际测试一直后,你+ }7 F# {9 W. k8 Y! O. k
就积累了完全描述这个设计的仿真知识库和经验。下次做类似设计时,大大提高了你的一次设计成功
1 b" e6 h. X W; q9 [& m4 o率。最后的目的是达到在工作站上进行设计和调试,而不是在LAB的实验台上。9 T+ F7 ^" d b; S7 \3 K1 {6 o8 l
! |3 k# p2 r4 f- ~& w
话是这么说,可有多少人这么做,有多少人相信这么做有价值呢?进度的压力,懒惰的惯性,认识的
3 }9 _! Z' ]4 ^. c4 ]$ }4 x深度。。。。。。所以大侠永远是少数,呵呵。
: p: r9 w, Y2 L& N# O0 F/ ~' d4 K: V
×××××××××××××××
|1 n1 n1 H4 v5 B2 k0 U4 @ r+ x第三回: 数字与模拟,从事哪一行?
, }1 F. K7 m1 u6 j( o( {* h' }. i4 Y$ I1 R6 n
数字化是发展的趋势。从磁带到CD MP3,从模拟电视到HDTV,模拟通信到数字通信。电路设计也是一样,越来越多的是数字电路。但大家可能都明白,一是模拟永远省略不了,因为现实世界的物理量和我们的感知都是模拟量。所以要完整掌握一个系统的设计,模拟数字都需要。第二点:随之数字化的频率越来越高,所谓的数字信号也要以模拟电路的设计原则来对待。即使是低频数字信号,如果它的变化沿很快,所隐含的高频分量也非常丰富,还是要作为模拟信号来对待。通信协议的第一层都是模拟的技术来实现。
; w- W" @, ^" j, n( Q
% a2 v; F7 H$ q数字设计的第一层次是对系统实现和逻辑的掌握。各种设计方法系统级的如各种总线技术,mcu系统,电源系统,互联系统,时钟处理,背板等。芯片级的设计如state machine,pipeline,FIFO,Queue等。感觉数字通信中主要是对帧和系统同步等的操作。数字交换机主要的是对memory的操作。管理用memory组成各种table,queue,FIFO,buffer等。
. q6 r- X6 q2 Z" s' ^+ B# L( a& r; _ v' |* {( s+ w
第二层次可能是对算法和协议的理解与实现。这时你可能对逻辑设计已经得心应手了。主要的是在一定的cost下实现某个算法或协议。容易忽略的可能是可测试性和可诊断性的设计。$ f$ `3 N. E: s/ y/ `+ z7 m2 z u
% u$ W% |& F& m0 V u/ n初步进入职场的话,数字比较容易点。懂点数字逻辑,MCU的编程就可找到不少的饭碗机会。
/ E% o; [; r8 K$ s, O x9 l5 C0 _4 \& O% {8 z! u' ~
感觉做一个合格的模拟设计工程师需要更多的锤炼。并不是说数字设计容易。数字设计可能最后是复杂性,性能与cost的平衡,功耗,算法协议的有效和可靠性等层次的问题。在具体的逻辑层面和实现层面作为设计工程师要么没太多再发挥的余地,要么不需要介入太深(上一回说的simulation的因素除外)。而模拟可能一直得与基本层面的问题打交道,比如材料特性,性能的trade-off,电路结构,实现方式,新颖有效的电路形式,布线等等。随着半导体工艺的不断进步,对数字设计工程师的影响相对小些。而对模拟设计的影响有时是基本的。到现在你还可以就运放,ADC,PLL等基本器件的实现在IEEE上发表论文或去做博士研究。除了严谨的训练外,经验的积累在模拟设计中的作用不容忽视。论坛上有几篇比较好的经验总结的帖子。在这引用一下。1 N' @# S, K+ g) ]2 i5 f" F
$ q6 m6 D8 ], Q/ Z! ~模拟和数字有时也没有一个清晰的分界点。ADC有人就用lousy的analog电路,然后通过数字算法提高其精度。delta-sigma的ADC也是利用了over-sampling和DSP的算法来降低噪声。* a' R4 x% l: m0 F5 L% t8 l
2 V- S' L0 G/ E$ F( h& U如果说非高速(这个点各有理解)数字电路凭经验可以直接设计电路的话,模拟电路如果不做仿真可能就不是严肃的设计。9 n, G1 X8 b2 I2 ] d: d
: z; i d" Z; g& s: C% z! A* m假如一生都从事电路方面的技术工作,似乎掌握一些模拟的技术比较有价值。年轻的后来者在数字设计方面比较容易上手而达到某个程度,而在模拟领域可能需要侵淫更久的时间。当然,国内的公司对大多人来说技术只是个台阶,做到一定程度要么转行要么去做管理(官)。没有一个合理的价值体系,技术的积累和重视人才只是虚假的空谈。像IBM,CISCO,INTEL,HP,TEK等公司,他们有跟管理阶层相对应的技术进阶体系。最后技术职位的地位和利益不亚于对应的管理高位。这样就拥有了一批喜欢和愿意从事技术的人才,也使得他们有丝毫不逊色的利益保证。
/ X1 ?& F- {1 g# a. X) a( N
8 H: n8 c+ A* s+ D8 H/ n# |×××××××××××××××
7 W* s1 f, y* M8 V9 V1 Z, x第四回: 进修有感, U. i3 C& G) y1 i9 @( L9 T( P4 T4 R
f, T- o* O! j' s
电子这行业发展太快,你在大学学的内容大概没几年就不合时宜了。更别说不少大学的课程和老师也陈旧得很。工作几年后,甚至一工作就有去进修的必要
3 \1 f# S4 i0 ]
! y+ s0 y$ [( A1 v5 [ _3 M* F, Z进修有多种方式。1)自己看书啃 2)上培训班 3)在公司跟老一辈学习,等等。各有利弊。7 r) I5 d3 m$ t \+ h1 y
}" l* Z- }* ?* N8 Y. K
自己看书可以掌握进度,专攻急需的部分。像当年林总提的学毛语录那样:活学活用,急用先学,立竿见影。切忌从头看到尾,只学不用。个人的体会是对那些马上用不到的先别花太多时间,大概其了解就行。要把目前需要的研究深刻,并且马上试验。不然花了时间不说,过几年再用时还得从头学起,因为只看不用没啥作用。看书一定要找真正有实践经验的大侠写的书。那些只是会写文章没做过项目产品的人写的,最好敬而远之:一堆书公式数学,什么都谈的很深很细,但没有重点。其实看书不如研究相关公司application engineer写的application note。那些东西的价值和实用性很高。当然又有应用的经验,又能上升到理论分析的dx们的著作另当别论。7 ~' C3 }5 l: d7 b: o' C2 h
$ v1 P. `6 n* z7 i. \
上培训班,如果是有实践经验的人讲的话,还是很有价值的。价值在于你可以得到他的经验,并与之探讨。有时几分钟的探讨和QA比起你自己摸索很久来的有价值。如果做IC之类的设计的话,强烈建议大家考虑在网上上一下伯克利的IC课程。近代EDA和IC设计,该校是圣地。那些老师们和电子技术一起走过来的,他们的讲座能使你了解到技术的精髓。该校位于硅谷跟若干大IC公司有很强的互动。他们的好多学生出来开了很多成功的公司。伯克利课程的另一特点是课堂的互动。有好多有工作经验的工程师们回去深造,你可以像置身课堂一样随着那些高手们的QA而更深入了解一些你自己学习看不到的深度和经验。大多数时候你感兴趣或者不明白的疑惑,总有人提问或者老师回问。听这种课是一享受,呵呵。建议数字IC去听Rabaey的课。就是写Digital Integrated Circuits A Design Perspective 这本书的教授 (顺便说一下,中文这本书译为“数字集成电路设计透视”。透视俩字怎么都觉得别捏。感觉perspective应该是“从x出发,面向x” 的意思。建议尽量看原版,一是翻译者的水品有可能损害了原文的风格甚至意义,二者现代技术是用英文写成的。如果想长期从事这一行,还是应该掌握描述它的语言。就像你要做软件设计需要掌握C一样。). 模拟的话伯克利有好几个大家,本人比较喜欢 Broderson和Ali的课。他们讲课比较清晰有节奏,讲话也幽默,不觉枯燥。即使不做IC设计,做板级和系统的设计,研究一下IC的相关知识也很有帮助。比如模拟IC的课程可使你对噪声,干扰,稳定性,以及器件指标的含义有更深的理解。
3 s: \7 E6 I; [3 _7 J. p+ h% A# B0 {5 Y
跟公司老一辈学习是最直接的了。这点没啥可说的。只是提一点:当一个设计A也行B也行时,如果前辈们说A好,你觉得自己提的B好。这时别扭着劲非说要B。最好仔细想想A到底有什么好处。设计的目的不是设计本身:是产品,是可制造可重复可档案化可规范化可系列化可简化售后稳定性。。。。。。的产品!你的B从设计角度来看没什么问题,但可能缺了后边中的某一样。1 a- q+ D6 u3 f# e
3 c% r% I" T ~. M+ w6 H' |×××××××××××××××7 V! v. j% x g7 \/ v
第五回:示波器
1 } I5 h& A0 x Y8 z
* v, g& w0 d& ~# j; ?( `测量是电路设计最基本的技术。但不正确的测量仪器选择和方式,不止是得不到正确的测试结果,关键还会给你带来很大的误导。. R! @, t" g3 e4 E9 x
5 g$ R! b7 X9 X; n* L! V常用的测量仪器莫过示波器了。一个简单的问题:测量100MHz的正弦信号应该用多大带宽的示波器?这个问题本身实际上提得就不准确。任何示波器的带宽都是基于一定误差来说的。一般示波器的带宽是指的其3dB带宽,即最大幅度下降到70%左右的带宽.所以如果用100MHz带宽测试100MHz的信号,测量误差就至少是30%。做个幅度与频率的简单衰耗图,你会发现如果要求3%的精度,测量100MHz信号的带宽需要大约 3x100MHz。一个经验的说法:为了保持幅度误差合理,示波器和探头组合的带宽应该至少为待测信号带宽的3到5倍。为了保证幅度误差小于1%,示波器的带宽应该至少为信号带宽的5倍。当然这是用示波器来较为精确的测试信号的幅度来讲。如果只是debug,尤其是数字电路的逻辑,则要求就没那么严格了。' C( |4 ]! r$ m9 t* c7 z
) Q' u7 N: o+ P3 |1 }0 y$ p5 x怎么样来对待低频信号的上升时间?有时大家遇到这样的问题:信号频率不高,所以布线就没怎么讲究。结果最后做出来的电路发现,要么串扰大,要么有很大的反射过冲等。这是你就该检查信号的上升下降时间了。快速的上下降沿有丰富的高频信号频率。这是的信号应该当作高速信号处理。一个常用的带宽算法: 带宽=2.2/(2Pi * tr)=0.35/tr. 如果信号的上升沿是1ns,则等效带宽接近350MHz!精确测量这个上升时间的示波器带宽至少要3×350MHz。" Z) J- X) N$ a2 R
N+ q, V3 I' E1 G
$ w8 \& X( d) H: N9 _探头的使用也要注意。对于高频(包括有快速变化沿的低频信号),探头的接地十分重要。切忌用地线夹子随意找个接地点。要就近接地。一个简单的方法是用裸线缠绕在探头上就近找个地。在电路图和PCB设计时,不只要考虑测试点,还要有就近的测试接地点。这点往往在设计时容易忽视。对于差分信号,最好用专用的差分探头。用普通探头的话,通道间的skew会影响测试结果。当然低频差分信号应该还好。
1 h' S0 h8 m1 Z& z6 B2 a/ ^" c/ d
: Y* k) }/ I7 s' e1 u8 o2 U做jitter的测量需要有更专门的技术,有时间的话在以后的话题中再聊7 v3 K5 q+ R4 R) ~
) i+ `: p0 `! F; J7 \普普通通一个示波器,其实具有丰富的功能。灵活应用各种触发,测量,记忆等功能可以给你带来事半功倍的效果。多话点时间研究一下会受益很大。IT泡沫破灭后的那几年,好多关门公司的仪器拍卖。为了做事方便在拍了台模拟示波器。后来又拍了台TEK TDS5000系列的数字示波器。可惜后者在做完一个项目后就挂了。电源坏了。拆开了试图修理一下,一看太复杂也就作罢了。后来又进了台有不同故障的同类示波器,想把他们替换一下弄出台好的来。以前TEK的TDS系列可能设计的不太可靠。遇到过几台出问题的。现在用液晶显示的可能可靠性好点了。不管怎样,一般的的示波器TEK的产品还是最好的。比agilent和其它公司的,不管采样技术,显示技术等都高一筹。做高速光通信测试的agilent产品道也还好。
5 O4 x% `+ @+ x* a% A5 U, h5 p8 b3 H1 g; f: r
×××××××××××××××4 Q8 e4 A* E6 t2 J) m
第六回:IP杂谈! x9 v; Z- p$ G8 `! B
, a6 I4 g+ c: `+ m# HIP,就两个字母,孕育了多少时代风云,创造了多少财富积累,成就了多少英雄豪杰,巨企商号。。。。6 F7 L, A) c5 K5 }1 J: k
. V @) [7 T2 W
暂时风过云淡的今天,IP技术已经深入到了人们生活中的方方面面。其重要性怎么说都不为过,而且我们还只是处在其带来变化的初级阶段,但就这也已经让经济生活甚至政治各个层面产生了深远变革。Twitter的出生还只是按月计算,就影响了政教合一铁硬伊朗近期的政治事件。加以时日,如果人人的手机都是一个即时的采访话筒和新闻摄影机,还不知道会对这个世界产生什么程度的改变。
/ Y9 }9 p ]( E" ^
: M3 D0 k9 e9 G5 h( I可是,很少人知道IP的来历。大家可能知道WWW与歐洲粒子物理研究中心的关系,知道早期Internet前身的ARPNET。但真正IP的起源是MIT林肯实验室。最早交互性计算机资源共享的概念,来自一位心理学家。他对该实验室所作的人机交互软件颇有兴趣,提出了最早的计算机联网交互共享资源的概念。但早期从事计算机网络的先驱,并没从IP中得到多少财富(也许用$来衡量他们太庸俗了)。当年第一家开发出了网络路由器的公司,给美国当时的电信垄断巨头ATT做演示。ATT第一流的专家们无一例外的给予了该技术以最大的鄙视。认为毫无价值,异想天开。这些专家们判处这家公司死刑的结果是什么?影响了人类早期几乎所有通信技术的ATT贝尔实验室在IP上没有太大的作为(ATM除外)。通信制造业的老大,先前的ATT后来的LU,成为了一家一般的企业,后不得不与Alcatel合并。IP的机会创造了Cisco,Yahoo,Google,。。。。 这就是创新的力量。2 e7 i/ h/ i) p9 W+ t4 r+ ]
( u" l( j9 R4 b8 ~( Q% W3 z所以专家,尤其那些以前做出过很大成绩的老专家,他们的确切定义应该是“在本次技术革命之前的上一代技术的权威”。他们中的大多数对新技术的掌握,不会比新一代的年轻技术精英更快更有权威。但可惜的是他们大多掌握着话语权,掌握着资源。这不能不说是对技术进步的一种明显的阻碍。但恰恰正是因为这一点,才给无数的敢于创新的公司以出人头地的机会。就像在美国cisco之于LU,在中国华为中兴之于邮电部的所属科研院所和企业。当年叱咤风云的后者,还有多少泡沫沉渣泛起?上帝可能最终还是公平的。
' ?" `; Z$ Q+ g$ T/ v* ~6 s
- N' c. i& w Y% m. U& S已经采用的技术,并不见得是最优的技术。同理新的技术也不见得就有前途。当有专家说其实你的3G没啥了不起,我的技术比它强多了的时候,先别立马下结论,尤其对方跟经济利益纠缠在一起时更是这样。老毛当年说任何主义理想都有其阶级的烙印。此话用到技术上也是如此。当年中国电信的总工论证出小灵通可以平滑过渡到3G时,你应该笑笑就罢了。别当真。专家,不过如此。当年项羽见到秦始皇出游的仪仗时说,“彼可取而代也”。刘邦也说,“大丈夫当如此也。” 虽然有项羽自吻乌江,但也有刘邦面南背北。你虽然现在是初出茅庐的学生,但有无限的潜力。那些专家们现在就现在了,但你还有无限的可能。7 m2 @! [) W7 g' R9 B* @! T8 o
* c9 X; h0 j" G: V$ H最终的标准,技术体制是妥协的结果。尤其是企业巨头们的妥协结果。当你研究学习那些所谓高技术时,也别对他们太崇拜了。那里的字里行间隐藏着很多利益,交易,竞争和妥协。
: s' C2 {; s0 M1 }) d( s9 N3 X* M
后来者最喜欢技术革命。在一个成熟的技术市场下,是垄断者大公司的游戏。只有新技术,新体制,才能创造机会,才能使野心勃勃的投资者和创业者得到成功的机会。看待一项技术,主要应该从它的商机中来看。当年IT泡沫时参加过一次一家著名风投的技术论坛。题目就叫“VC眼中的7层协议”。他们认为当时7层协议中最有商机和投资价值的事1-3层。并把每一层的player,机会,和市场规模逐一分析。这是第一次听人按价值来分析7层协议!- W' X3 @, e. y7 W4 X1 s) h3 e7 o
0 v, m. Z: T4 U# d1 e" Z技术,无论用怎么复杂的公式来计算分析,用怎么深奥的语言来解释论证,其最终目的只有一个:$
I `# B9 O. p6 ]
1 y* H" q0 R" c& V j- o
- o! z1 x, \7 Y! P3 i, M# u5 v% S×××××××××××××××0 {6 Y5 c' v7 j6 B2 ?& S& g3 e
第七回:HDL与IC
7 B, @2 L# e( _+ }" O9 ^$ |' E/ {: ]5 q" X# C' w
做芯片设计或者FPGA/cpld设计的工程师主要用硬件描述语言。这种类似计算机软件的设计语言灵活,数据流清晰,易于模块化和仿真,是IC设计的主流方式。如果还在用原理图来做芯片逻辑设计的话,应该尽快转到HDL上来。你会立马感觉到不一样的天地。2 x0 r- T6 |) t3 v* L, b2 z1 ]
6 y5 K: m- H* R9 I# J1 J6 t
主要的HDL语言有两个:VHDL和Verilog。两个语言应该是同等层次的。没什么好坏高低之分。记得90年代参加过一次EDA设计展览,一家提供EDA tool的公司有个别出声面的对这两种语言的介绍。两个人一个身穿标准的西装,一个是随意休闲的牛仔。前者挂着一个名牌VHDL,后者是Verilog.这形象的说明了两种语言的风格。他们的说法是美国东部的人比较正统,带有老欧洲的遗风,所以习惯用定义比较严谨的VHDL。而西部尤其加州等地,是牛仔风格。喜欢随意和较少约束。Verilog变成了大多数公司的首选。其实说Verilog随意,并不代表它的定义不严格。只是它的语言格式比较灵活,比较少约束。用任何一个语言都可作出出色的芯片来。从个人的角度来讲比较认同Verilog。当时选择它除了所在的公司用它以外,也喜欢那简单明了的风格。同样一个描述,VHDL的一长串定义就令人有点头疼。
. z# E2 n+ a7 P: t, }
2 l! `# z9 H& K+ F3 s掌握其中的任何一种,对于有点电路设计经验的工程师来讲都不难。难得是规范的文档,清晰的说明和注释,合理明了的架构,和充分的仿真。好多工程师只注重程序的设计本身,即一条条的语句。岂不知一个设计包含程序本身和描述这个程序的完整文档!缺了任何一个都不是完整的设计。简单的来说,设计程序时要想着程序是让他人看的,是公司的IP积累。不是单单为了实现你要达到的几项功能指标。印度的软件外包比中国领先很多,为什么?两国的工程师都很聪明。有人做过分析,对于同样实现一个简单功能,中国工程师10行就写完了,可能还想绞尽脑汁再用更巧妙的方法简化。而印度工程师可能要写100行。区别就是前边说过那几点。
: w9 a& I1 y' m1 w, V; K
. A. { n! D, @: K T6 G/ Y8 t# |$ M& _想来做ASIC和FPGA的区别大家都清楚。从设计角度来讲主要是library的异同,包括仿真等等。ASIC代工的兴起,使得设计与制造彻底分离。这样任何一个掌握了一定IP的人都可以开个ASIC设计公司。前者的价值主要变成了IP的积累。目前除了INTEL等个别公司还有自己的Foundry厂外,大多数公司都使用TSMC之类的代工。为了更进一步降低设计IC的初期投入,foundry也提供shuttle服务,即可以允许几家公用一个晶圆,这样就大大降低了设计house的费用。据说现在还有搞sub-shuttle的:几家公司在一个die上设计几个芯片,有点像PCB拼版一样,再用shuttle服务跟别人共享一个晶圆。不知道这么做是否合法。可以的话几万RMB就可设计一个一般规模的ASIC,自己在家都可以做了 .半导体业这几年不景气,可能也跟原来高高在上的高科技白天鹅,变成了寻常的丑小鸭有关。进入门槛降低了。当然这只是指的逻辑设计一个电路来讲。其实IC的价值不在设计的过程,那些算法知识等IP才是最有价值的。就像90nm的技术很成熟了,上海交大的教授还是靠雇佣民工把买来的片子磨一下再印上自己的型号。制造BMW的技术有了,但设计它的IP却不是一朝一日能掌握的。Foundry厂也积累了大量的Library包括各种IP,甚至A/D等转换器件。对于一般的IC,设计不是主要的价值所在,产品的定义和市场的定位成了成功关键。
5 }( A& V6 i( Q, a* X! T
3 _8 ~& U+ t( l' P: GFPGA主要的厂家有2.5个。Xilinx,Altera算两个。Lattice算半个。后者购买了当年LU的Orca系列,但这么多年人们认可他的还是其看家的CPLD。Xilinx在高速和高集成度的领域占优势。当年IP泡沫时期,协议技术的更新换代很快,人们来不及开ASIC,结果Xilinx大容量高速的FPGA系列备受欢迎。Altera最早把90nm应用到其Cyclone系列,在低成本FPGA市场上给了Xilinx致命一击。但现在情况发生了变化,Xilinx的日子也难过了起来。据说他们现在把45nm用到了其低端的Spartan系列上,是否就此能搬回一城尚难预料。
2 O; c, E E: Z; O0 E( [
. f9 R; ~6 e) N z$ k: P×××××××××××××××* [: L Y5 ~# K' `. O
第八回:PCB Layout
( X$ y- p( G ^2 j6 I8 R9 s- T3 N8 `! U5 c) O" o
PCB layout是电路设计中重要的一环, 但你是否把它当作一个比较低层次的工作,是有专门的技术员做的工作?如果这样的话,可能就是长期徘徊在第二层而难以突破第三层的一个可能原因吧
8 p% ^" `* u+ C" b! n% `
% V/ e5 g% K; WPCB布线中的一些基本要求想必大多数设计工程师都熟悉,比如stack up,阻抗匹配,串扰的减小,布局和地平面的分割(可能对数模混合电路的PCB设计,这是最重要的一环)等。这里不做议论了。PCB设计可简单可复杂。简单到用protel之类的软件直接从sch网表引入就开始画图。复杂到有Howard 和Stephen等DX写的大部头著作专门做了研究。如果想做一个有实际能力的电子工程师的话,花时间研究一下PCB的制作,布线的以及SI的理论会大有益处。
3 X* B7 q6 ~: s' ]1 t
- [$ i O& ]* i1 nPCB的材料从最常用的FR-4到低损耗的Roger,具体的电路可以选择不同的材料。有时通过精心设计元器件的布局,较少过孔,和选用阻抗匹配的连接器件,可以用低成本的FR-4达到大多数的要求。本人就做过FR-4传送3GHz信号达40英寸的设计。中间有两个连接器,一组耦合电容。当然需要有Pre-amp和equalizer的帮助。02年左右见有芯片公司demo的用FR-4传送10GHz几个英寸的演示。如过芯片的serdes做的不够好,那就需要Roger之类的材料来帮助减小损耗了
- t$ y: ^ L! p% w8 O
- _0 a$ Q) w. Y. U. {0 F# B经常有人问最小可用多粗的线,过孔可打多大?一般来讲过孔的直径不小于板厚的1/10,其它就没有什么太明确的标准了。正确的步骤是在设计PCB之前先跟FAB厂家联系,要到他们的技术要求,明确设计的极限,然后选择合理的设计参数。大多数人是先做完了PCB再跟厂家联系。本末倒置了。2 u( Y1 G3 Y, g) _
/ y: N, w: M* b. M在设计PCB之前要对高速信号做下仿真。根据器件的model,trace的距离,过孔的数目,和连接器的参数来做最坏情形下的仿真,用这个结果结合芯片的datasheet看看lose budget是否有合理的余量。仿真的软件有多种,本人认为Hspice是最精确的一种。其它用spice model的软件也可以,但Hspice有更适合传输线仿真的field solver的方法,即直接解电磁场方程来做计算。而不是用lumped RLGC 的方式。后者有许多不确定性。研读一本SI方面的专著是比要的。最有名的是howard johnson, Stephen Hall的著作。选一本就可以。不要从头到尾全看。根据用到的,选择性的研究一下最好。一边结合项目,一边做仿真分析。实际电路出来测试后,对比研究一下测试结果和仿真的异同,找出仿真或者实现的问题,修改仿真使它接近实际的测试。这一环节有助于功力的升级 。
/ j4 g/ V4 ]" a+ g' Q8 i
* ?0 T2 z; o& Y* S) e如果你有成本的压力,用FR-4但有一些高频的trace。这时要仔细的对高速部分精心布局,如果不可避免使用via的话,要尽量采用through-via,即让信号从顶层一直穿到底层来换层。在中间换层会产生via-stub,影响信号完整性。做完布线后顺手用PCB工具中的去掉non-functional pad的功能,把那些中间层没连线的pad去掉,也能较少一些寄生电容。做这种事就是要斤斤计较,设计时多用点心,得到免费的性能提升。
0 Y( g W6 d4 v# r w I5 G+ p3 ^" ] o0 z
PCB的软件设计工具有很多选择。以下是在另个帖子中写的一段,摘录到这里供参考:
; G5 [4 `$ }% ]5 z7 V- u0 rprotel:简单易学。国内会的人多。国外不怎么普及。不太稳定。性能也差强人意。尤其处理大的设计时。但做小活应该可以。
+ e2 ^3 p9 X% i: B- L十年前,EDA设计工具春秋战国。之后逐渐归于cadence和mentor两大家了。
% L7 i6 ~3 s. g8 w上一档次的话(就个人熟悉的)
) b2 ^/ b, s) q8 ecadence系列:" k3 d+ K" v4 M A; O
中档为orcad。orcad被cadence收购后应该变得更稳定可靠。orcad的特点是易学。最好的应该是allegro系列。constraint-driven的设计,真正意义的后仿真,都是顶级的设计工具。
8 H9 \/ \8 {' y! _* _mentor系列
p; [* E# @6 w4 _2 Z. Eviewlogic 被mentor前几年收购。对于复杂的设计尤其强大。支持文本方式编辑录入。但功能太多,不容易掌握。pads也是用的比较多的PCB工具。自动布线不错。
) u, g' ~) ~7 }- }如果不考虑价格:推荐viewlogic做capture,allegro做PCB。后者是大部分专业layout house用的工具
]8 W/ R, l- q如果考虑价格:orcad+PADS(PCB)也是不错的选择。$ q- S3 ]8 ^6 Z$ l+ A
orcad是一般公司做evaluation board的设计首选。比如ic公司。中小型公司用的也比较多。1 O. K& T1 s6 y' D9 }8 B, w1 _
! |6 B" `- L5 t6 j! [: e
当然随手偶尔做点什么,任何一个都能胜任。如果不是专业的layout工程师,能用这些layout工具来做检查就好了。但PCB的设计流程,材料,SI分析等还是要做点研究。 ) r1 v$ C; E. A- ^
) f. T) u8 E4 A1 |* I \5 }1 o, e$ H) D* y& \/ L
×××××××××××××××% _! _; V6 s& X3 X% B" H
第九回:俩学音乐出身的工程师
1 L8 h6 v' I( }4 C- Q" r/ L9 Z: H' f) Q9 d; L& l) t/ C9 m
经有过两个老美同事。凑巧的都是学音乐出身的,后来凭兴趣自学做了电子和软件方面的专家。3 {& h H2 N& J- R4 H" v' A' U
" U4 {% ]( a* s7 \4 R2 a第一个是一家公司的总设计师。专业是学的音乐。对电子的东西比较感兴趣,就走进了这一行。如果你有什么想法跟他说,他低头思考一会大多时间就给出你答案。是在一合作项目时认识的。工作一段后每每感觉他的一些想法匪夷所思,有时惊叹实现的巧妙。但也有时候他想出来的很不错的想法,实际已经有现成的东西可借用了。这是感觉到他的唯一弱点。人总是这样,正统教育训练出来的,知道使用好多现成的东西,但缺少了独创性。受传统教育少的,得益于较少的约束和具有更好的创造力,但有时也可能耗费不少时间在一些前人已做过的东西上。此事古难全。
+ \0 @/ @. s0 [9 W9 m
/ w+ X5 B; r1 T1 j% J" f8 Q s4 b另一个是在某公司时的同事。做事非常严谨。他开会或者大家讨论时的笔记,非常干净整洁。拿过来直接发表就可。想学他这招但坚持了不几天就放弃了。人长的五大三粗,可做事想不到的细腻。也是本科学音乐后来自学该改行软件的。我们那时下班后总总喜欢在停车场打会篮球。他从不掺和。有次我邀他一起打但他只是笑笑摇摇头。我开始还以为他不会打。后来才知道人家是原德州大学校队的!就是那些NBA球员们的前身。他有的队友后来可能就去NBA了。这样的本事哪能轻易跟我们这种菜鸟玩。现在他是一家航天公司的软件总设计师。; r/ s# @! G }3 L. N3 x
% I0 H4 E& Q& j9 N- \! C兴趣是良师。功夫在诗外。我们从中学开始就分文理科之类的,谬之大矣 |
|