2001年6月18日,深圳科技园亚朵酒店七楼,整个楼层被华为包下来了。
走廊里飘着咖啡、泡面、还有汗味的混合气息。
每个房间门上都贴着标签:701“时钟树攻坚组”,702“adc敢死队”,703“射频突击队”,704“架构指挥部”……最里面那间705,门上用红字写着“作战指挥中心”,下面还有行小字:“入内请先深呼吸”。
早上七点,704房间里,陈永仁盯着屏幕上的仿真波形,眼睛红得像兔子。
他已经连续看了十八个小时的波形,那些代表时钟抖动的锯齿状曲线,在他视网膜上留下了残影。
“不对,还是不对……”他喃喃自语,拿起桌上的凉咖啡灌了一口,苦得皱眉。
屏幕上是时钟树主备切换的仿真结果。理论上,当温度超过阈值时,系统应该从两级结构无缝切换到三级结构。
但仿真显示,在切换瞬间会出现一个50ps的毛刺——对于600hz的时钟来说,这足以导致数据采样错误。
房门被敲响,吴瀚顶着鸟窝头进来,手里拿着个啃了一半的苹果。
“陈总,你那边的毛刺问题解决了吗?我这边adc的时间交织校准遇到麻烦了。”
“什么麻烦?”
“四通道并行采样,理论上需要完全一致的延迟,”吴瀚把苹果核扔进垃圾桶,“但实际布线后,四个通道的走线长度差最多有2,导致03ns的延迟差。我的校准算法能补偿,但需要额外的缓冲器,面积超标了。”
两人正说着,张文龙推门进来,脸色比他们还难看。
“两位,射频前端和基带处理单元的接口时序对不上,”他把一份报告拍在桌上,“射频这边数据准备好了,基带那边还在处理上一帧。等基带准备好,射频的数据已经过了。”
陈永仁揉着太阳穴:“这是系统级的问题,需要重新设计握手协议。”
“我知道,但时间呢?”张文龙苦笑,“重新设计协议至少一周,验证又要一周。我们现在最缺的就是时间。”
三人沉默。窗外的天亮了,深圳在晨光中苏醒,但房间里的人感觉像是被困在永夜。
“先去吃早饭吧,”吴瀚打破沉默,“林总说今天上午开协调会,也许能有思路。”
酒店餐厅已经被华为包场,但来吃饭的人不多。大部分工程师选择在房间里啃面包——时间太紧,连吃饭都觉得奢侈。
林辰和何庭波坐在角落,面前摆着粥和油条,但两人都没动筷子。何庭波在翻看昨晚的进度报告,眉头越皱越紧。
“时钟树毛刺、adc面积超标、接口时序不匹配……”她念着问题清单,“这才第一周,三大核心模块全出问题。林辰,三个月真的可能吗?”
林辰用勺子搅着粥:“何总,你还记得1998年做gs基站芯片的时候吗?当时问题比现在多一倍,最后不也做出来了?”
“那时我们年轻,能拼,”何庭波叹气,“现在我四十五了,连续熬三个晚上就得缓两天。陈永仁四十二,张文龙四十,都不是小伙子了。”
“但经验更丰富了,”林辰说,“年轻时靠体力,现在靠脑力。我相信他们能找到解决方案。”
正说着,三个主角端着餐盘过来了。陈永仁拿了白粥和咸菜——台湾人习惯清淡早餐;吴瀚是一碗牛肉面,辣油红彤彤的;张文龙最讲究,牛奶、鸡蛋、全麦面包,摆得整整齐齐。
“正好,边吃边聊,”林辰示意他们坐下,“问题我都知道了。现在需要的是思路,不是焦虑。”
陈永仁先开口:“时钟树的毛刺,我试了三种方案:加延迟锁存、加冗余比较器、甚至想过用模拟电路做平滑过渡。但要么面积增加太多,要么引入新的不确定性。”
“根本原因是什么?”林辰问。
“是数字开关的瞬态响应,”陈永仁用筷子在桌上画,“两级切三级,本质上是一个多路选择器在切换。任何数字开关都有建立时间和保持时间,在这个窗口内,输出是不确定的。”
吴瀚插话:“那能不能不用切换?就让时钟树一直工作在三级模式,但动态关掉部分电路来省电?”
“功耗会超标,”陈永仁摇头,“三级结构比两级功耗高30,运营商接受不了。”
张文龙突然说:“我在想,我们是不是被‘完美切换’这个目标困住了?通信系统本来就有容错机制,偶尔出现几个时钟毛刺,上层协议能不能纠正?”
“纠正得了吗?”何庭波问。
“理论上可以,”张文龙解释,“基站通信用的是循环冗余校验和自动重传请求。只要毛刺不连续出现,误码率在可接受范围内。”
陈永仁眼睛亮了:“张总的意思是,我们允许偶尔的毛刺,但严格控制毛刺的频率和幅度?”
“对,比如规定切换毛刺的宽度不能超过100ps,频率不能高于每小时一次。这样设计目标就从‘消除毛刺’变成了‘限制毛刺’,难度降低一个数量级。”
本小章还未完,请点击下一页继续阅读后面精彩内容!
林辰拍桌:“这个思路好!工程师最容易犯的错误就是追求完美,但商业产品只需要足够好。何总,这个毛刺指标,系统层面能接受吗?”
何庭波快速心算:“100ps的毛刺,在600hz时钟下,相当于6的周期偏移。配合前向纠错,误码率增加可以控制在10-6以内,可以接受。”
“好,时钟树问题先这样,”林辰看向吴瀚,“adc那边呢?”
吴瀚苦笑:“我的问题没这么容易妥协。四个通道延迟不一致,校准需要的缓冲器面积是硬指标,少一点都不行。”
“能不能减少通道数?四通道改双通道?”陈永仁问。
“采样率会从400hz降到200hz,性能损失太大。”
“那能不能在布线上下功夫?”张文龙说,“我做过pcb设计,走线长度匹配有技巧。比如用蛇形走线增加短通道的长度,让四个通道等长。”
“芯片内部布线比pcb精密得多,”陈永仁摇头,“蛇形走线会引入寄生电容,影响信号质量。”
讨论陷入僵局。餐厅里只剩下喝粥的声音。
突然,一直沉默的林辰开口:“吴瀚,你的校准算法,是基于什么原理?”
“基于最小二乘法,估计每个通道的延迟偏差,然后用数字滤波器补偿。”
“必须用缓冲器做物理补偿吗?不能全数字?”
“全数字补偿需要先采样,后处理,延迟太大。”
林辰思考了几秒:“如果……我们换种思路呢?不追求四个通道完全一致,而是让它们故意不一致,但这种不一致是已知的、可预测的。”
“什么意思?”三个人都看向他。
“比如,设计时就故意让四个通道的延迟呈等差数列:通道1延迟0,通道2延迟01ns,通道3延迟02ns,通道4延迟03ns。这样虽然绝对延迟不同,但相对关系固定。校准算法只需要估计一个参数——等差数列的公差,而不是四个独立参数。”
吴瀚愣住了,手里的筷子掉在桌上。
“这……这太疯狂了,”他喃喃道,“但好像……可行!如果延迟是等差数列,那么四个通道的采样点在时间轴上就是等间隔分布的!这不正是时间交织采样的理想状态吗?”
陈永仁也反应过来:“而且等差数列的硬件实现很简单,只需要设计不同长度的走线。校准算法复杂度降低四分之三,需要的缓冲器面积也大幅减少!”
张文龙已经在餐巾纸上画电路图了:“走线长度可以这样设计:通道1直连,通道2绕一个小圈,通道3绕两个圈,通道4绕三个圈。寄生电容的问题,可以通过加大线宽来缓解……”
思路一打开,解决方案如泉涌。四个人饭也不吃了,就在餐桌上讨论起来。服务员过来收盘子,被何庭波用手势制止——这时候打断,灵感就跑了。
讨论持续了一个小时。最后方案确定:adc采用“故意失配”设计,四个通道延迟呈等差数列,公差01ns。校准算法从四参数估计简化到单参数估计,缓冲器面积减少60。
“第三个问题,”林辰看向张文龙,“射频和基带的接口时序。”
张文龙胸有成竹了:“既然adc可以故意失配,接口时序也可以。我们设计一个弹性缓冲区,允许射频和基带之间有最多三个时钟周期的相位差。基带每次取数据时,先检查缓冲区的填充状态,选择最合适的数据帧。”
“实现复杂度?”
“增加一个128字节的fifo和一个小型状态机,面积增加不到1。”
“好!”林辰站起来,“一上午解决三个难题,值了。现在各自回房间,把方案细化,下午三点开评审会。”
四人起身时,才发现餐厅已经空了,服务员在远处眼巴巴地看着他们。
何庭波去结账,顺便给了服务员小费:“不好意思,耽误你们收餐了。”
服务员是个二十出头的小伙子,咧嘴笑:“没事,我哥也在华为,说你们在搞芯片。搞成了,我们中国人就不用买外国芯片了对吧?”
何庭波一愣,然后用力点头:“对,搞成了,就不用买了。”
喜欢重生:从oicq到华为芯片帝国请大家收藏:()重生:从oicq到华为芯片帝国小说网更新速度全网最快。