自由人协作平台【基于TWiki的Verification协作平台】
摘要:随着芯片规模不断扩大和芯片工艺不断深入,验证作为前端设计主要任务和瓶颈将变得越来越复杂和庞大,所占比重也越来越大。而与此同时,由于验证工作涉及到项目架构、设计,需要对不同产品协议进行了解;作为统筹前端仿真环境的建立和维护,需要验证工程师了解产品协议之外包括平台,各种不同脚本,不同供应商提供的工具,基于不同平台所有这些工具及脚本的配置和维护及验证工作本身所必须的各种形形色色的方法学、语言,及其不同特点并将其建立为一个整体且兼容的前端验证解决方案,使其兼顾既能够对产品项目提供完备可靠的验证,又能高效运作,并可对项目管理起到促进作用。因此,需要一种简单易用的协同开发平台,能够将如此复杂和交互性的工作进行共享管理,实现跨地域、跨组平滑协同的目的。
1 TWiki介绍
1.1什么是TWiki
TWiki是Wiki的一种,它是一个开源(GPL)的wiki程序。软件定位为“灵活、强大、易于使用的企业协作平台”,运行于Perl环境。从2001年开始开发,大约每年发行一个重要版本,在问世短短不到10年时间内,很快被很多大型商业公司采用,例如Yahoo,SAP,Motol,ola,Wind Riv,3Com,AT&T,Boeing等,同时也包括国际一流Ic设计公司如INTEL,AMD,TI,Aleatel,NVADIA等都将TWiki作为企业内网协同技术开发平台。
目前TWiki发展迅速,平均每个月大约4000-9000的下载量,累计超过五十万用户下载并使用了TWiki作为协作平台。TWiki目前在全球有超过200个优秀开发者为其提供改善和维护,数百万用户,超过130个国家和支持超过14种国家语言使得TWiki从问世以来就迅速普及和成长。
1.2 Twiki的特点
作为一个基于web的网站协作平台,TWiki可用于项目开发管理,文档管理,知识库管理以及其他协作工作。Twiki拥有完善的权限管理,经常被企业用来作为内部知识库使用,是企业Wiki的首选。提供的功能包括:Editlink;Autolinks;Texfformatting;全文检索;Email通知;Strueturedeontent;使用TWikiForms分类/分级无组织的web页面;文件上传;版本控制;访问控制;一个灵活的模板系统便于分离内容与逻辑;页面管理:可以直接重命名,移动和删除。最近更新管理:提供最近更新TWiki页面,更新日记可以通过RSS发布;提供统计最受欢迎页面和投稿数最多的用户;当多个用户在同一时间,编辑同一个页面时将自动进行内容合并,当有冲突时将引导用户手动解决冲突。
TWiki的特点主要包括一下主要内容:
◆内部链接可以使用中文
◆支持所有浏览器
◆支持全文检索,并支持with/without、正则表达式特性
◆支持电子邮件通知:设定之後,可自动获得TWiki内容改变得通知
◆不需要使用数据库
◆版本记录
◆变量
◆文件附件
◆功能强大的权限控制
◆多语言支持
◆多站点设置
◆WikiWord(此功能中文无法使用)
◆插件丰富,可实现多种功能
1.3 Twi ki的缺点
强大的功能往往与复杂的系统相联系,Twiki也不例外。如果要对TWiki掌握得得心应手,需要用户了解很多的apache和.htaccess配置。尽管Wiki的初衷是讲究自由、协作和信任,但是为了安全起见,还是需要对用户进行认证以便进行权限管理,TWiki提供了分用户和分组管理,但是相对于一般的商用软件TWiki的管理较为复杂。
此外TWiki中文功能尚不完善,不能使用中文作为Wiki Word以产生自动链接,但是相信随着TWiki的不断进化,这个功能在未来可以被支持。
TWiki平台像其他很多Linux平台下的开源工具一样,质量和稳定性都很不错,但是相对来说性能稍逊色,当然每个人对使用TWiki系统的目的不同,因此对系统性能评价各有评判。大部分TWiki都是部署在公司内网,对性能需求也较少,因此如计划将TWiki部署于Internet作为协作平台,就不得不考虑其他新功能的性能。
1.4 Twiki部署成本
如前对TWiki缺点所述,TWiki的安装和管理较为复杂,因此需要企业内部CAD安装和维护工程师熟悉apache相关设置,在TWiki安装阶段需要配置LocalSite.cfg来指定TWikiflib的绝对路径,如:$twikiLibPath=/homelwinter/twiki/lib;需要在初始安装阶段配置配置eonfig设置:“General path settings”部分,以后进行插件(plugin)的管理,都会是通过这个页面进行。对用户访问权限进行管理需要管理员把twiki/bin目录下的,htaccess.txt改名为.htaccess,并对其进行设置。此外还需对出错页面进行设置并吧注册页面换成带输入密码的注册页面:在twiki/data/TWiki/下有TWikiRegistration,txt和TWikiReNstmionPub.txt,用后者把前者覆盖(cp TWikiRegistrationPub.txt TWikiRegistration.txt)。这样会发现每个页面的“edit”都需要输入用户名和密码,TWiki将把以后注册过的用户权限做出相应开放,并对其留下痕迹进行记录和发布。
无论是验证工程师或者公司其他团队工程师,都有自己的主要职责而不希望花费过多额外经历在其他事情上,TWiki尽管提供了一套简单易学的语法规则,但仍需要额外时间来掌握,幸运的是这个规则并不复杂,验证组内部应用显示一般人经过一天内练习就可以进行简单的编辑,就像Winter所说“用TWiki编辑就和平时直接写文本一样简单――就像写email”如果你喜欢,你可以使用HTML代码,但是并不要求你了解。当你写入一个WikiWords时,TWiki会自动链接到相应的主题。TWiki语法速记让你通过一个简单的译码系统拥有了所有强大的HTML功能。在你使用Edit界面时,本网页可以通-过弹出窗口的方式完全展现给用户。
2 TWiki在验证组的应用
在项目验证工作中,当我们的验证环境还不太复杂时,设计和验证工程师能够通过比较简单的交流和沟通达到熟悉验证环境,协同开发项目的目的,但是,随着验证环境的日益复杂,特别是为满足跨组,跨地域协同及复用性等方面的需求,传统的协同工作方式已很难满足工作需要,这时经常会发生在前端设计验证甚至验证组内发生因为彼此工作重点不同而存在的沟通不畅,信息共享不全导致设计及验证工作效率底下。在此情况下,我们启用业界流行 的企业内部协作平台TWiki。
2.1 用于项目协同开发
在目前基于公司内部开发的前端签收平台下,建立关于项目的验证模块,将从项目启动开始到芯片TO整个验证流程和相关信息上线,达到项目共享和跨组或跨地域共享,实时监测项目验证状态。此部分不在本文做过多描述。
2.2 应用于技术协同开发
传统的验证工程师被称作“仿真工程师”,他们只需要根据项目需求建立验证环境进行仿真调试。但是随着验证工作的复杂化,需要验证工程师具有跨平台工作知识,对不同项目验证策略的把握,对平台可继承性,可复用性的理解,及各种不同验证方法学的特长及优缺点有所把握,并将其有目的、有层次的嵌入验证工作。这样在加强了整个验证完备胜和效率方面的同时,也带来了设计验证环境的复杂性,特别是当验证工程师或者其他相关工程师开发的工具和脚本混杂在一起,如果没有有效统一的管理既难做到最大利用性,也很难做到所有环境工具脚本的继承和发展。此外也对因此带来的验证公司内部标准化上线来进行信息共享,提高工作效率。
Twiki可以方便地对整个标题下的内容进行归总,方便使用者快速进入自己关心的领域进行更新或查找相关内容。
验证标准包括命名规则,目录结构及验证计划跟踪表模板上线,工程师可以在项目运行过程中,如果需要创建测试向量而不清楚相关规则的话,可以通过TWiki快速进入相关验证规则页面进行查找,明确最新规则要求。这样就避免了因为自身资料陈旧或者不知道该问谁,不知道该查找那封邮件等等传统的效率低下的方式而达到快速准确找到相关信息的方法。
将验证组(也可能包括其他功能组)内部开发的工具脚本上线,方便使用者或者开发维护者快速查找到相关脚本工具使用方法,最新版本情况及如何开发维护等内容,与SVN脚本开发管理相结合,这样就方便了跨组,跨地域协同开发一个脚本工具,做到信息无缝共享。
下面以AutoReg脚本页面为例做个基本介绍。
首先是在欢迎辞下是每个工具的介绍部分,会对本页工具做个基本介绍,可以方便的插入图片,表格等,也可以很容易的插入提示,警告等标识符美化页面,实现更好的用户界面性。
然后进入的是脚本或工具的列表项,在这里我们会对本页工具或脚本所有涉及到的文件进行列表说明,因为有时候一个比较大的工具不是一个脚本或者文件就可以实现完全,同时即便是可以,我们也不推荐这样做,而是在不影响实现效率的情况下,尽量进行模块化开发,这样既利于脚本维护升级,同时也利于协同开发,而且可读性也会好很多。
脚本列表后是对本页脚本工具每个输入项的描述,因为我们的工作平台都是基于HNUX,因此几乎所有工具脚本都是通过命令行的方式进行工作,即便有时候我们可以通过GUI的方式使用工具,我们还是不推荐这样做,因为我们需要保存每次运行的参数和对过程进行可配置的批处理,脚本化控制的魅力更在于此。
命令行输入项介绍之后,是对本页工具通用使用方式命令行格式,在这里用户可以方便的通过通用字符含义理解每个输入项的输入需求及是否为必选项等。
在命令行的使用介绍之后,是本页工具或脚本的使用说明,在这里开发者会针对不同使用方式分别举出几个代表性的例子,方便使用者快速上手。
最后如果使用者或者开发维护人员对此工具仍有疑问,可以通过热链接发邮件给工具目前的开发和维护工程师进行详细沟通,如果有相关附件也会在此附上。
以上是对工具脚本页面进行了基本说明,我们可以看出,针对一个脚本或工具,我们可以很方便地通过TWike在线方式,了解当前此工具或脚本的最新状况,也可以通过用户权限管理方便的对脚本工具及其页面进行协同维护。
除了以上介绍的验证标准化相关部分和脚本工具相关部分,验证TWiki页面也对验证技术涉及到的SVN版本管理策略,验证文档管理,验证平台方法学,项目BUG生命周期管理,公司VIP,VC等内容的介绍,限于篇幅原因,在这里不做详细介绍,若感兴趣可以访问公司内网http://10.19.13.23/twikiPoirdview/Veritlcation/WebHome来了解详细信息。
2.3 基于TWiki协作带来的好处
2.3.1 自由方便的协作
TWiki问世之初的初衷便是分布式协作,这也是它带给我们最大的好处之一,基于TWiki,我们可以抛弃过去繁琐的邮件通知,打印关键规则,保存重要规则文档以便随时查阅,搜寻关心项目查找自己所关心的信息等这些传统的协作方式而只需要把公司内网的TWiki主页入口放在收藏夹里,当我们需要查询任何有关于技术或者项目信息时,TWiki简
2.3.3 文档管理与Web2.O应用
用户可以定制自己感兴趣的网页界面,此外TWiki提供了一套版本管理可以有效方便地对TWiki中的文档进行控制,就像CVS或者SVN那样。用户可以利用TWiki建立自己的BLOG,RSS和新闻发布,相册及日历应用等其他很多应用,只要你对他足够有兴趣。
用户还可以用TWiki很容易地建立漂亮专业的表格,丰富的文本编辑,有趣的提示等。同时我们还尝试将我们产生的其他HTML格式嵌入TWiki,发现对于body部分可以无缝移植。
2.3.4 开放的维护与开发
开放与自由是TWiki的另一个显著特色,因为目前TWiki已经成为大多数一流公司的内网协作平台,加上开源带来的好处,有一大群热衷于TWiki的人在全球各地不断的为TWiki开发各种插件,因此比较容易地能够得到更多的功能插件而不需付出任何费用。
同时因为开放与自由,我们再也不必依靠一个网络管理员来处理繁琐的文档上传与下载和更新工作,而且每个工程师带有其专攻的技术点和项目点,让工程师自己管理自己的技术和项目方向是最好的选择。
3 基于TWikj协作平台的趋势
在以上几节我们简单介绍了TWiki的特点,我们目前的应用的现状及TWild协作带给我们的好处,但是目前我们的TWiki平台应用还非常有限,远远没有发挥出它应用的作用和特点,因此以下几点建议可以在将来继续部署TWiki的过程中作为参考。
3.1 关于项目管理
目前我们已经开始建立针对项目签收的TWiki平台,除了作为文本记录,如果能够加入TWiki本身具有的项目管理工具,如前面提到的任务指定,行动跟踪,报告自动产生等将可极大丰富和完善目前我们的管理流程。
在项目管理页面,我们可以将设计,验证,固件及开发过程等上线,这样无论从架构到设计还是从领导到工程师,大家对于需要沟通的信息可以透明完全的共享,使之前可能存在的沟通不畅,理解偏差等减少到最低程度。
利用具体责任人自己管理相关页面,也可以做 到减少误解,报告或信息更加准确无误,而信息查询者也可以最快、最准确的找到自己关心的信息来进行自己相关工作。
3.2 关于技术共享和协作
独立于项目,可以开辟出技术专用页面,每个页面可以有相关领域,如设计,验证,固件,模拟,版图等,同时也可以有一个技术总入口或技术总页面来作为通用技术共享平台,这样可以避免有可能产生的重复劳动,提高技术开发的工作效率。
同时技术共享协作平台也是跨组跨地域协作的良好平台,通过TWiki,无论身在何方,我们都可以知道协作的对方在做什么,做到了什么程度,是否有瓶颈需要突破并据此采取协作行动。
3.3 关于公司其他信息共享及新人培训
目前经常会发生即使来了好几个月的同事,仍然不是非常清楚公司产品历史和产品线划分,所采用工艺及生产FAB等,因此可考虑将相关信息上线,这样即使是新员工到岗,也可以通过浏览TWiki网页,很快了解公司产品特点,历史情况。
因为技术上线,新同事通过浏览相关技术网页和项目网页可以详细了解公司每个团队的技术特点,并可对自己将要专注的或感兴趣的部分仔细研究,如果有相关培训课程上线也可以指导新人而不需要每次准备大量培训资料和专人跟踪培训过程。
4 总结
通过以上介绍,我们对TWiki平台和在验证组内部使用状态做了基本介绍,可以得出结论:TWiki是一个功能强大的公司内网协同开发平台,同时它也适用于项目管理,市场管理等等方面,因为开源,它还可以免费获取,当然前提是如果你不需要技术支持或者打算培养公司内部的TWiki专员。另一方面,如果对TWiki提供的功能不够满意,还可以开发自己的插件或通过网络下载相关插件,方便地嵌入自己的TWiki平台,当然这一切都归功于开源和WIKi的奠基者沃德・坎宁安(Ward Cunningham)当初为方便模式社群交流而建立的波特兰模式知识库(Portland Pattern Repository)。
因为时间关系,公司内部TWiki平台建立不久,目前仅仅在设计一部的SOC团队内部使用,不周之处在所难免,Twiki平台的建设也得到了郑永刚团队的朱光裕,周�的努力开发和季欣华和周强的大力支持,在此表示感谢!
