老驴,生日快乐

本文回忆了作者与好友老驴在大学期间的点滴,从相识相知到各自成长,分享了共同度过的生日、经历的挑战与欢笑。文章提及了两人在学习、生活中的互助,以及在技术领域的进步,如编程、游戏开发等。通过回顾过去的时光,表达了对友谊的珍惜和对未来发展的期待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老驴,你又要过生日了。

去年的这个时候,我在威武大莱阳录制了感人至深的“你的生日”,至少我很感动,那个时候,你还在积成电子,也忘记了有没有人陪你一起过生日,而现在,你已经褪去了工程的袈裟,换上一件崭新的销售西服,祝贺你昂。

一年又一年,时光如梭!时光?我似乎想起了点什么,奥,那是许巍的”时光“……(如果写在初中作文的开头,老师应该用波浪线标注为好句子吧)

我们的时光起源于2008年9月6日,这日子你肯定忘了,你一向如此,硬伤!记得……呵呵,越来越像初中作文了……那是一个晴朗的下午,我在新鲜的山洞烤鸡大学的B10-109打量着,你爹带着悟空发型的你闯进了我的屋子,当然,后来也是你的,当时你应该是穿着你姐送你的奥运会志愿者的衣服,这件事你否认过,我也记不清了,有些事就模糊一下吧。

随后天真的你很快被“美丽功课”拿下,换了各式各样的发型,不得不说,你确实年轻过。大艺团纳新的时候,你一首“那些花儿”,赢得了我违心的赞赏,可惜大艺团瞎了眼,还是没要你。后来,你去了学生会体育部,我去了自律会教检部。曾记否,你顶着烈日炎炎,牺牲午休时间去为篮球赛服务,曾记否,一年以后,你成了组织篮球比赛的体育部代部长,官居N品,与此同时,我也在校、院自律会做着差不多的事情,一批不明事理的学弟像我们曾经谈论冯主席和鹏哥那样,很神往地议论着咱们宿舍出了两个大官儿。

大学里,你不是落俗套的好学生,但不得不承认,你也是很积极的,大三的时候,新生入学之际,你可也是六点多就起床了的,跟我一起“电信充话费,送手机”,回想起来你会不会为自己当初的勤劳而感动,虽然我是四点多就起来占场地了,但是我还是毅然决然地与你平分了我们的收入,妈的,这是什么样的境界!跑题了,继续说你积极的事情,大学的几个暑假,也就是那几个生日的前后(点题句),你都是很积极的,成为了一名驾驶员,成为了一名武林豪杰,成为了一名会编贪吃蛇的程序员,多么辉煌!我还记得咱们有一段时间晚上在楼梯间压腿锻炼,你教给我一招组合拳,至今很受用!你的积极使你一度也成为了技术流,虽然这是你不在意的,我们一起去山鹤购置了高配的装备,继而有了点阵、摇摇棒、五彩灯等优秀作品,虽然是临摹,但功力不浅,值得赞!当然,人无完人,你也有缺点,我要批评你,你挂科的数目太少,必然体会不到胖子那泰山崩于前而不变色的定力,不过聊胜于无,你总算还是可以吹吹牛的:哥当年也是挂过的!这一点,我确实底气不足,我只能默默地给坐在我前面的你和坐在我后面的胖子递纸条,我混蛋!

你是个好人,大学里帮了我不少,首先因为你比我有钱。有一次我饭卡丢了,跟着你吃了好几天饭,我真心地认为我卡办出来以后你会吃回来,但是,感人的事情发生了!当时我在想,老驴这哥们这辈子我交定了,至少没饭吃的时候还可以蹭饭啊!虽然乐善好施的你早已不记得此事(不要告诉我你还记得!),但我会记得的,兄弟!还有,在09年你过生日之前,也是我过生日之前,我们去了啤酒节,那是啤酒节的末班车,没什么看头,记忆最深的是你要了十个烤串,30元,你请的,在那个24K纯屌丝的穷学生时代,你表现得很慷慨,吃了这个烤串,我才觉得不虚此行!你是个好人还体现在你教我踢足球,这件事情上我是一朵纯粹的绿叶,过人如亨利的你在球场上挥洒自如,那是你的第二战场,那是你的骄傲。至于你把电脑优先借给我用之类的就不多说了吧……

在某些领域,你很厉害。刚进大学的时候,参加打字比赛,你得过学院第二,那时候我们经常去网吧,我很菜地练习电脑基本操作,而你经常会来一局游戏,有一次在去网吧的路上你捡到一个4G的优盘,打开一看,是一些视频。后来你告诉我,其实那些视频你之前都看过,而且你很同情那个丢U盘的人,好不容易收集的视频就这么丢了……

你很淘气,所以身为舍长的我不得不在你上床后经常用班旗的旗杆招呼你,所谓狗急了会跳墙,驴急了会吐唾沫,我在用心良苦的同时还得注意纯洁。你的淘气还体现在有的时候你会跑回宿舍,顶住门,不让正义凌然的舍长回来修理你,但是,有的时候,你也会失算,比如我已经在阳台上看着你了。这个场景很模糊,我有点辨不清真假,正如《此间的少年》所言:也许回忆的魅力正在于虚构。

我们毕业两年了,都已远离了那些青春年少,写这么个流水账是因为你记性不好,以防多年以后,你都忘了我们曾谈起过的逼哥、大逼哥、在篮球场上高喊“I’m the best”的超级大逼哥,还有三巨头、要哪有哪、智慧僵尸……

这么个玩意儿写在这个多日没有问候过的技术博客里,是不务正业,对此深表歉意。写得孬,还望在你生日之际,使你嘴角泛起一丝狡黠的微笑,足矣。来句寄语:困难的时候,坚持一下,坚持过去就好了,坚持不过去的时候,还有舍长!比如舍长可能比你更惨,然后你就心理平衡了,然后继续坚持!

