这个端午节真郁闷,一直在加班,直到加班到今晚九点多,服务器文件系统挂了,才能无奈的休息回。而这不意味这几天焦头烂额的生活已经结束,也许意味着服务器好了后会过的更焦头烂额!!
不过也只能怪自己,当初任务没做细,有些事一直在拖,搞得到紧要关头手忙脚乱。在这里随便扯扯教训,算是对做H264硬解码一个子模块的教训,也权充这周的日志。
- 万事不能拖,当解决的时候就必须解决。之前其实曾经有空整这东西,但是由于各种原因(包括自己的,以及各种对外部因素的依赖),一直没彻底搞定,自己也知道自己做的模块肯定会有问题,但却一直不想去改。这又是我执行力不够的体现,还是那就话,加强自己的执行力,任何事,想到了就去做。
- 不能报侥幸心理。之前解码中有个解出来的参数mb_skip_run,我想当然的以为他不应该超过一行的宏块数,虽然当时怀疑过自己的想法,但却报侥幸心理,觉得大部分视频的mb_skip_run都不会超过这个值,应该问题不大,的确,前面跑了很多视频,都没有出问题,可是昨天测了个视频,跑错了,一trace,发现问题就出在mb_skip_run上这点想当然。于是改,谁知,要不改状态机,得用到除法,而在Verilog中,用除法风险太高了,肯定出来的结果时序要求不符合,DC过不了,主频就惨了。最后只好大改,改状态机,还好,毕竟是自己写的,对状态机挺熟,花了一下午终于改好了,并且做了一些回归测试。还有,之前也怀疑过一个Frame会有几个Slice,但是由于没跑到这样的视频,所以也以为这样的视频很少,不做也罢,谁知,到最后还是得加。
- 思路得清晰,关键处要有文档,之前有个8x8块,我为了省面积,愣是想用4x4块的寄存器数(可以省700+寄存器)来完成8x8的残差计算和扫描,当时想通过4x4的想通过掩码把4x4打散成8x8块,当时就意识到逻辑会比较复杂,当时总觉得肯定可以,于是硬着头皮写了个逻辑,但自己都没有把握。由于之前没跑到8x8的视频,也不知道对否,就一直放在那。直到今天,跑了8x8的视频,才知道有问题,于是重新看了下代码,发现由于逻辑太复杂(需要先打散,之后扫描,扫描又分zigzag和field)以及没有文档,自己都看不懂自己当时是怎么写出那逻辑的。后来仔细想了想,想直接通过掩码,不用寄存器暂存8x8的块不现实(因为只打散的话,可以通过掩码做到,但是还要扫描,掩码就没辙了),于是只好加了用来暂存8x8的寄存器,并且残差输出的状态机也要改,又是一下午的时间才改完并且初步做了回归测试。
- …
- 马上就到端午节了,贴张粽子的图吧,望梅止渴下:

Comments (25)
我也没买粽子。明天再去看看
讲的很有道理。但在实际生活中常用的一个心得是lazy computing。咱都是搞计算机的,知道并不是所有的任务都需要立刻就完成,很多东西并不是很重要,拖拖就过去了。从你的经历来看,对事业还是不要应用这个比较好~
@代码回音
呵呵,到今天了,我都没吃,哎,北京的粽子太贵了,吃不起啊
@Yan
很多事的确拖拖就过去了,但拖的过程总感觉不踏实,总觉得欠什么
今晚科大人聚会包粽子,哇咔咔~~
CU科大人可团结了~~今年CU晚会你们就可以看见哥哥猥琐的身影啦!!
@Yan
刚想在chat问你端午吃粽子没,谁知不仅吃了,还炫耀到这里来了。。。
哈哈哈哈还有美女哦~~男女比1:1哟~~今晚记得去fb看照片哟~
@Yan
好,到时我去下面把你什么八辈子的丑事都抖一抖
我现在做事就很拖,汗
@PP
你也知道啊。。。昨天那么晚还没起。。。
@PP
同是天涯沦落人
@Yan
神啊,怎么同时回复。。。
你那SB服务器是linux的吧。。。
@sigma
对哦。。。我也才发现。。。
@Yan
linux怎么了,都是硬盘不给力,文件系统挂了
嘿嘿~~叫你不备份~
@Yan
服务器硬盘肯定有raid,用得着备份吗,只是文件系统出了点问题
拿硬盘貌似死贵死贵,几千块钱300G
也就是说不是硬件问题是软件问题啰?叫你用linux~
@Yan
是啊,linux怎么了?windows在那么大的负荷下我想也是要挂的
并且,windows下有好的EDA工具么
你在想什么呢。。。Synopsys, Cadence... 最大最好的平台哪个不支持windows啊?
http://www.synopsys.com/Support/LI/Licensing/Pages/SupportedOS.aspx
http://www.cadence.com/support/computing/Documents/Cadence_Platform_Support_Plan.pdf
@Yan
Cadence:(貌似一直都是在尝试添加支持,并且都是optional)
page 4:
Add support for SUSE SLES 11, Windows Server 2003, OS on x86_64 architecture
Windows*:Optional,A subset of Cadence products is supported on these compute platforms. Support is driven by customer demand.
Synopsys:
Note: 64-bit versions of Windows are supported. However, any FLEXid dongle drivers must be 32-bit only
并且很多其他的支持软件如verdi之类的都是linux only,windows下的脚本也没那么方便
嗯,有教训才会做得更好!
粽子叶太绿了,很可能是硫酸铜泡过的。
@sdfe
各种专业,膜拜下