Performance Review '09

Review Period: Feb 3, 2008 ~ Jan 21, 2009

Performance Rating: 1-Exceptional

Overall Performance Summary and Rating Justification

He has lead the TD modem design job, take the core design for TD modem and doing synthesis, formal & STA for it. He deserves an exceptional rating and a promotion.

Acknowledgement Comments

I'm glad to see I've been recognized for what I was devoting to in the last year. I should thank my superiors who gave me the opportunity to take such a exciting and challenging project and trusted me. It does not always happen in one's career life. I'm lucky.

I also want to thank everyone of our team, who contributes much and sacrifice much for this project. We wouldn't get the chip taped-out without anyone of you. Thank you very much.

We are looking forward to the coming jobs for this chip with greater passions, which should be more important and challenging. Let's finish it and get it to MP.

Accomplishments of Q1-09

TD-modem

  1. Support FPGA emulation.
  2. STA sign-off and get timing absolutely clean.
TD-chip
  1. Run RTL-to-Netlist formal checking for app_top and apb_top.
  2. STA sign-off and analyze timing result.
  3. Support in ECO stage
     

幼儿园之睡午觉

世纪昂立幼儿园的老师还真有心,趁宝宝熟睡的时候记录下了小家伙们千奇百怪的睡姿。这就是我们澄澄的睡姿了,和家里睡觉一样,喜欢趴着睡,好像流口水了。»更多托A班宝宝的睡姿

0904161823e6010aca2b348e7d.jpg

嘘嘘那些事

经过几天的训练,我们的澄澄终于开始叫小便了。虽然不能每次都叫,(实际上尿湿裤子的几率更大),但是至少有了开始了,至少白天摆脱纸尿裤了。

最 初的时候,甚至让他学着说出"我要小便"这句话都不愿意,这对他似乎是多么难以启齿的事情。在威逼利诱了几天之后,这一关算是过了。在大部分的时间小孩还 是没有养成小便之前叫人的习惯,经常看见他一动不动站在原地,这时就知道一定尿裤子了。问他为啥不加,他也给不出个答案。

就像妈妈说 的那样,这个过程肯定会有反复的,不要指望三两天就彻底不尿裤子。但不管怎么样,一定要坚持下去。去年秋天训练的时候就是因为最后没有坚持下来,所以半途 而废了。不过那时候天气很冷了,确实湿了裤子不太好弄,一下就好几条啊。现在天气越来越热了,尿湿几条裤子不是问题,洗洗晒晒马上就干了。况且上周末又买 了两条裤子呢,肯定能换得过来的。

现在发现打他骂他是没有用的,这样甚至反而增加他的心理负担。还是妈妈说的对:好好鼓励,正确引导。

我是南方人

场景:早上起床,给澄澄穿衣服。

我:澄澄知不知道你是哪儿人?
澄澄:我是南方人。
我:对啦,上海人就是南方人,好棒啊...,真厉害...
5秒钟后,
澄澄:康康是女方人。(康康是同班一女同学的小名)
我:@$#^%&*(*O()*&#^#@%#!

澄澄儿歌

【元宵节儿歌】
元宵节,真热闹;
看花灯,吃元宵;
莲花灯,水上漂;
兔子灯,拉着跑;
小朋友们拍手笑!

Michelle Branch - All You Wanted

New BMW 3-series Sedan & Wagon

上几张澄澄的照片

好久没贴澄澄照片,主要是最近一直生病,所以拍得也比较少。

下面这一组还是去年11月份妈妈公司党员活动的时候在苏州西山什么农场照的呢。瞧,健康的澄澄是多么漂亮,多么可爱啊。

“喂,这位游客,走路不看景,看景不走路哦!!”


“妈妈,好大一张树叶啊。”


“爸爸,这是什么?骡子还是马?”
“我也不是很了解唉,是骡子是马只能拉出来遛遛了 @#¥×¥#%¥×%¥!#%%”


下面这几张是元旦在苏州照的,已经瘦了很多了。

“妈妈喂我吃面面”


”妹妹,像我这样说:‘Yeah!!’“


“我和Micky来个和影”


“俺也走一回Red Carpet”


妈妈公司书法协会活动:浙江 · 宁波 · 天一阁

“妈妈,这是个大馒头!”


“长江七号”


“我用这把伞刚刚好”