最后点题:老驴,生日快乐!


Genus Ispatial flow 自2019 年推出以来,广受客户青睐,AE 们接客接到腰酸腿软颈椎弯。Ispatial flow 除了跟Innovus 更好的correlation 之外还有两大特点,其一是CRR: Critical region restructure, 也就是逻辑重构;其二就是Early clock flow, 为了知其然研读了几天Early clock flow, 今天以一篇appNote 为参考,做个学习小结。 WeChat Image_20210208100114.png Early Clock Flow 是个啥? Early Clock flow 是前几年Innovus 中的一项技术革新,其呈现是在Placement 的时候做clock tree; 其思路同样是『早发现早治疗』;其做法是在place\_opt\_design 时调用CCOpt 的fast clock tree clustering 来build clock tree; 其好处大致有二:其一是可以及早看到CTS cell 对congestion 的影响, 其二是可以及早精确看到ICG 相关的timing. Early Clock flow 自面世以来已经过上千个设计的检验,虽然Early Clock flow 跟设计强相关,但是对大部分设计都大有裨益,尤其是时钟简单的高性能核。此外Early Clock flow 跟CCOpt 的useful skew 相结合可以进一步改善PPA. WeChat Image_20210208100121.jpg Early Clock Flow 怎么用? WeChat Image_20210208100126.png 因为Early Clock Flow 是在place\_opt\_design 中调用fast CCOpt CTS clustering, 所以必须在place\_opt\_design 之前将CTS 的设置设上,如: WeChat Image_20210208100130.jpg 然后在place\_opt\_design 中将Early Clock Enable: WeChat Image_20210208100134.jpg 在Innovus 里做CTS 需要clock tree spec, 可以读入一个已有的spec 或用命令create\_ccopt\_clock\_tree\_spec 创建一个spec. 如果没有读入也没有创建spec, Innovus 在place\_opt\_design 的时候会自己创建一个spec 并且在place\_opt\_design 结束时将其删除。在log 中可以找到如下信息: WeChat Image_20210208100143.jpg WeChat Image_20210208100144.png 如果db 中已有了spec 则会在log 中找到如下信息: WeChat Image_20210208100151.png place\_opt\_design 创建了CTS spec 之后,先会做一次global placement, 然后build clock tree. 在log 中找DAG (Directed Acyclic Graph) 可得到: Number and type of buffers and inverters used for the clock tree Clock tree wire lengths for top trunk and leaf nets clock net violations skew group summary together with its minimal, maximal insertion delay, skew, skew targets WeChat Image_20210208100155.jpg Clock Tree build 好之后,工具会在如下步骤间多次迭代: incremental placement timing optimization useful skewing congestion repair power optimization 在log 中会看到如下信息: WeChat Image_20210208101519.jpg Early Clock Flow 结果呈现 如果enable 了Early Clock Flow 在place\_opt\_design 的log 中会找到许多跟CCOpt 相关的信息,在place\_opt\_design 结束时会将useful skew advancing 和Delaying 的信息写到log 中,也可以用report\_ccopt\_pin\_insertion\_delays 报出相应信息。 WeChat Image_20210208100201.png 如果同时enable 了Early Clock Flow 和Useful Skew, place\_opt\_design 结束时会生成一张如下的summary table: WeChat Image_20210208100207.jpg 同样可以在log 中找到insertion Delay 的信息: WeChat Image_20210208102243.png 如果enable了 Early Clock Flow, place\_opt\_design 之后report timing 展开clock path 会看到在clock path 上已经有了真正的clock tree cell. 但是由于clock network 是ideal 的所以在timing report 中看到的clock cell delay 都是0. insertion delay 会用命令set\_clock\_latency 以latency 的形式写到下面文件中: \<DB>/mmmc/views/\<view>/latency.sdc 如果enable 了Early Clock Flow, 在ccopt\_design 之前不要做reset\_cts\_config 或reset\_ccopt\_config, 否则前面的insertion delay 值会被删掉。Innovus 读入latency.sdc 后,会将set\_clock\_latency 转化成命令set\_ccopt\_property insertion\_delay. 但是需要注意的是,在set\_clock\_latency 命令中,负值表示往前推clock, 正值表示往后推clock; set\_ccopt\_property insertion\_delay 正好相反,负值表示往后推clock,正值表示往前推clock, 其对应关系是: WeChat Image_20210208102426.jpg ccopt\_design 会将place\_opt\_design Early Clock Flow 中插入的clock tree cell 都删掉,并重新build tree. 如果在run ispatial flow 时enable 了Early clock flow, 在Innovus 中不论是netlist handoff 的full place\_opt\_design 还是db handoff 的incremental place\_opt\_design 都不会删掉前面build 的clock tree cell, 数据交互同样是用set\_clock\_latency. 举个栗子 这是一个简单的设计,这个设计没有congestion 问题,但是有ICG timing 的问题。 WeChat Image_20210208102442.jpg run1 without Early Clock Flow WeChat Image_20210208100223.jpg run2 with Early Clock flow WeChat Image_20210208100227.jpg place\_opt\_design 之后可以用clock tree debugger (CTD) 来显示clock tree 及insertion delay. WeChat Image_20210208100231.png WeChat Image_20210208100235.png 最后一点 在Ispatial flow 里除了Early Clock Flow 也有useful skew 的控制,useful Skew 在place\_opt\_design 中默认是开启的,可用如下变量控制: WeChat Image_20210208100201.png Early Clock Flow 跟useful skew 是相对独立的。
03-16
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值