Jim's profileJim's SpacePhotosBlogLists Tools Help

Blog


    11/21/2007

    读书笔记--《Verification Methodology Manual For SystemVerilog》

    此书的第一作者Janick Bergeron就是《Writing Testbench》的作者,于是便可以大体猜到是一本什么样类型的书了:以实现为目标,以实践为基础的规则手册。

    这本书在去年学习SystemC的时候,就顺带着下到了我的电脑上,被遗忘着。在日本,经由Pipa同学的推动,开始了学习SystemVerilog的热潮。Toshiba Tec的临近退休的大叔,在桌上摆着一本日文版。Xue-san拿来翻看,试图为骚包男找一些诡异的日文科技词汇,好让他继续神神叨叨。结果被我无意中瞥到,于是从移动硬盘上把英文电子版扒拉了出来。搞得日本同事和客户都知道我在盗版书籍的海洋中畅游过。

    书是由Synopsys和ARM共同资助编写的。Synopsys公司一直是SV的鼓吹者,在Vera的基础上,进一步支持SV。ARM也是实践中的推动者,对SV的贡献颇多。从现在的趋势看,SV大有取代Vera和e语言的趋势,因为功能基本可以覆盖后两者,而开放性又大大超越后二者。在日本工作期间,主要集中于IP Block Level的设计和验证工作,既有新编写的工作,也有复用修改旧设计的工作,于是深深体会到旧有的验证方法和工具在效率上颇有不足,应该要使用新的方法和工具来提高验证效率和代码质量。

    回到本书,一边看一边懊悔。就如《Writing Testbench》一样,这绝不是一本为SV的初学者准备的书。它的前提假设是读者对SV的语法有了清楚的了解,并且有了一定的实践经验了。这本书是以这个为基础,向读者提供细致的建议,以便掌握SV的语言精髓和新的验证方法学的核心。

    所以,试图通过此书学习SV的想法,彻底破灭。但从此书还是可以一窥新的验证发法学:以功能覆盖率为目标,以断言为方法的验证方法学。

    此书有北航夏宇闻老师领衔翻译的中文版。近几年开始学习Verilog的人,大概都不会陌生夏老师。他的Verilog教程在国内还是颇有些市场的。不过,就此书而言,还是看英文版吧。倒不是翻译得不好,而是有大量的词汇,用英文倒还更熟悉些,看了中文词汇,反而不知所指,不知所云了。

    过些日子,还要回过头看,边做边看边学习。

    《Verification Methodology Manual for SystemVerilog》   总体评价: 强烈推荐

    作者:Janick Bergeron (Author), Eduard Cerny (Author), Alan Hunter (Author), Andy Nightingale (Author)

    http://www.amazon.com/Verification-Methodology-Manual-SystemVerilog-Bergeron/dp/0387255389/ref=pd_bbs_sr_8?ie=UTF8&s=books&qid=1195654280&sr=8-8

    中文版:

    http://www.amazon.cn/detail/product.asp?prodid=zjbk563783&ref=SR&uid=168-1329459-7540237

    11/18/2007

    读书笔记-《天堂向左,深圳往右》


    一直没有看这本书,因为看完《成都》后,觉得慕容雪村的东西太郁闷,不愿意再看。

    最近听说慕容雪村曾经是“小护士”的一个才子,《成都》和《深圳》有都是以“小护士”为背景的故事为主。也就是说,都是以真实故事为背景写成的。这让我很有兴趣把《深圳》拿来看看。

    周末花了半天时间,在网上看完了。网上看书,一般都比看纸版的快许多,也不知道是为什么。

    《深圳》不像《成都》那样一味的糜烂,不再那么闹心,但是却也有了新的问题:迅速跳跃的叙事时空。

    一开始看的时候,很不习惯。顺序,倒叙,插叙,能想到的都用上了。慢慢的习惯了,就开始随着作者的文字在各个年代,各个地点,各个人物之间跳来跳去。从生前到死后,从深圳到鞍山,从富人到穷鬼,从嫖客到妓女。要是跟不上节奏,也会看昏迷的。只是跳得实在是有些太快了,以至于不允许我分几天来看,必须一口气完成。

    《深圳》果然是有着“小护士”的影子。日化行业的林林种种,好像就是书中描述的那样。虽然个人眼中的深圳是各不相同的,但确实有一种深圳就是书中描述的这样的,是我早有耳闻的。

    书中不同的人物,构成了深圳的众生相,描绘了这个新兴都市的人事百态。从一个小渔村,短短二十几年,发展到今天的样子,什么样的事情不可能发生,什么样的人不可能存在?

    慕容雪村还是执着于他的都市玻璃,非要把一件件的好事,一个个的好人,撕碎了,砸烂了,拿出来给各位看客瞧瞧。

    追逐梦想,却被随梦想而来的现实踩得粉身碎骨。这就是深圳。

    那北京呢?上海呢?

    你也会被撕碎,砸烂,粉身碎骨吗?

    《天堂向左,深圳往右》   慕容雪村
    总体评价: 谨慎推荐
    http://www.amazon.cn/detail/product.asp?ref=DT_AA&uid=168-1949655-7140254&prodid=bkbk401023

    11/2/2007

    读书笔记-《Pragmatic Version Control Using CVS》


    这本书很早以前的了。因为上次的项目中,版本管理有些混乱,并且到最后也只实用了比较初级的RCS系统。又因为好久没有用CVS了,就翻了出了看看。

    版本管理的历史当然是很久了。我自己开始接触CVS,则是前年在北京,杭州做软件开发和测试的时候。那时只知道使用简单的CVS命令来管理自己的代码,并没有涉及到所谓的版本“管理”这个部分。

    这次的项目让我发现,即使是在芯片的逻辑开发和验证过程中,版本“管理”也并不比软件设计来得简单。对比各个版本间的差别,找出这些差别间的本质问题所在,可以很及时有效的避免一些潜在的问题。有人说,新的代码,意味着新的错误。此话不假。如果自己分析版本间的差别,可以帮助开发人员将这些问题尽早的找出来。这就是版本管理的一个方面。

    另外的,芯片设计相比软件设计,版本发布的工作要少很多,但验证环境的发布却也是不少的。至于nightly build之类的软件自动化技术,在芯片设计中也是用得到的。只不过限于我现在的逻辑设计规模,以及测试的能力,暂时还没有实际应用到。但在做软件的时候,我是领教过它的功用的。

    以我现在的体会,RTL代码的版本管理相对比较简单,实际上也没有必要搞得很复杂,因为最终只会有一个发布版本。而验证环境的版本管理就会复杂些,发布版本会多些,但是比起软件来,也还是要简单很多。

    所以,《Pragmatic Version Control Using CVS》这本书就够用了。

    这本书的一个特色就是注重讲怎么实现Version Control,在control的过程中注意哪些事情,既不要过于简单潦草,也不要人为的搞复杂了。对于CVS本身的命令只设计最简单和实用的部分。书不长,讲了该讲的部分,剩下的然让读者自己去查手册。很好。

    《Pragmatic Version Control Using CVS》 Dave Thomas , Andy Hunt
    总体评价:强烈推荐。
    http://www.amazon.com/Pragmatic-Version-Control-Using-CVS/dp/0974514004/ref=pd_bbs_sr_1/002-2946299-6052044?ie=UTF8&s=books&qid=1189169002&sr=8-1