“我也会跳花伞舞”


“YEAH!!!”


“妈妈的同事用单反照的,成像质量有点愧对EOS 40D,不过构图很好。”

火车开了

随用随拷 ASCII Code Table (Text版)

ISO 8859-1 Symbols

CharacterEntity NumberEntity NameDescription
   non-breaking space
¡¡¡inverted exclamation mark
¢¢¢cent
£££pound
¤¤¤currency
¥¥¥yen
¦¦¦broken vertical bar
§§§section
¨¨¨spacing diaeresis
©©©copyright
ªªªfeminine ordinal indicator
«««angle quotation mark (left)
¬¬¬negation
­­­soft hyphen
®®®registered trademark
¯¯¯spacing macron
°°°degree
±±±plus-or-minus 
²²²superscript 2
³³³superscript 3
´´´spacing acute
µµµmicro
paragraph
···middle dot
¸¸¸spacing cedilla
¹¹¹superscript 1
ºººmasculine ordinal indicator
»»»angle quotation mark (right)
¼¼¼fraction 1/4
½½½fraction 1/2
¾¾¾fraction 3/4
¿¿¿inverted question mark
×××multiplication
÷÷÷division

ISO 8859-1 Characters

CharacterEntity NumberEntity NameDescription
ÀÀàcapital a, grave accent
ÁÁácapital a, acute accent
ÂÂâcapital a, circumflex accent
ÃÃãcapital a, tilde
ÄÄäcapital a, umlaut mark
ÅÅåcapital a, ring
ÆÆæcapital ae
ÇÇçcapital c, cedilla
ÈÈècapital e, grave accent
ÉÉécapital e, acute accent
ÊÊêcapital e, circumflex accent
ËËëcapital e, umlaut mark
ÌÌìcapital i, grave accent
ÍÍícapital i, acute accent
ÎÎîcapital i, circumflex accent
ÏÏïcapital i, umlaut mark
ÐÐðcapital eth, Icelandic
ÑÑñcapital n, tilde
ÒÒòcapital o, grave accent
ÓÓócapital o, acute accent
ÔÔôcapital o, circumflex accent
ÕÕõcapital o, tilde
ÖÖöcapital o, umlaut mark
ØØøcapital o, slash
ÙÙùcapital u, grave accent
ÚÚúcapital u, acute accent
ÛÛûcapital u, circumflex accent
ÜÜücapital u, umlaut mark
ÝÝýcapital y, acute accent
ÞÞþcapital THORN, Icelandic
ßßßsmall sharp s, German
àààsmall a, grave accent
ááásmall a, acute accent
âââsmall a, circumflex accent
ãããsmall a, tilde
äääsmall a, umlaut mark
åååsmall a, ring
æææsmall ae
çççsmall c, cedilla
èèèsmall e, grave accent
ééésmall e, acute accent
êêêsmall e, circumflex accent
ëëësmall e, umlaut mark
ìììsmall i, grave accent
ííísmall i, acute accent
îîîsmall i, circumflex accent
ïïïsmall i, umlaut mark
ðððsmall eth, Icelandic
ñññsmall n, tilde
òòòsmall o, grave accent
óóósmall o, acute accent
ôôôsmall o, circumflex accent
õõõsmall o, tilde
ööösmall o, umlaut mark
øøøsmall o, slash
ùùùsmall u, grave accent
úúúsmall u, acute accent
ûûûsmall u, circumflex accent
üüüsmall u, umlaut mark
ýýýsmall y, acute accent
þþþsmall thorn, Icelandic
ÿÿŸsmall y, umlaut mark

Math Symbols Supported by HTML

CharacterEntity NumberEntity NameDescription
∀∀∀for all
∂∂∂part
∃∃&exists;exists
∅∅∅empty
∇∇∇nabla
∈∈∈isin
∉∉∉notin
∋∋∋ni
∏∏∏prod
∑∑∑sum
−−−minus
∗∗∗lowast
√√√square root
∝∝∝proportional to
∞∞∞infinity
∠∠∠angle
∧∧∧and
∨∨∨or
∩∩∩cap
∪∪∪cup
∫∫∫integral
∴∴∴therefore
∼∼∼simular to
≅≅≅approximately equal
≈≈≈almost equal
≠≠≠not equal
≡≡≡equivalent
≤≤≤less or equal
≥≥≥greater or equal
⊂⊂⊂subset of
⊃⊃⊃superset of
⊄⊄⊄not subset of
⊆⊆⊆subset or equal
⊇⊇⊇superset or equal
⊕⊕⊕circled plus
⊗⊗⊗cirled times
⊥⊥⊥perpendicular
⋅⋅⋅dot operator

