发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种应用于FPGA的跨平台多层次集成设计系统,以解决现有的FPGA集成设计系统不提供快速设计和验证FPGA的功能的问题,高效实现面向应用的FPGA芯片设计,提高设计开发的效率。
(二)技术方案
为达到上述目的,本发明提供了一种用于FPGA的跨平台多层次集成设计系统,该系统包括用户图形界面模块101、FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105,其中用户图形界面模块101用于将FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105封装在一起,通过Tab页切换实现FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105之间的切换,使得对FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105的调用在一个友好且统一的用户图形界面下进行,实现Windows、Linux、Mac OS系统跨平台运行。
上述方案中,该系统根据FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105的个数和组合方式不同,能够定制
种不同集成层次的设计系统。
上述方案中,所述用户图形界面模块101还具有创建工程文件、工程管理和设计流程管理的功能,所述工程文件是该系统项目工程和设计流程管理的基础,其中至少包含所有设计源文件的路径、针对的FPGA结构、所有模块的执行状态以及参数设置。
上述方案中,所述用户图形界面模块101还具有文本编辑和文本显示功能,包括文件打开、创建、修改以及保存操作,提供文本拷贝、剪切以及粘贴操作,提供基于Verilog HDL语言语义的语法加亮、代码缩进、代码折叠、树形结构显示Verilog HDL文件中定义的所有模块和模块中实现的模块实例。
上述方案中,所述FPGA芯片生成模块102用于实现硅片制造的全部流程,以及实现半自动设计FPGA架构、模型生成和全芯片版图自动产生与集成。
上述方案中,所述FPGA芯片生成模块102实现半自动设计FPGA架构,包含如下步骤:基于模板编辑FPGA架构文件;通过图形界面修改架构描述文件中的相关参数,改变芯片的规模,各个基本模块的类型、数量、位置、尺寸,布线结构类型以及I/O类型和数量;架构文件生成后,通过调用脚本程序实现架构转换,产生对应不同应用领域的架构描述文件;建立布线资源图;对FPGA架构进行评估,评估标准为面积延时积最小;以及自动产生包含所有配置位的组织形式bitmap文件,此文件确定了整个芯片的结构和模块间的连接关系。
上述方案中,所述FPGA芯片生成模块102实现模型生成,包含如下步骤:通过脚本程序生成行为级模型,所述行为级模型用来对芯片进行功能仿真,且它是后期版图设计的输入文件,同时也是将来验证版图正确性的标准;通过脚本程序生成晶体管级模型CDL(Circuit DescriptionLanguage)网表,所述CDL网表用来对芯片进行晶体管级的仿真、验证电路的性能,同时还用来和自动产生的整个芯片的版图进行LVS(LayoutVersus Schematic)验证。
上述方案中,所述FPGA芯片生成模块102实现全芯片版图自动产生与集成,包含如下步骤:根据FPGA架构描述文件以及脚本工具产生的芯片各个模块结构与互连关系的一系列数据库,由一些基本的已经手工画好版图的模块来自动组装成布线资源模块(CBX、CBY、SB)、逻辑模块(LB)的版图;待所有模块的版图产生后,通过程序计算各个模块的位置,然后将各个模块自动契合或通过添加连线组装起来,最后形成整个芯片的版图。
上述方案中,所述FPGA设计模块103包括:综合工具、网表转换工具、映射工具、布局布线工具、码流生成工具以及下载工具。
上述方案中,所述FPGA设计模块103用于对电路进行导航设计,通过部分人为干涉的方式实现对软件的完全可控,完成全芯片测试,同时实现软件设计过程中的容错。
上述方案中,所述FPGA系统应用模块104用于使用标准单元库里的晶片、微处理器和嵌入式外设核,实现从硬件到软件设计的整个嵌入式系统设计,完成可编程系统芯片(SOPC)的设计。
上述方案中,所述FPGA系统应用模块104用于提供RTL IP封装技术、标准IP封装、图形化IP集成功能和各类系统构建块的系统集成技术,并为用户提供设计分区的功能,使多个团队能够并行设计,最终完成大型项目的开发。
上述方案中,所述FPGA验证模块105用于对芯片和应用做各种级别的仿真、验证、芯片编程与调试。
上述方案中,所述FPGA验证模块105对应用测试提供slave serial faulttest、master serial fault test、JTAG测试三种模式。
上述方案中,所述FPGA验证模块105具有全芯片半自动仿真功能,使全芯片可以在行为级,开关级,晶体管级,混合模式(晶体管级+寄存器传输级或晶体管级+开关级)四种模式下进行快速仿真。
上述方案中,所述FPGA验证模块105在对FPGA各种模块,至少包括IOB、LB、CHB、GB和PGM,进行电路设计和版图设计后,都能够进行仿真验证(CoSim)和后端验证(DRC和LVS),在此基础上,将各个模块的版图进行拼接,完成全芯片版图,然后通过调用第三方工具对全芯片版图进行验证。
上述方案中,所述FPGA验证模块105还具有板级测试功能,在功能测试板上对封装好的每一颗芯片进行完全测试,即采用128个测试向量文件一一测试,筛选出最终可用的芯片。
上述方案中,所述FPGA验证模块105对每一颗芯片的测试都包括三个过程:器件检测、器件编程和功能测试,测试工具会自动对输出结果与期望结果进行比较,并做出报告。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的应用于FPGA的跨平台多层次集成设计系统,由于采用从芯片架构级、行为级、晶体管级到版图级全流程高度自动化的设计技术以及完备的芯片验证技术,所以解决了现有的FPGA集成设计系统不提供快速设计和验证FPGA的功能的问题,高效实现了面向应用的FPGA芯片设计,提高了设计开发的效率。
2、本发明提供的应用于FPGA的跨平台多层次集成设计系统,由于采用高度集成的开发环境、用户友好的操作界面,将FPGA芯片级、电路级到系统级的设计工具及验证工具集成在统一的用户图形界面中,所以减少不同设计阶段和主体之间的交流障碍,减少用户对软件的复杂操作,实现快速设计,以达到降低设计成本、缩短研发周期的目的。
3、本发明提供的应用于FPGA的跨平台多层次集成设计系统,由于集成了全自动芯片生成功能,使用户能根据自身需要灵活控制晶片的规模和功能,所以大大加快了FPGA芯片设计的速度,使快速设计一系列针对不同应用的FPGA芯片成为可能,而这种针对特定应用领域优化的FPGA结构在效率和性能上比通用型FPGA高很多。
4、本发明提供的应用于FPGA的跨平台多层次集成设计系统,由于集成了具有导航功能的FPGA设计工具,通过部分人为干涉的方式实现了对软件的完全可控,完成了全芯片测试,同时可以实现软件设计过程中的容错功能。
5、本发明提供的应用于FPGA的跨平台多层次集成设计系统,可广泛应用于FPGA芯片设计和验证、FPGA应用设计、FPGA系统级设计,为设计、应用和验证自主研发的FPGA芯片提供一个有效平台;可有效的改善设计效率,降低设计成本,减少设计人员的工作量,缩短设计周期,具有广阔的市场前景和应用价值。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图和具体实施例对本发明作进一步地详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于所述值。
如图1所示,图1是依照本发明实施例的用于FPGA的多层次集成设计系统的结构框图,该系统包括:用户图形界面模块101、FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105五个组件,可实现Windows、Linux、Mac OS系统跨平台运行。所述用户图形界面模块101,用于实现所述系统的主框架,将FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105四大组件封装在一起,通过Tab页切换实现FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105四大组件之间的切换,使得对所述四大组件的调用可以在一个友好且统一的用户图形界面下进行。根据所述四大组件的个数和组合方式不同,可以快速定制种不同集成层次的设计系统。FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104和FPGA验证模块105四大组件中每个组件都是独立的集成开发系统,可以单独使用。同时,四大组件又是紧密联系的,可以实现相互调用和资源共享。
所述用户图形界面模块101具有创建工程文件、工程管理和设计流程管理的功能,所述工程文件是该系统项目工程和设计流程管理的基础,其中包含所有相关的信息,比如:所有设计源文件的路径、针对的FPGA结构、所有模块的执行状态以及参数设置等。所述用户图形界面模块101还具有文本编辑和文本显示功能,包括文件打开、创建、修改、保存等文件操作,提供文本拷贝、剪切、粘贴等操作,提供基于Verilog HDL语言语义的语法加亮、代码缩进、代码折叠、树形结构显示Verilog HDL文件中定义的所有模块和模块中实现的模块实例。
所述FPGA芯片生成模块102包括硅片制造的全部流程,具有半自动设计FPGA架构、模型生成和全芯片版图自动产生与集成的功能。使用户能根据自身需要灵活控制芯片的规模和功能,从而可以快速定义一系列的适应不同应用的FPGA,生成的芯片可以供FPGA设计模块103、FPGA系统应用模块104使用。其中,使用FPGA芯片生成模块102进行FPGA架构评估时需要调用FPGA设计模块103中的软件。
所述FPGA设计模块103,使得用户设计的电路可在FPGA芯片生成模块102生成的芯片上进行实现。所述FPGA设计模块103包括:综合工具、网表转换工具、映射工具、布局布线工具、码流生成、下载工具,具有对电路进行导航设计功能,通过部分人为干涉的方式实现对软件的完全可控,完成全芯片测试,同时可以实现软件设计过程中的容错功能。
所述FPGA系统应用模块104,可以使用FPGA芯片生成模块102生成的芯片、微处理器和嵌入式外设核,实现从硬件到软件设计的整个嵌入式系统设计,完成可编程系统芯片(SOPC)的设计;所述FPGA系统应用模块104,还提供RTL IP封装技术、标准IP封装、图形化IP集成功能和各类系统构建块的系统集成技术。并为用户提供设计分区的功能,这样多个团队可以并行设计,最终完成大型项目的开发。
所述FPGA验证模块105,为FPGA芯片生成模块102、FPGA设计模块103、FPGA系统应用模块104提供各种级别的仿真、验证、芯片编程与调试。其中,使用FPGA验证模块105完成板级测试时需要调用FPGA设计模块103中的软件。
基于图1所示的用于FPGA的多层次集成设计系统,图2示出了依照本发明实施例的利用图1所示系统进行芯片级、电路级、系统级多层次设计和验证的方法流程图,该方法具体包括如下各步骤:
步骤S201、芯片级设计。使用FPGA芯片生成模块102生成FPGA芯片,具体步骤如图3所示;
步骤S202、芯片验证与测试。使用FPGA验证模块105对步骤S201生成的FPGA芯片进行验证与测试,具体步骤如图6所示;
步骤S203、电路级设计。使用FPGA设计模块103,在步骤S202验证成功的FPGA芯片上进行电路设计,具体步骤如图4所示;
步骤S204、调用FPGA验证模块105,对电路应用进行验证与测试,包括slave serial fault test、master serial fault test、JTAG测试三种模式。
步骤S205、系统级设计。使用FPGA系统应用模块104,在步骤S204的基础上对FPGA芯片进行SOPC系统设计,具体步骤如图5所示。
步骤S206、调用FPGA验证模块105,对SOPC系统进行验证与调试。
本发明用于FPGA的多层次集成设计系统的FPGA芯片生成模块102的一个较佳实施例,如图3所示,该方法具体包括如下各步骤:
步骤S301、FPGA架构设计及评估。具体包括:
(1)基于模板编辑FPGA架构文件;
(2)通过图形界面修改架构描述文件中的相关参数,可以改变芯片的规模,各个基本模块的类型、数量、位置、尺寸,布线结构类型,I/O类型和数量等;
(3)架构文件生成后,通过调用脚本程序实现架构转换,产生对应不同应用领域的架构描述文件;
(4)建立布线资源图;
(5)对FPGA架构进行评估,评估标准为面积延时积最小;
(6)自动产生包含所有配置位的组织形式bitmap文件,此文件确定了整个芯片的结构和模块间的连接关系。
步骤S302、模型生成,具体包括:
(1)通过脚本程序生成行为级模型,所述行为级模型可以用来对芯片进行功能仿真,更重要的是,它是后期版图设计的输入文件,同时也是将来验证版图正确性的标准;
(2)通过脚本程序生成晶体管级模型CDL(Circuit DescriptionLanguage)网表,所述CDL网表可以用来对芯片进行晶体管级的仿真、验证电路的性能,同时还可以用来和自动产生的整个芯片的版图进行LVS(Layout Versus Schematic)验证。
步骤S303、参数化的异质结构全芯片版图自动产生与集成功能,具体包括:
(1)根据FPGA架构描述文件以及脚本工具产生的芯片各个模块结构与互连关系的一系列数据库,由一些基本的已经手工画好版图的模块来自动组装成布线资源模块(CBX、CBY、SB)、逻辑模块(LB)的版图;
(2)有些部分(例如编程电路)的版图是由基于标准ASIC设计流程自动布局布线产生的;
(3)待所有模块的版图产生后,通过程序计算各个模块的位置,然后将各个模块自动契合或通过添加连线组装起来,最后形成整个芯片的版图。
本发明用于FPGA的多层次集成设计系统的FPGA设计模块103的一个较佳实施例,该实例需要读入FPGA架构文件和设计输入文档,如图4所示,该方法具体包括如下各步骤:
步骤S401、综合。综合工具用于将电路的设计输入(Verilog或VHDL格式)到电路结构的转换与优化,生成与FPGA结构相关的网表;
步骤S402、网表转换。网表转换工具用于对网表进行二次工艺映射;
步骤S402、映射。映射工具用于将LUT(Look Up Table)和FF(FlipFlop)级别的网表组装成LB(Logic Block)级别的网表;
步骤S404、布局布线。布局布线工具用于要实现电路功能所需要的各个逻辑单元块在FPGA中的物理位置,以及为信号选择单元块之间的布线资源。
步骤S405、码流生成。码流生成用于产生二进制的FPGA配置文件,该配置文件包含FPGA的所有配置信息,其中包括互连网络的连接、逻辑模块工作模式以及初始值;
步骤S406、下载。下载工具用于将配置文件下载到FPGA器件中,FPGA中的配置电路按照读入的配置文件配置FPGA的可编程开关和各基本模块,最终完成FPGA电路结构的配置。
本发明用于FPGA的多层次集成设计系统的FPGA系统应用模块104的一个较佳实施例,如图5所示,该方法具体包括如下各步骤:
步骤S501、SOPC(System-on-a-Programmable Chip)系统软硬件划分,划分原则是:运算频率高、实现简单的部分,使用硬件;需要灵活配置、实现过程复杂的,使用软件。
步骤S502、SOPC系统硬件设计,具体包括:
(1)系统内各个模块的配置(包括RISC处理器,AMBA总线,内存控制器等);
(2)添加或卸载各种应用相关的硬件IP模块;
(3)对配置好的系统进行各种层次的仿真;
(4)调用FPGA设计模块103进行综合和实现,输出结果是适合于当前FPGA开发板上实现的码流文件;
(5)码流文件下载至FPGA中,将SOPC系统在FPGA中实现。
步骤S503、SOPC系统软件设计,具体包括:
(1)编写描述某个应用的C代码;
(2)编译,调试,链接,得到处理器要运行的应用的可执行文件;
(3)下载可执行文件到硬件中的存储器中;
本发明用于FPGA的多层次集成设计系统的FPGA验证模块105的一个较佳实施例,如图6所示,该方法具体包括如下各步骤:
步骤S601、FPGA芯片验证。在对FPGA各种模块,包括IOB、LB、CHB、GB和PGM,进行电路设计和版图设计后,都可进行仿真验证(CoSim)和后端验证(DRC和LVS)。在此基础上,将各个模块的版图进行拼接,完成全芯片版图。通过调用第三方工具对全芯片版图进行验证。
步骤S602、FPGA全芯片仿真。FPGA验证模块具有全芯片半自动仿真功能,使全芯片可以在行为级,开关级,晶体管级,混合模式(晶体管级+寄存器传输级或晶体管级+开关级)四种模式下进行快速仿真。在提高仿真速度又保证精度不失的情况下对全芯片进行快速仿真验证。具体操作步骤包括:
(1)输入仿真命令,开始整个仿真流程。
(2)基于测试实例和芯片架构文件,通过FPGA设计模块产生仿真需要的码流文件.bit,回读文件.rbb和验证掩模文件.msk。
(3)全芯片仿真验证平台的搭建。全芯片仿真验证平台主要包括仿真控制模块(ctl.v)、测试电路模块(tb.v)、全芯片网表和仿真配置文件。
(4)启动Modelsim进行仿真。通过脚本程序调用第三方仿真工具,执行仿真控制模块中的相应任务,如配置位流文件的下载、加载测试激励、输出测试结果、产生测试向量等,完成仿真验证。
步骤S603、FPGA芯片板级测试。板级测试主要是在功能测试板上对封装好的每一颗芯片进行完全测试,即用128个测试向量文件一一测试,筛选出最终可用的芯片。板级测试环境包括测试工具、测试板、电压源、示波器和FPGA演示板。用每一个测试模型对每一颗芯片的测试都包括三个过程:器件检测、器件编程和功能测试。上电后,测试工具首先会通过回读器件的IDCODE来检测是否有器件存在,检测到FPGA后会在测试工具的操作窗口显示其符号和名称;然后选中FPGA并选择一个测试码流文件对其进行编程,编程成功后测试板上与DONE管脚相连的LED灯会亮,而且操作窗口也会显示编程成功;最后一步对器件做INTEST进行功能测试,测试工具会自动对输出结果与期望结果进行比较,并做出报告。重复以上步骤对每一颗芯片进行完全测试,最终筛选出可用的芯片。
依照本发明实施例的用于FPGA的跨平台多层次集成设计系统具有以下有益效果:
(1)提供了高度集成的FPGA设计系统,从而减少不同设计阶段和主体之间的交流障碍,减少用户对软件的复杂操作,实现快速设计,以达到降低设计成本、缩短研发周期的目的;
(2)集成了全自动芯片生成功能,使用户能根据自身需要灵活控制晶片的规模和功能,大大加快了FPGA芯片设计的速度,使快速设计一系列针对不同应用的FPGA芯片成为可能;
(3)易于扩充而又灵活的软件体系,根据系统所包含的组件个数和组合方式不同,可以快速定制不同集成层次的设计系统。
(4)集成了具有导航功能的FPGA设计工具,通过部分人为干涉的方式实现了对软件的完全可控,完成了全芯片测试,同时可以实现软件设计过程中的容错功能;
(5)集成了完备的针对FPGA应用和FPGA芯片的仿真、验证、芯片编程与调试功能,保证了FPGA设计应用和FPGA芯片的正确性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。