验证工程师Mike Mintz:IC验证需要使用面向对象的编程技术。因此,他创建了两个源代码的软件程序,以协助工程师们使用C++进行硬件验证工作。此外,他在工作之余,还与人合作撰写了一本以此为主题的书。Mintz在一家他不愿透露名字的大型系统设计公司工作,他的合作者Robert Ekendahl是Sun Microsystems公司的首席验证工程师。他们通过自己创立的网站,对外提供两个源代码程序。其中一个程序叫Teal,是一个C++类库,它将C++改编为Verilog,并且提供线程支持。另一个程序叫Truss,是在Teal基础上进行C++验证的应用程序框架。Mintz和Ekendahl还出版了一本名为《用C++进行硬件验证:专业人员手册》的书。在手册的附带光盘中直接附有Teal和Truss这两个程序。“据我所知,至今还没有用C++进行验证的有关书籍,同时又有许多人在使用C++进行验证。” Mintz说,“我认为把我20年软件工作的经验写入书中是件好事。”Mintz认为,C++是目前可用于验证的最佳面向对象的语言。“不要让我从SystemC开始,”他说,“它是一种很好的建模语言,但它对于验证来说毫无价值。它提供给你的是模板——C++通用术语,但是在进行验证的过程中几乎用不到。”人们期待着用C++做验证工作,然而,这需要相应的软件才能实现。这就是Teal和Truss产生的原因。Mintz做过15年软件工程师。他于6年前做第一份验证工作时写了Teal。“每当我去一家新的公司我都要重新实现Teal,”Mintz说。最终当他询问是否能公开Teal时,他现在的老板说可以。Truss创建于去年Mintz和Ekendahl都在为飞思卡尔半导体公司工作的时候。“你已经有很多正在使用的内部资料,为什么不把它拿出来呢?”Mintz回顾道。Mintz把Truss与Synopsys-ARM公司的验证方手册和Mentor Graphics公司的先进验证方进行了比较,“不同之处在于它是和免费的,而且采用的是C++语言。”“对我来说很明显,”Ekendahl说,“面向对象的验证正在成为业界最佳实践验证方法。”他透露,新书内容包括从基本到高级的面向对象编程技术,其指导原则对于SystemVerilog、Vera和Specman这些语言来说也是直接适用的。Ekendahl已经注意到,目前已有一些公司正在使用Teal和Truss。这些软件程序和C++一起,正在引起更多的关注。仿真提供商Aldec公司的首席执行官Stanley Hyduke在的一个帖子中对这本新书进行了评价。“这本手册对面向对象编程以及如何将其应用于硬件仿真提出了清晰的见解,”Hyduke写道,“我清楚地认识到对于下一代硬件验证来说,C++、Teal和Truss能够组成一个强大的平台。”C++到Verilog的过渡Mintz将Teal描述为一个“垫圈”,它通过Verilog编程语言接口(PLI)将C++编码和Verilog仿真连接起来。“它允许你每天用C++来写程序,但它可以与硬件相互作用,”Mintz说,“它将Verilog PLI隐藏在那些只有人类才能做的对象中。”只要你不试图在C++中实现一个高频时钟,那么PLI常高效的,Mintz表示。他还说:“只需把程序放入Verilog中。在Verilog中有一个看门狗定时器,但是所有的逻辑都在C++中。”Teal还提供可移植Posix线程的封包,从而可提供多线程支持。“因为硬件是多线程的,所以验证系统也需要多线程。” Mintz表示,“你想运行多少线程都可以,我就运行过4,000或5,000个。”Teal的其他特性包括稳定的随机数发生器、灵活的日志记录工具(logging cility)和用于验证系统各部分之间传递参数的词典式名字空间。存储名字空间和查寻功能为进行“秘密”存储器读写提供了简便的方法。所有这些功能只占用很小的空间。据Mintz透露,Teal仅仅包含了6个源文件和大约3,000行的代码。因为它的代码是的,用户可以酌情修改原文件。唯一的是他们不得进行商业出售。Teal可以和Cadence、Synopsys、Mentor Graphics和Aldec的Verilog仿真器以及源码的Icarus仿真器一起工作。正如Mintz所说的那样,虽然Teal提供了“验证系统所需的内核”,但它并没有提供一种方法。Truss由一系列位于Teal之上的类、模板和协议组成,它描述了测试、测试平台和驱动程序应如何运行。“如果你想看看我们怎样构建验证系统的,那就看看Truss吧。” Mintz说。Truss是一个在顶层控制器、测试平台和看门狗定时器之间真正心投入的“舞者”,Mintz表示,“它了解这三个家伙如何运作,它们发出了哪些调用以及它们怎样来运行测试。”Mintz表示,他和Ekendahl并不计划将Teal或Truss推向市场。“你不能在结构上赚钱,”他说。不过有些人可能会私底下提供有关这些程序的服务,他指出。他们将通过Email对Teal和Truss提供“尽力而为的”技术支持,Mintz表示。不过大家要知道他是个非常忙碌的家伙。“我们花了大约2,000小时来写这本书,Teal和Truss也花费了我们几乎同样多的心血,”他说,“我一周要工作60小时,在家工作的时间更长。”作者:葛立伟
推荐:
网友评论 ()条 查看