Greek Letters Supported by HTML

CharacterEntity NumberEntity NameDescription
ΑΑαAlpha
ΒΒβBeta
ΓΓγGamma
ΔΔδDelta
ΕΕεEpsilon
ΖΖζZeta
ΗΗηEta
ΘΘθTheta
ΙΙιIota
ΚΚκKappa
ΛΛλLambda
ΜΜμMu
ΝΝνNu
ΞΞξXi
ΟΟοOmicron
ΠΠπPi
ΡΡρRho
 undefined Sigmaf
ΣΣσSigma
ΤΤτTau
ΥΥυUpsilon
ΦΦφPhi
ΧΧχChi
ΨΨψPsi
ΩΩωOmega
    
αααalpha
βββbeta
γγγgamma
δδδdelta
εεεepsilon
ζζζzeta
ηηηeta
θθθtheta
ιιιiota
κκκkappa
λλλlambda
μμμmu
νννnu
ξξξxi
οοοomicron
πππpi
ρρρrho
ςςςsigmaf
σσσsigma
τττtau
υυυupsilon
φφφphi
χχχchi
ψψψpsi
ωωωomega
    
ϑϑϑtheta symbol
ϒϒϒupsilon symbol
ϖϖϖpi symbol

Other Entities Supported by HTML

CharacterEntity NumberEntity NameDescription
ŒŒœcapital ligature OE
œœœsmall ligature oe
ŠŠšcapital S with caron
šššsmall S with caron
ŸŸŸcapital Y with diaeres
ƒƒƒf with hook
ˆˆˆmodifier letter circumflex accent
˜˜˜small tilde
   en space
   em space
   thin space
‌‌‌zero width non-joiner
‍‍‍zero width joiner
‎‎‎left-to-right mark
‏‏‏right-to-left mark
–––en dash
———em dash
‘‘‘left single quotation mark
’’’right single quotation mark
‚‚‚single low-9 quotation mark
“““left double quotation mark
”””right double quotation mark
„„„double low-9 quotation mark
††‡dagger
‡‡‡double dagger
•••bullet
………horizontal ellipsis
‰‰‰per mille 
′′″minutes
″″″seconds
‹‹‹single left angle quotation
›››single right angle quotation
‾‾‾overline
€€€euro
™™™trademark
←←⇐left arrow
↑↑⇑up arrow
→→⇒right arrow
↓↓⇓down arrow
↔↔⇔left right arrow
↵↵↵carriage return arrow
⌈⌈⌈left ceiling
⌉⌉⌉right ceiling
⌊⌊⌊left floor
⌋⌋⌋right floor
◊◊◊lozenge
♠♠♠spade
♣♣♣club
♥♥♥heart
♦♦♦diamond

关于unate/non-unate的概念

有的时候DC或者PT,会报non-unate的Warning信息,通常这种警告会出现的clock信号上。那么什么是non-unate呢?unate有什么什么意思呢?

Synopsys的技术文档里是这样描述的:
A function is said to be unate if a rising (or falling) change on a positive (or negative) unate input variable causes the output function variable to rise (or fall) or not change. For a non-unate variable, further state information is required to determine the effects of a particular state transition.

大意就是,一个函数的某个输入变量的变化(rising or falling)导致输出变量有确定的变化(rising or falling)或者输出保持不变,就被称为unate的;反之如果输出变量不能有此输入信号唯一确定,则被称为non-unate的。

最典型的unate cell是INV/AND: INV (negative), AND(positive);最典型的non-unate cell是XOR。

Timing Is Fixed After MBIST Insertion

插了MBIST后的timing问题总算解决了,修改了不少path,主要在Channel Estimation (信道估计)和Turbo Decoder模块中。

另外一个问题是之前综合的constraint也有点问题,主要是把scan_mode设成high-fanout port,scan_mode上就加上了dont_touch_network的属性,这样DC就没法很好的优化某些timing path了。我现在的做法是,去掉pSetHighFanout的设置,改成set_false_path -from [get_ports scan_mode]。这样optimize的结果就非常好了。

