随着EDA平台服务趋于网络化,如何通过对资源和流程的有效管理,为用户提供更为方便安全的远程EDA平台调用服务,已成为关键问题。在FPGA开发平台上集成了EDA工具环境,并部署SGD软件。在实现远程控制的基础上构建一个可兼容异构系统的EDA工具远程调用接口,解决了EDA工具的远程启动和图形界面传输问题,得到一种相对简单方便又有一定安全保障的远程控制模式,实现可视化的在线虚拟集成电路芯片设计。
1 引言
当前,中国所采用的FPGA芯片基本依赖于进口,研发具有自主知识产权的FPGA芯片具有重要意义。FPGA芯片研发必须使用EDA工具。EDA(Electronic Design Automation)是在CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行集成电路芯片产品的自动设计。EDA集成开发环境IDE(Integrated Development Environment)是指根据集成电路芯片设计流程,将设计流程中各个阶段所需要的EDA工具软件集成在一个硬件平台上,进行项目设计开发的软硬件工作环境。在此环境中,项目的设计数据通过文件方式在各个EDA工具之间流转,直到设计全过程结束。集成电路芯片EDA设计工具很多,其中按市场所占份额排主要有Cadence、Mentor Graphics和Synopsys。这三家都是ASIC设计领域相当有名的软件供应商。集成电路芯片EDA设计工具包含了集成电路芯片开发的各个领域:前端设计、后端设计和设计验证。前端设计工具将完成从芯片逻辑部分的概念化设计到芯片逻辑门级表示的工作。后端设计描述了如何使设计结构在芯片上物理实现,关键是芯片库单元的布局和布线。设计验证将保证芯片满足功能、时序、功率和其他指标的要求。
21世纪EDA技术的发展日新月异。中国先后在7个国家产业化基地建立了EDA技术与服务平台。从功能上看,这些EDA平台上安装有当前所有主流EDA软件和测试工具,并配备有相应的设计环境,以租用的方式提供给企业使用。然而,目前能够以网络平台为载体向用户提供在线IC设计的平台还很少,仅适用于进驻的企业,对于远程访问的企业则无能为力。
本文FPGA开发平台集成了FPGA芯片设计流程中各个阶段所需要的Cadence、Synopsys、Mentor等公司的各种EDA工具,用于研发具有自主知识产权的千万门级FPGA课题产品。在自主千万门级FPGA芯片设计课题中有海外设计团队参与,为了不受地域限制来使用开发平台上的EDA工具,又不影响数据安全,使用SGD软件是目前最佳的方法。SGD(Secure Global Desktop)软件基于互联网的远程仿真计算技术,能够实现可视化的在线虚拟集成电路芯片设计,用户通过网页浏览器即可使用FPGA开发平台上集成的EDA工具和资源。在数据安全方面,由于在FPGA开发平台服务器和用户终端之间传输的仅仅是鼠标键盘的输入和屏幕的变化量,用户终端只负责交互,所有计算和存储都在平台服务器端完成,所以能够保证设计数据的安全。
2 EDA工具集成和SGD软件部署总体框架
EDA工具集成和SGD软件部署总体框架如图1所示。
图1 EDA工具集成和SGD软件部署总体框架
服务器端的功能由SGD Server阵列、SGD Gateway Server、管理服务器以及多台EDA Tool Server共同承担。用户通过互联网与SGD Gateway Server相连。管理服务器提供用户认证、许可证管理、版本控制和缺陷追踪等功能。EDA Tool Server用于各类EDA工具的安装和运行。 SGD Server阵列为用户访问资源和调用工具提供界面和负载均衡。SGD Gateway Server提供安全加密访问通道。在此架构中,用户端的运行环境一般为Windows系列,而服务器端的运行环境包括了Linux、Solaris、Windows Server等多种操作系统。
3 EDA工具集成
3.1 NIS服务器
网络信息服务(NIS)利用客户机/服务器模式和远程过程调用(RPC)接口在主机之间进行通讯。网络信息服务由服务器、客户机程序库和一些管理工具组成。在FPGA开发平台中,用户一般需要在多台Linux机器上工作,每台机器上用相同的用户名、属于相同的组、使用相同的密码。建立NIS服务器,将这些需要共享的信息存放在NIS服务器上统一管理,其他机器都从NIS服务器获得信息,一旦要更改某个用户的信息,只需要在NIS服务器上进行更改, 其他机器就自动收到更改后的信息。完成整个NIS网络环境的建设之后,就能根据设计项目对设计人员进行分组管理,根据所做项目为其配置相应的EDA使用环境。
3.2 网络文件系统(NFS)
网络信息服务通常和网络文件系统一起使用。NFS可用于不同类型计算机和操作系统之间通过网络进行文件远程访问和共享。在FPGA开发平台中,配置AutoFS Map文件来集中管理NIS域内所有的NFS共享目录。AutoFS的工作流程是,当客户端配置好AutoFS Map文件,在客户端如果有NFS目录读写请求,系统进程automountd就自动把NFS服务器的资源挂接到客户机上。所有机器通过NFS共用tools目录,不需要在每台机器上安装EDA工具软件,使得整个EDA设计环境进行集中和统一管理。所有机器通过NFS共用home目录,用户登录到NIS域中的任一台机器,自己的home目录内容都相同。
3.3 Modules软件
随着EDA工具的更新,系统中一定会存在同一工具的不同版本。版本不同,其路径、库和license等环境变量都有可能不同,如果用户在使用中临时修改环境变量会比较困难。FPGA开发平台用Modules软件进行EDA工具的环境变量管理。modules是一系列脚本的集合,简化了shell的初始化,允许用户在工作过程中很容易地修改环境变量,减少其维护难度,提供了一种动态修改应用环境的机制。modules使用以下方式工作,$ module avail列出可以加载的工具, $ module load加载工具,$ module list列出已加载的工具,$ module unload卸载工具。在脚本中还可以设置工具之间的依赖或冲突关系。
3.4 版本控制和缺陷追踪软件
在整个FPGA开发流程中,每个设计环节都需要团队来完成。在多团队紧密合作开发流程中,版本控制和缺陷追踪等管理软件是必不可少的。在FPGA开发平台上,安装了SVN、SOS版本管理软件和bugzilla缺陷追踪软件。SVN是开源软件,适合芯片设计流程中的文档版本管理。SOS是ClioSoft公司开发的集成电路设计数据版本控制软件,支持Cadence公司virtuoso平台的DFII。 开源的Bugzilla是一个搜集缺陷的数据库,它用于记录和管理产品缺陷从发现到修复的全流程。
3.5 EDA工具软件
根据EDA工具对操作系统版本的要求,分别在两台tool server上安装redhat enterprise 4 update 8和redhat enterprise 5 update 8两个版本的操作系统。集成电路芯片设计集成环境需要满足foundary厂家PDK库的要求。PDK(process design kit)是沟通IC设计公司、代工厂与EDA厂商的桥梁。PDK用代工厂的语言定义了一套反映foundary工艺的文档资料,包含了反映制造工艺的基本数据集。根据PDK对EDA工具及版本的要求,在两台tool server上按照FPGA芯片设计流程,集成了设计流程中各个阶段所需要的Cadence、Synopsys、Mentor等公司的EDA工具。
4 SGD软件部署
SGD软件部署分为两个部分,SGD网关和由多台SGD服务器组成的阵列。SGD网关是一种代理服务器,部署在防火墙隔离区(DMZ)。在客户端与阵列中的SGD服务器建立连接之前,通过SGD网关先在DMZ中对所有连接进行验证。SGD服务器阵列和其他需要控制访问权限的应用系统放置SGD网关后侧,位于内部网络中。SGD服务器阵列由多台SGD服务器组成一个负载均衡和故障转移组,与管理服务器和tool server连接。
SGD利用远程控制技术构建一个可兼容异构系统和工具的中间接口,是一种基于图形模式的远程控制技术,将远程主机桌面和应用程序完全地显示到客户端,使用户能够直观地对服务端进行操作。在FPGA开发平台中,EDA工具集成环境中的各种应用,如linux系统的EDA工具和windows系统的各种资源等应用程序,都可以通过SGD远程显示,远程用户用IE浏览器或Firefox浏览器通过互联网就能够使用FPGA开发平台上的各种应用软件。
5 FPGA开发平台应用
本文介绍的大容量FPGA设计平台已应用于全自主千万门级FPGA芯片设计。30多位设计工程师使用该平台参与全自主千万门级FPGA芯片设计。团队中在异地工作的工程师使用SGD远程登录到FPGA设计平台共同参与设计工作。设计团队采用中芯国际SMIC 40 nm CMOS设计技术,用正向设计的方法,设计基于SRAM配置的面向高性能通用逻辑与信号处理的全自主千万门级FPGA器件。器件含有数字ASCI电路、全定制电路、数模混合电路以及memory complier等。
6 结束语
本文介绍了FPGA开发平台中EDA工具集成的各种技术,以及部署SGD软件实现远程访问的方法。FPGA开发平台是为面向高性能通用逻辑与信号处理的自主千万门级FPGA课题产品研发建立的设计平台。在此平台上设计团队不受地域限制,通过浏览器即可远程使用平台集成的各种EDA工具。在FPGA开发平台上,已经完成第一个全自主千万门级FPGA的第一次MPW芯片设计,打通了数字ASIC设计、定制设计、数模混合设计全流程。