微电子学与计算机

用于FPGA的多层次集成设计系统的设计与实现

 

现场可编程门阵列 (field programmable gate array,FPGA)通过软件编程对硬件结构和工作方式进行重构,从而使硬件设计如同软件设计一般便捷.这极大地改变了传统的数字系统设计观念、过程和方法.随着新一代FPGA芯片工艺和设计方法的进步,以及新的应用领域和市场需求的变化,电子设计自动化(electronic design automation,EDA)技术亦有长足发展,总趋势可概括为:跨越器件类型,跨越公司界限,设计理念日益人性化,越来越高的优化水平,越来越快的仿真速度,越来越高的仿真精度及完备的分析验证手段.一体化的工具使用户受益于一个统一的用户界面,避免了在不同的工具间进行数据转换等繁琐操作.目前,各大EDA工具供应商分别推出了集成众多工具在内的一体化设计工具,如 Xilinx公司的 ISE和 Altera公司的Quartus II,国内亦有京微雅格(原雅格罗技,Agate Logic)的Primace EDA软件、北京飘石科技有限公司(Uptops)的FPGA开发系统HqFpga和复旦大学的FDE等.但是上述集成开发平台都侧重在FPGA的开发应用,不具有FPGA芯片设计方面的功能.

本研究设计开发出一套用于FPGA的多层次集成设计系统 (versatile design system,VDS).该系统除具有电路设计功能外,还集成了芯片生成、系统级设计及芯片和应用的仿真验证等功能,集成度高.其中,全自动芯片生成功能可帮助用户快速设计适于自用的FPGA,大幅降低芯片开发难度,提升开发效率.VDS集成了具有导航功能的FPGA设计工具,通过部分人为干涉的方式实现了对软件的完全可控,完成了全芯片测试,同时可实现软件设计过程中的容错功能.VDS集成开发环境的编程语言是Python+wxPython,内核为C/C++、perl.整体设计思想是充分利用Python语言的动态特性,构造灵活又易于扩充的软件体系,可实现不同集成层次设计系统的快速定制.

1 VDS体系架构

图1为VDS用户图形界面,它是一个用于FPGA多层次设计的集成开发平台,包括FPGA芯片生成工具VBK(versatile build kit)、FPGA设计工具VDK(versatile design kit)、FPGA系统应用工具VAK(versatile application kit)和 FPGA验证工具VVK(versatile verification kit).各组件的调用可在一个友好且统一的图形用户界面(graphical user interface,GUI)进行.根据VDS中各组件个数和组合方式,可快速定制各种不同集成层次的设计系统.

1.1 VDS编程思想

VDS集成开发环境基于开源文本编辑器Ulipad,其编程语言为python+wxPython.采用wxPython软件可使VDS实现跨平台运行.Python语言的动态特性有益于VDS构造易于扩充且灵活的软件体系.实际开发时则全部采用Mixin和Plugin的设计与开发方法,即分布式类编程技术.

1.2 工程管理

VDS为FPGA设计提供项目工程和设计流程的管理.图1中工程管理窗口使用多Tab页结构,通过Tab页切换实现VBK、VDK、VAK和VVK各组件间的切换.各组件都是互相独立的集成开发系统.同时,这4个组件又紧密联系,可实现互调与资源共享.VBK生成的芯片可供VDK和VAK使用;VDK可辅助VBK完成FPGA架构评估;VBK、VDK和VAK可随时调用VVK进行仿真和验证;调用VDK中的软件可辅助VVK完成板级测试.

2 FPGA芯片生成工具VBK

在实际应用中,通用型FPGA的逻辑资源利用率通常都处于较低的水平,FPGA内部总有不少闲置电路.这部分闲置电路除构成FPGA的成本外,亦导致其性能降低.因此,通过细化市场,针对特定的应用领域优化FPGA结构,以灵活性的降低,换取FPGA效率和性能的提升成为FPGA的一个重要发展方向.现主要有两种实现方式:一是在FPGA中增加和特定应用相关的电路模块[1];二是按某一类特定需求优化FPGA布线架构[2].

但不同应用要求千差万别,采用传统的方法设计适用于不同应用的FPGA芯片和与之配套的EDA工具耗资耗时,得不偿失.为此,VBK的设计旨在提供一种快速FPGA芯片设计方法,使用户能根据自身需要灵活控制芯片规模和功能,快速将针对特定应用优化的FPGA架构转化为FPGA芯片版图,从而缩短FPGA芯片的开发时间,使快速开发适应不同应用的FPGA成为可能.

VBK包括FPGA芯片设计和验证的流程,适于体硅CMOS工艺和SOI-CMOS工艺的芯片.本研究使用VBK设计实现VX1000和VS1000两款芯片.VX1000采用0.18 μm体硅 CMOS工艺,5万门,系统时钟达326 MHz;VS1000采用0.5 μm SOICMOS工艺,5万门,系统时钟达100 MHz.虽然这两款芯片规模偏小,但VBK的设计方法具有普适性,对芯片规模无限制.图2为VBK流程图.

图1 VDS用户图形界面Fig.1 VDS graphical user interface

2.1 FPGA芯片设计

FPGA芯片设计指FPGA架构设计和FPGA芯片本身从行为级到晶体管级,再到版图级的具体设计实现.设计FPGA芯片是一个非常复杂和耗时的工作,高度自动化的辅助设计工具可高效实现面向应用的FPGA芯片设计.