Netlist现在也出来了,明天上班好好调一下pre-layout STA就可以交差了。哦对了,要开始准备做formality了。

The Fray - How To Save A Life

The Fray - How To Save A Life (Lyrics)

Step one you say we need to talk
He walks you say sit down it's just a talk
He smiles politely back at you
You stare politely right on through
Some sort of window to your right
As he goes left and you stay right
Between the lines of fear and blame
You begin to wonder why you came

CHORUS:
Where did I go wrong, I lost a friend
Somewhere along in the bitterness
And I would have stayed up with you all night
Had I known how to save a life

Let him know that you know best
Cause after all you do know best
Try to slip past his defense
Without granting innocence
Lay down a list of what is wrong
The things you've told him all along
And pray to God he hears you
And pray to God he hears you

CHORUS:
Where did I go wrong, I lost a friend
Somewhere along in the bitterness
And I would have stayed up with you all night
Had I known how to save a life

As he begins to raise his voice
You lower yours and grant him one last choice
Drive until you lose the road
Or break with the ones you've followed
He will do one of two things
He will admit to everything
Or he'll say he's just not the same
And you'll begin to wonder why you came

CHORUS:
Where did I go wrong, I lost a friend
Somewhere along in the bitterness
And I would have stayed up with you all night
Had I known how to save a life

CHORUS:
Where did I go wrong, I lost a friend
Somewhere along in the bitterness
And I would have stayed up with you all night
Had I known how to save a life
How to save a life
How to save a life

CHORUS:
Where did I go wrong, I lost a friend
Somewhere along in the bitterness
And I would have stayed up with you all night
Had I known how to save a life

CHORUS:
Where did I go wrong, I lost a friend
Somewhere along in the bitterness
And I would have stayed up with you all night
Had I known how to save a life
How to save a life

Youth Group - Forever Young

Youth Group - Forever Young (Lyrics)

Let's dance in style let's dance for a while,
Heaven can wait we're only watching the skies,
Hoping for the best but expecting the worst,
Are you gonna drop the bomb or not?

Let us die on let us live forever,
Don't have the power but we never say never,
Sitting in the sandpit life is a short trip,
Music's for the sad man

Can you imagine when this race is run,
Turning up our faces into the sun,
Praising our leaders getting in tune,
Music's played by the mad man

Forever young, I want to be forever young,
Do you really want to live forever?
Forever forever,
Forever young, I want to be forever young,
Do you really want to live forever?
Forever, forever

Some are like water Some are like the heat,
Some are melodies Some are the beat,
Sooner or later they'll all be gone,
Why don't they stay on?
It's hard to get without a cause,
I don't want to perish like a fading voice,
Youth is like diamonds in the sun,
And diamonds are forever,
So many adventures couldn't happened today,
So many songs that we forgot to play,
So many dreams swimming out in the blue,
Let them come true
Forever young I want to be forever young,
Do you really want to live forever?
Forever, forever
Forever young, I want to be forever young,
Do you really want to live forever?
Forever, forever
Forever young, I want to be forever young,
Do you really want to live forever?
Forever, forever
Forever young, I want to be forever young
Do you really want to live forever?
Forever, forever...

Timing Gets Worse After Inserting MBIST

Before the MBIST (Memory Build-in Self Test) function was inserted in RTL, I had got a quite good timing result of TD-modem. The violation on critical path was less than 0.3 ns. Now the synthesis timing gets much too worse after adding MBIST logic. I got more than 2.0 ns violations. Oops...

So it is much possible for designers to change the RTL to fix the timing violations next week. Such fixing will not be a easy job. But I have to ask them finish it in two days, because the tap-out schedule (2.24) is too close.

Melee - Built To Last

三星Anycall的广告歌曲

Melee - Built To Last (Lyrics)

I've looked for love in stranger places,
but never found someone like you.
Someone whose smile makes me feel I've been holding back,
and now there's nothing I can't do.

'Cause this is real, and this is good.
It warms the inside just like it should,
but most of all it's built to last.

All of our friends saw from the start.
So why didn't we believe it too?
Whoa yeah, now look where we are.
You're in my heart now.
And there's no escaping it for you.

'Cause this is real, and this is good.
It warms the inside just like it should,
but most of all it's built to last.

Walking on the hills that night with those fireworks and candlelight
You and I were made to get love right

'Cause this is real, and this is good.
It warms the inside just like it should,
but most of all it's built to last.

'Cause you are the sun in my universe,
considered the best when we've felt the worst
and most of all it's built to last.

Publish Blog by Email

This post is just to test the functionality of publishing blog by Email.

If it works, how can I add labels on the post??

--
Sing like no one's listening;
Dance like no one's watching;
Love like you've never been hurt;
Work like you don't need money;
Live like it's heaven on earth…

本周工作小结

虽然TD-modem新的netlist不能出来了,不过也快了,周末加一点班,基本就能搞定了。这主要归功于clock的constraints搞定了,参考了这篇文章。

另外top-level的timing问题也解决了,主要还是constraints下的不对。现在在综合top-level的时候也不需要compile_ultra了,(用了ultra,Design Compiler会优化掉很多有用的register,貌似是DC的bug)。只要compile -inc就行了,而且速度很快。

在FPGA上信道估计measurement的问题也解决了,发现是software在normal SIC和measurement之间插了一次standalone FFT,导致我的ma_dot_pos被覆盖了。本来SIC和measurement就是紧耦合的,打断了就会出错的。

这周末不用开夜车了,好好陪老婆、儿子吧。:)

[转] Clock Constraints in Design Compiler

出处:http://bb2hh.blogbus.com/logs/20373036.html
作者:pythonlong

一个比较全的例子,不过还有比较多的特殊情况。



create_clock -period 100 [get_ports Pclk]
create_clock -period 100/8 -name pclkx8 [get_pins BUF2X2/Y]

create_clock -period 10 [get_ports Sclk]
create_generated_clock -name clk_div2 -divide_by 2 -add -source [get_attribute [get_ports Sclk] sources] -master_clock Sclk [get_pins DIV/clk_div2]
create_generated_clock -name clk_div4 -divide_by 4 -add -source [get_attribute [get_ports Sclk] sources] -master_clock Sclk [get_pins DIV/clk_div4]
create_generated_clock -name clk_div8 -divide_by 8 -add -source [get_attribute [get_ports Sclk] sources] -master_clock Sclk [get_pins DIV/clk_div8]

create_generated_clock -name Sclk1_l -multiply_by 1 -add -source [get_attribute [get_clocks pclkx8] sources] -master_clock pclkx8 -combinational [get_pins MUX1/Sclk1]
create_generated_clock -name Sclk1_h -multiply_by 1 -add -source [get_attribute [get_clocks clk_div2] sources] -master_clock clk_div2 -combinational [get_pins MUX1/Sclk1]

create_generated_clock -name Sclk2_l -multiply_by 1 -add -source [get_attribute [get_clocks clk_div8] sources] -master_clock clk_div8 -combinational [get_pins MUX1/Sclk2]
create_generated_clock -name Sclk2_h -multiply_by 1 -add -source [get_attribute [get_ports Sclk] sources] -master_clock Sclk -combinational [get_pins MUX1/Sclk2]

对于Sclk1,Sclk2驱动的时钟树的输出port,应该如下设置
set_output_delay -max 3 -clock [get_clocks Sclk1_l] [get_ports xx_out1]
set_output_delay -max 3 -add_delay -clock [get_clocks Sclk1_h] [get_ports xx_out1]

set_output_delay -max 3 -clock [get_clocks Sclk2_l] [get_ports xx_out2]
set_output_delay -max 3 -add_delay -clock [get_clocks Sclk2_h] [get_ports xx_out2]

对于Pclkx8需要的约束如下:

set_input_delay -max 2 -clock [get_clocks Pclk] [get_pins BUF2X2/Y]

红色圈圈出的设计要注意的,因为低速Pclkx8作为数据输入,对于Pclkx8又做时钟,又做数据,所以在时钟树前加buffer,然后用buffer的输出pin做create_clock。
记住:时钟会向后穿过任何组合逻辑,直到endpoint!
pll是macro,会被astro,或者dc作为black box。对于工具来说信号传输到黑盒子就算终止了,但是内部还要用到黑盒子产生的时钟,所以要create_clock .对于pll输出的clock的input_delay,output_delay约束却要用到外部的Pclk来约束。