专利名称:验证支援装置、验证支援方法、验证支援程序以及记录介质的制作方法
技术领域:
本发明涉及支援LSI(Large Scale Integration,大规模集成电路)验证的验证支援装置、验证支援方法、验证支援程序以及记录介质。
背景技术:
在LSI设计中,验证LSI是否正常动作的验证作业是必不可缺的,尤其对要求大规模化、高功能化、高速化以及低功耗化的LSI,为了维持高品质,该验证作业也是非常重要的,另一方面,以往开始要求通过缩短设计期来实现操作效率化。
特别是近年来,软件和硬件在混合使用,不仅包括现有型的ASIC的单功能的硬件、还包括软件的系统芯片(SoCSystem-on-a-chip)成为主流。并且,能由硬件来实现以MPEG、JPEG等以往的应用软件来实现的功能,所以LSI的功能变得复杂化。
此处,说明现有的LSI的开发处理。图38是示出现有的LSI开发处理步骤的流程图。图38中,步骤S3801~步骤S3805是进行LSI设计的设计流程,步骤S3806~步骤S3809是对所设计的LSI进行验证的验证流程。
首先,在设计流程中,在步骤S3801进行概念设计。概念设计中,设计者根据来自客户的设计要求用自然语言制作要求式样书3810。或者,从客户处接受用自然语言描述的要求式样书3810。
接着,在步骤S3802中进行功能设计。在功能设计中,根据要求式样书3810中记载的内容,将作为设计对象的LSI分成各个功能块,制作描述了各个功能块的内容的功能式样书3820。
然后,在步骤S3803中进行结构设计。在结构设计中,根据功能式样书3820进行硬件设计,制作结构式样书3830。具体地说,进行如下设计,即,导入什么样的架构(architecture),才能实现功能式样书3820中记载的功能。
例如,对于各个功能块中的某个功能块的架构利用软件实现,对于某个功能块的架构通过购入IP(Intellectual Property)来实现,对于某个功能块的架构由设计者制作,对于某个功能块的架构利用在线(under bus)来实现。
然后,在步骤S3804中进行单元设计。在单元设计中,将结构式样书3830中记载的各硬件模块分割成多个模块,进行详细设计,从而制作单元式样书3840。
接着,在步骤S3805中进行安装。在安装中,使用接口的时序图,且考虑内部逻辑,使用作为最终设计对象的RTL(暂存器转化层RegisterTransfer Level)3850的HDL(硬件描述语言Hardware DescriptionLanguage),进行安装。
然后,在步骤S3806中进行单元验证。在单元验证中,根据单元验证项目3860,对单元设计所设计出的每个单元的单元式样书3840进行验证,即进行调试(debug)。
接着,在步骤S3807中进行综合验证。在综合验证中,根据综合验证项目3870,将单元验证所验证出的各单元的接口结合,验证是否正常动作。
然后,在步骤S3808中进行功能验证。在功能验证中,根据功能验证项目3880,验证是否满足作为设计对象的系统的功能要求。
最后,在步骤S3809中进行实机验证。在实机验证中,使用RTL3850,实际在芯片上安装LSI,实际验证是否动作。判断来自客户的要求式样书3810是否满足要求验证项目3890。
发明内容
但是,在上述的设计处理中,若不进行安装(步骤S3805),则不能进行LSI的验证(步骤S3806~S3809)。
由此,存在如下问题在设计流程的上游的任意一个步骤中,若因式样书的错误、描述不清楚、设计者的错误解释而引起错误,则在该步骤之后的步骤中,会导致错误的累积。
并且,在结构设计中,在纸面上决定了架构,不存在明确了其妥当性的方法。因此,存在如下问题开发风险增大,导致开发计划出现破绽,浪费开发时间和开发劳力。
并且,为了对RTL3850的HDL进行模拟,需要特定的模拟器(VCS,NC-Sim等EDA供应商的工具),但存在如下问题由于模拟速度慢引起验证效率下降,导致设计期延长。特别是在设计对象为大规模的情况下,模拟速度出现瓶颈,有时不能将验证作业收敛在规定的期限内。
另一方面,也考虑导入以模拟器(simulator)的数千倍的速度运转的仿真器(emulator)来提高模拟速度,但仿真器的价格非常高,验证费用增大,同时环境的构建困难,而且出现问题时,很难调试,其结果,存在验证期延长而导致设计期延长的问题。
本发明是鉴于上述问题而进行的,其目的在于提供一种能够容易且有效地实现LSI设计精度的提高和验证期的缩短的验证支援装置、验证支援方法、验证支援程序以及记录了该程序的记录介质。
为了解决上述课题,达到目的,本发明的验证支援装置、验证支援方法、验证支援程序以及记录了该程序的记录介质,其特征在于,输入表示与LSI的设计对象相关的要求式样的分析结果;根据所输入的分析信息,生成概念模型,所述概念模型是将所述设计对象的基本功能模型化、并且将所述设计对象的物理架构和时间概念抽象化而得到的;根据所输入的分析信息,生成功能模型,所述功能模型是通过分割构成所述设计对象的模块、以及提取所分割的模块的并行或并列性来模型化而得到的;根据所生成的概念模型对所生成的功能模型进行如下验证,即验证构成所述设计对象的模块的分割以及所分割的模块的并行或并列性是否妥当。
并且,上述发明的特征在于,当验证出所述功能模型为妥当时,从多种物理架构的相关信息中提取任意的架构的相关信息,将所提取的架构的相关信息映射到验证为妥当的功能模型中,从而生成将所述设计对象的动作模型化的动作模型,验证构成设计对象的模块的动作定时是否妥当,所述设计对象利用所生成的动作模型进行了模型化。
进一步,上述发明的特征在于,当验证出所述动作模型为妥当时,在所述功能模型所模型化的构成设计对象的模块间的抽象度不同之处,通过在该模块之间插入规定时钟周期精度的接口,来生成ICA模型,根据所生成的概念模型,验证插入到所生成的ICA模型的接口的时钟周期精度是否妥当。
并且,特征在于,当验证出所述动作模型为妥当时,根据所述功能模型所模型化的设计对象,生成以包括软件可执行的任务的方式模型化的软件模型,根据所生成的概念模型,验证所生成的软件模型中包含的任务是否妥当。
根据本发明的验证支援装置、验证支援方法、验证支援程序以及记录介质,通过阶段性地导入验证,能够在设计的早期阶段找出此前的若不生成RTL就不能发现的问题,避免其风险性。因此,能够发挥如下效果,容易且有效地实现LSI设计精度的提高和验证期的缩短。
图1是本发明的实施方式的验证支援的概念图。
图2是示出图1所示的各模型的抽象度的曲线图。
图3是示出本发明的实施方式的验证支援装置的硬件结构的框图。
图4是示出本发明的实施方式的验证支援装置的功能结构的框图。
图5是示出本发明的实施方式的验证支援装置的验证支援处理步骤的流程图。
图6是示出包括本发明的实施方式的设计对象的系统LSI的硬件结构的框图。
图7是示出外部装置的接口即总线的式样(写时的时序图)的说明图。
图8是示出外部装置的接口即总线的式样(读时的时序图)的说明图。
图9是示出外部装置的接口即发送器的式样的说明图。
图10是示出外部装置的接口即接收器的式样的说明图。
图11是示出利用CPU收发的分组的结构的说明图。
图12是示出发送分组的结构的说明图。
图13是示出作为要求定义的系统LSI的要求项目列表的说明图。
图14是作为要求定义的系统LSI的用例图。
图15是所要求定义的产物即系统LSI的分析类图(Class Diagrams)。
图16是所要求定义的产物即系统LSI的序列图。
图17是包括串行收发系统的系统LSI的设计类图。
图18是示出概念模型的安装代码的说明图。
图19是示出包括串行收发系统的系统LSI的验证项目的说明图。
图20是示出包括串行收发系统的系统LSI的验证脚本的说明图。
图21是示出包括串行收发系统的系统LSI的功能模型的安装代码生成处理步骤的流程图。
图22是示出分割图17所示的设计类图而得到的分割设计类图的说明图。
图23是示出将分割设计类图所表示的模块间连接的通信路的说明图。
图24是示出包括串行收发系统的系统LSI的功能模型的安装代码的生成例的说明图。
图25是示出包括串行收发系统的系统LSI的架构模型的类图的一例的说明图。
图26是示出功能模型与架构模型之间的映射的说明图。
图27是示出包括串行收发系统的系统LSI的动作模型的安装代码生成处理步骤的流程图。
图28是示出属性内的描述被替换为总线模型的描述的分割设计类图的说明图。
图29是示出对各模块的估计处理时间的安装代码的追加例的说明图。
图30是示出包括串行收发系统的系统LSI的ICA模型的安装代码生成处理步骤的流程图。
图31是示出包括串行收发系统的系统LSI的通信路所确定的功能模型的结构图。
图32是在图31所示的结构图内的通信路中插入接口RAP(漫游分析端口Roving analysis Port)的结构图。
图33是示出ICA模型的编码器模块的内部结构的一例的说明图。
图34是示出ICA模型的编码器模块的安装代码的一例的说明图。
图35是示出包括串行收发系统的系统LSI的软件模型的安装代码生成处理步骤的流程图。
图36是示出利用软件将功能模型的一部分映射到架构模型中的例子的说明图。
图37是示出软件模型中的设计类图的说明图。
图38是示出现有的LSI开发处理步骤的流程图。
符号说明100要求式样,101概念模型,102功能模型,103架构模型,104动作模型,105ICA模型,106软件模型,401分析信息输入部,402概念模型生成部,403功能模型生成部,404功能模型验证部,405架构信息存储部,406架构信息提取部,407动作模型生成部,408动作模型验证部,409ICA模型生成部,410ICA模型验证部,411软件模型生成部,412软件模型验证部。
具体实施例方式
(实施方式)下面,参照附图,详细说明本发明的实施方式的验证支援装置、验证支援方法、验证支援程序以及记录了该程序的记录介质。
(验证支援的概念)首先,说明本发明的实施方式的验证支援的概念。图1是本发明的实施方式的验证支援的概念图。
图1中,设计者使用UML(统一建模语言Unified Modeling Language)对包括设计对象的系统LSI的来自客户的要求式样100进行目标指向分析,将其分析结果作为概念模型101进行建模。概念模型101是表示设计对象的概念性分析结果的模型。概念模型101是完全不取决于安装的模型,具体地说,是将物理架构和时间的概念抽象化、且以设计对象的基本功能为中心建模的模型。
具体地说,概念模型101是利用UML或C++对系统LSI的要求式样的分析结果进行建模的产物,是包括UML模型、C++模型以及验证脚本的全部的总称。在该概念模型101中,能够对要求式样100的误解、错误或算法进行验证。
并且,功能模型102是通过如下方式构建的模型,从概念模型101分割出构成作为设计对象的系统LSI的模块,提取所分割的模块的并行或并列性,从而构建模型。功能模型102不存在时间的概念。该功能模型中,能够验证模块分割的妥当性和并列、并行性的准确性。
并且,架构模型103是表示总线或IP(Intellectual Property)等的现有设计的物理硬件部件的模型。具体地说,架构模型103大体分为处理资源和通信资源(resource)。处理资源是用于对功能模型102的模块进行映射的模型。例如,可以举出硬件处理模块、处理器、RTOS、DSP等。
另一方面,通信资源是对用于实现功能模型的模块间的通信的信道进行建模的模型。例如,可以举出总线、存储器、硬件模块间的信号线等。在该架构模型103中使用现有设计的物理硬件部件,所以不必进行验证。
并且,动作模型104是概念性地将功能模型102映射到架构模型103的产物。具体地说,将功能模型102的过程映射到架构模型103的处理资源,功能的通信信道使用通信资源来建立。该动作模型104中可以验证是否满足客户所要求的动作(性能)。
接着,对动作模型104进行HW/SW分割,生成表示硬件安装的ICA(接口连接器Interface Cycle Accurate)模型105和表示软件安装的软件模型106。
ICA模型105是利用周期精度构建模块外的接口、用动作级构建模块内部的模型。通过对该ICA模型105进行高级综合(High Level Synthesis),生成RTL描述107。在该ICA模型105中可以验证接口的准确性。
并且,软件模型106是对构成包括设计对象的系统LSI的软件进行任务分割、在虚拟OS上执行的模型。对该软件模型106进行代码生成处理,从而生成安装代码108。在该软件模型106中可以验证软件的功能。
(各模型的抽象度)接着,说明图1所示的各模型的抽象度。图2是表示图1所示的各模型101~106的抽象度的曲线图。图2的曲线图是由以原点为中心的3轴来构成的。各轴分别表示“功能”的抽象度、“结构”的抽象度、“时间”的抽象度,随着远离原点,抽象度增高。
(验证支援装置的硬件结构)接着,说明本发明的实施方式的验证支援装置的硬件结构。图3是示出本发明的实施方式的验证支援装置的硬件结构的框图。
图3中,验证支援装置具备CPU 301、ROM 302、RAM 303、HDD(硬盘驱动器)304、HD(硬盘)305、FDD(软盘驱动器)306、作为可装卸的记录介质的一例的FD(软盘)307、显示器308、I/F(接口)309、键盘310、鼠标311、扫描仪312以及打印机313。并且,各构成部分别通过总线300连接。
此处,CPU 301进行验证支援装置整体的控制。ROM 302存储引导程序等程序。RAM 303用作CPU 301的工作区域。HDD 304根据CPU 301的控制来控制对HD 305的数据的读/写。HD 305存储通过HDD 304的控制写入的数据。
FDD 306根据CPU 301的控制来控制对FD 307的数据的读/写。FD307存储通过FDD 306的控制写入的数据,或将FD 307中存储的数据读取到验证支援装置中。
作为可装卸的记录介质,除了FD 307以外,还可以使用CD-ROM(CD-R、CD-RW)、MO、DVD(Digital Versatile Disk)、存储卡等。显示器308可以显示以光标、图标、工具箱为代表的文字、图像、功能信息等数据。该显示器308可以采用例如CRT、TFT液晶显示器、等离子显示器等。
I/F 309通过通信线路与因特网等网络连接,经由该网络与其它装置连接。而且,I/F 309管理网络和内部的接口,控制来自外部装置的数据的输入输出。I/F 309中可以采用例如调制解调器或LAN适配器等。
键盘310具有用于输入字符、数字、各种指示等的键,进行数据输入。并且,也可以是触摸式的输入屏或十字键等。鼠标311进行光标的移动和范围选择、或窗口的移动和尺寸的变更等。只要具备作为指示器(pointingdevice)而相同的功能,则也可以是跟踪球(trackball)或操纵杆(joystick)等。
扫描仪312以光学方式读取图像,将图像数据取入到验证支援装置内。另外,扫描仪312还可以具有OCR功能。并且,打印机313印刷图像数据和文字数据。打印机313可以采用例如激光打印机或喷墨打印机。
(验证支援装置的功能结构)接着,说明本实施方式的验证支援装置的功能结构。图4是示出本发明的实施方式的验证支援装置的功能结构的框图。
图4中,验证支援装置400由分析信息输入部401、概念模型生成部402、功能模型生成部403、功能模型验证部404、架构信息存储部405、架构信息提取部406、动作模型生成部407、动作模型验证部408、ICA模型生成部409、ICA模型验证部410、软件模型生成部411、以及软件模型验证部412构成。
分析信息输入部401接受表示包括设计对象的系统LSI的来自客户的要求式样的分析结果的信息(分析信息)的输入。此处,分析信息是指,例如利用UML描述的设计对象的用例图、序列图、类图、对设计对象要求的基本功能项目等可通过计算机读取的信息。
并且,概念模型生成部402根据分析信息输入部401所输入的分析信息,生成概念模型、即图1所示的概念模型101,所述概念模型是将设计对象的基本功能模型化、且将设计对象的物理架构和时间的概念抽象化的模型。
具体地说,概念模型生成部402解析用例图等分析信息,生成设计对象的安装代码、应对设计对象进行验证的项目(验证项目)、表示基于电路模拟的验证处理步骤的验证脚本。所生成的安装代码、验证项目以及验证脚本成为图1所示的概念模型101。
并且,功能模型生成部403根据分析信息输入部401所输入的分析信息,生成功能模型,所述功能模型是通过对构成设计对象的模块进行分割、并提取所分割的模块的并行或并列性来模型化的。例如,根据作为分析信息的类图,生成表示设计对象的功能的功能模型。
具体地说,按照每个功能将输入到概念模型生成部402的类图分割成多个,对所分割的每个类图(分割类图)生成安装代码。该生成的每个分割类图的安装代码成为图1所示的功能模型102。
功能模型验证部404根据概念模型生成部402所生成的概念模型对功能模型生成部403所生成的功能模型进行如下验证,即验证构成设计对象的模块的分割、以及所分割的模块的并行或并列性是否妥当。
具体地说,判断每个分割类图的安装代码的模拟结果是否与利用概念模型的验证脚本来模拟概念模型的安装代码的模拟结果一致,从而验证功能模型的妥当性。此处,模拟结果是指对某一输入数据得到了什么样的输出数据。
更具体地说,每个分割类图的安装代码的模拟结果一致时,功能模型为妥当。另一方面,不一致时,功能模型的分割、并行、并列性不正确,因此功能模型生成部403校正功能模型的安装代码。
并且,架构信息存储部405存储总线或IP(Intellectual Property)等与现有设计的物理硬件部件相关的信息。具体地说,架构信息存储部405通过例如图3所示的ROM302、RAM 303、HD305、FD307等实现其功能。
架构信息提取部406提取架构信息存储部405中存储的架构信息。关于处理资源,例如提取硬件处理模块、处理器、RTOS、DSP等。另一方面,关于通信资源,提取总线、存储器、硬件模块间的信号线等。该架构信息提取部406所提取的架构信息相当于图1所示的架构模型103。
动作模型生成部407通过将架构信息提取部406所提取的与架构相关的信息映射到由功能模型验证部404验证为妥当的功能模型,从而生成将设计对象的动作模型化的动作模型。
具体地说,将功能模型102映射到架构模型103,从而生成设计对象的动作模型104。具体地说,将功能模型102的过程映射到架构模型103的处理资源,功能的通信信道使用通信资源建立。通过该建立,生成考虑了通过映射所得到的模块的处理时间的安装代码。该生成的安装代码相当于图1所示的动作模型104。
动作模型验证部408验证构成设计对象的模块的动作定时是否妥当,所述设计对象是利用动作模型生成部407所生成的动作模型来模型化的。
具体地说,判断动作模型生成部407所生成的安装代码的模拟结果是否与利用概念模型的验证脚本对概念模型的安装代码进行模拟的模拟结果一致,从而验证动作模型的妥当性。此处,模拟结果是指针对某一输入数据得到什么样的输出数据。
而且,一致时,动作模型为妥当,满足客户所要求的动作(性能)。另一方面,不一致时,动作模型不满足客户所要求的动作(性能)。该情况下,动作模型生成部407校正动作模型的安装代码。
当利用动作模型验证部408验证为妥当时,ICA模型生成部409在构成利用功能模型进行模型化的设计对象的模块间的抽象度不同的位置,通过在该模块之间插入规定的时钟周期精度的接口,生成ICA模型。
具体地说,对动作模型104进行HW/SW分割,生成表示硬件安装的ICA模型105。例如,模块间的抽象度不同时,将类图所示的模块间的通信路替换成接口RAP,从而使得该模块间的抽象度相等。
然后,生成替换成接口RAP的类图的安装代码。该生成的安装代码为图1所示的ICA模型105。并且,通过对该ICA模型105的安装代码进行高级综合,能够生成RTL描述107。
ICA模型验证部410根据概念模型生成部402所生成的概念模型101,验证插入到ICA模型生成部409所生成的ICA模型105的接口的时钟周期精度是否妥当。
具体地说,判断ICA模型生成部409所生成的安装代码的模拟结果是否与利用概念模型的验证脚本来模拟概念模型的安装代码的模拟结果一致,从而验证功能模型的妥当性。此处,模拟结果是指对某一输入数据得到了什么样的输出数据。
而且,一致时,ICA模型为妥当。具体地说,替换的接口RAP所表示的接口正确。另一方面,不一致时,所替换的接口RAP不正确。该情况下,ICA模型生成部409校正ICA模型的安装代码。
当利用动作模型验证部408验证为妥当时,软件模型生成部411根据利用功能模型进行模型化的设计对象,生成以包括可通过软件执行的任务的方式模型化的软件模型。
具体地说,对动作模型104进行HW/SW分割,生成表示软件安装的软件模型106(参照图1。)。例如,对构成包括设计对象的系统LSI的软件进行任务分割,生成可在虚拟OS上执行的安装代码。
软件模型验证部412根据概念模型生成部402所生成的概念模型,验证软件模型生成部411所生成的软件模型中包括的任务是否妥当。
具体地说,判断软件模型生成部411所生成的安装代码的模拟结果是否与利用概念模型的验证脚本来模拟概念模型的安装代码的模拟结果一致,从而验证软件模型106的妥当性。此处,模拟结果是指对某一输入数据得到了什么样的输出数据。
而且,一致时,软件模型106的安装代码所表示的功能妥当。然后,生成取入了该软件模型106的安装代码的设计对象整体的安装代码108(参照图1。)。另一方面,不一致时,软件模型106的安装代码所表示的功能不正确。该情况下,软件模型生成部411校正软件模型的安装代码。
另外,具体地说,上述的分析信息输入部401、概念模型生成部402、功能模型生成部403、功能模型验证部404、架构信息提取部406、动作模型生成部407、动作模型验证部408、ICA模型生成部409、ICA模型验证部410、软件模型生成部411、以及软件模型验证部412,例如通过CPU 301执行图3所示的ROM 302、RAM 303、HD 305、FD 307等中记录的程序,或利用I/F 309来实现其功能。
(验证支援装置的验证支援处理步骤)接着,说明本发明的实施方式的验证支援装置的验证支援处理步骤。图5是示出本发明的实施方式的验证支援装置的验证支援处理步骤的流程图。
图5中,首先,设计者分析包括设计对象的系统LSI的来自客户的要求式样100,输入表示分析结果的分析信息(步骤S501)。
然后,根据所输入的分析信息,生成设计对象的安装代码、应对设计对象进行验证的项目(验证项目)、表示基于电路模拟的验证处理步骤的验证脚本等概念模型101(步骤S502)。设计者对所生成的概念模型101的妥当性进行验证。
接着,生成设计对象的功能模型102(步骤S503)。具体地说,按照每个功能将输入到概念模型生成部402的类图分割成多个,对所分割的每个类图(分割类图)生成功能模型102的安装代码。
然后,对概念模型101的安装代码和功能模型102的安装代码进行模拟(步骤S504)。接着,判断概念模型101的安装代码的模拟结果与功能模型102的安装代码的模拟结果是否一致,即进行功能模型验证(步骤S505)。
不一致时(步骤S505否),校正功能模型102(步骤S506)。具体地说,例如,再次重新分割概念模型101的类图,生成分割类图,对每个分割类图生成安装代码。然后,转移到步骤S504。
另一方面,一致时(步骤S505是),判断功能模型102为妥当。然后,将架构模型103映射到验证出妥当性的已验证的功能模型102,生成动作模型104(步骤S507)。然后,对动作模型104的安装代码进行模拟(步骤S508)。
然后,判断概念模型101的安装代码的模拟结果与动作模型104的安装代码的模拟结果是否一致,即进行动作模型验证(步骤S509)。
不一致时(步骤S509否),校正动作模型104(步骤S510)。具体地说,例如,再次从架构信息存储部405提取架构信息,重新将架构模型103映射到验证出妥当性的已验证的功能模型102,生成动作模型104。然后,转移到步骤S508。
另一方面,一致时(步骤S509是),判断动作模型104为妥当。然后,对验证出妥当性的已验证的动作模型104进行HW/SW分割,生成ICA模型105和软件模型106(步骤S511、步骤S516)。
并且,对所生成的ICA模型105的安装代码进行模拟(步骤S512)。接着,判断概念模型101的安装代码的模拟结果与ICA模型105的安装代码的模拟结果是否一致,即进行ICA模型验证(步骤S513)。
不一致时(步骤S513否),校正ICA模型105(步骤S514)。具体地说,例如,通过变更接口RAP的内容,校正ICA模型105。然后,转移到步骤S512。
另一方面,一致时(步骤S513是),判断ICA模型105为妥当。然后,进行高级综合(步骤S515),生成RTL描述。
并且,对所生成的软件模型106的安装代码进行模拟(步骤S517)。接着,判断概念模型101的安装代码的模拟结果与软件模型106的安装代码的模拟结果是否一致,即进行软件模型验证(步骤S518)。
不一致时(步骤S518否),校正软件模型106(步骤S519)。具体地说,例如,再次进行构成包括设计对象的系统LSI的软件的任务分割,生成可在虚拟OS上执行的安装代码。
另一方面,一致时(步骤S518是),判断软件模型106为妥当。然后,生成取入了验证出妥当的已验证的软件模型106的安装代码的、设计对象全体的安装代码108(步骤S520)。
根据该验证处理步骤,对每个模型进行阶段性验证,所以对刚刚验证的模型,不进行验证的重估,而作为有效模型灵活应用,所以在验证处理中不发生反复,能够实现验证处理的效率化。
另外,上述的图5的流程图中,并列执行步骤S511~515的处理步骤和步骤S516~520的处理步骤,但也可以在步骤S511~515的处理步骤之后,执行步骤S516~520的处理步骤,或在步骤S516~520的处理步骤之后,执行步骤S511~515的处理步骤。
(验证处理的具体例)接着,说明上述的验证处理的具体例。
(系统LSI的硬件结构)首先,说明包括设计对象的系统LSI的硬件结构。图6是示出包括本发明的实施方式的设计对象的系统LSI的硬件结构的框图。该设计对象例如是从客户那里接受设计业务的信息,此处,将该设计对象作为串行收发系统来说明。
图6中,系统LSI 600由作为设计对象的一例举出的串行收发系统601、接收器602、发送器603、CPU 604、其它器件605以及将它们连接的总线606构成。
此处,接收器602接收接收分组611,提供给串行收发系统601。发送器603将从串行收发系统601提供的信息作为发送分组612发送至未图示的外部设备。串行收发系统601例如以BCH(62,48)进行编码和解码。
然后,将来自接收器602的接收分组611解码,将该解码的分组613提供给CPU 604。并且,对来自CPU604的分组614进行编码。CPU 604使用来自串行收发系统601的分组613,与其它器件605一起执行系统LSI600的功能。
(外部装置的接口式样)接着,说明外部装置(接收器602、发送器603、CPU 604、其它器件605)的接口式样。图7和图8是示出作为外部装置的接口的总线的式样的说明图。尤其,图7是读时的时序图,图8是写时的时序图。
图7和图8中,“PCLK”是位宽1的输入时钟信号。“PADDR”是位宽32的地址输出信号。“PWRITE”是位宽1的读/写控制输出信号。“PSEL”是位宽1的选片输出信号。“PENABLE”是位宽1的输出始能信号。“PRDATA”是位宽32的数据输入输出信号。对CPU 604的总线式样以总线标准协议为基准,对CPU 604采用组装处理器芯片。
图9是示出作为外部装置的接口的发送器603的式样的说明图。图9中,“clk”是位宽1的输入时钟信号。“ISTART”是位宽1的启动脉冲输入信号。“IDATA”是位宽1的数据输入信号。从串行收发系统601向发送器603的输入式样是如下的式样检测启动脉冲信号的i时钟的脉冲,同时,发送器603在时钟的每个正沿取入1位数据。并且,输入时钟频率为100MHz。
图10是示出作为外部装置的接口的接收器602的式样的说明图。图10中,“clk”是位宽1的输出时钟信号。“OSTART”是位宽1的启动脉冲输出信号。“ODATA”是位宽1的数据输出信号。
(串行收发系统所要求的基本功能)接着,说明作为设计对象的串行收发系统601所要求的基本功能。串行收发系统601所要求的基本功能为(1)分组的发送功能、(2)分组的接收功能、以及(3)初始化功能。
(1)分组的发送功能如下。
(i)转送功能以BCH(62,48)对CPU 604所制作的分组614进行编码后转送到发送器603。
(ii)错误检测功能检测出CPU 604所制作的分组614的错误,向CPU 604报错。
(iii)分组放弃功能从CPU 604连续发送了大量的分组614时不能即时处理时,向CPU 604报错,放弃发送分组612。
(vi)向发送器603的输出吞吐量(through-put)0~1Mbps并且,(2)分组的接收功能如下。
(vii)解码功能从接收器602连续接收以BCH(62,48)编码的接收分组611,对接收分组611进行解码,通知CPU 604,使CPU 604接收解码的分组613。
(viii)分组废弃容许功能从接收器602发送来大量的接收分组611时不能即时处理时,容许废弃接收分组611。
(ix)分组放弃功能接收分组611之中存在不能修正错误的分组时,向CPU 604报错,放弃接收分组611。
(x)修正/检测功能可对接收分组611进行到2位的修正、到4位的错误检测。
(xi)来自接收器602的输入吞吐量(through-put)0~1Mbps此外,(3)初始化功能如下。
(xii)从CPU 604指示初始化的软件复位功能。
(xiii)根据复位信号也指示初始化的硬件复位功能。
(分组的结构)接着,说明利用CPU 604收发的分组613、614的结构。图11是示出利用CPU 604收发的分组613、614的结构的说明图,图12是示出发送分组612的结构的说明图。图11中,分组613、614由16位的报头部1101和32位的数据部1102构成。报头部1101设定为分组识别编号(1010101010101010)2。
并且,图12中,发送分组612的结构为在图11所示的16位的报头部1101和32位的数据部1102上附加了以BCH(62,48)编码的14位的冗余码部1201。并且,虽未对接收分组611进行图示,但其构成为在发送分组612的结构的基础上还附加了基于通信路的错误位。所述图6到图12的信息的内容为客户要求的要求式样100。
(要求定义的内容)接着,说明对图6至图12所示的要求式样的内容进行定义的要求定义。图13是示出作为要求定义的系统LSI 600的要求项目列表的说明图,图14是作为要求定义的系统LSI 600的用例图。
图13所示的要求项目列表1300中,对该系统LSI 600要求如下功能“能够对接收分组进行最大双重修正”(项目1301)、“能够检测接收分组的四重错误”(项目1302)、“能够经由接收器接收接收分组”(项目1303)、“能够以BCH(60,48)对接收分组进行编码”(项目1304)、“能够由CPU进行初始化”(项目1305)、“能够根据复位信号进行初始化”(项目1306)、“能够经由发送器将发送分组发送”(项目1307)、“能够以BCH(62,48)对发送分组进行编码”(项目1308)。
并且,图14中示出的用例图1400将图13中示出的要求项目列表1300所要求的功能图表化,是依据UML描述的图表。图14中,图6所示的串行收发系统601具备用例1401~1403所表示的功能“接收分组”、“初始化”以及“发送分组”。并且,在用例图1400中,作为与串行收发系统601相关的角色,图表化出CPU 1411、复位信号1412、接收器1413以及发送器1414。
图14所示的用例图1400中,用例1401从角色1413接收分组。而且,将所接收的分组发送至角色1411。并且,用例1402由角色1411和角色1412初始化。进一步,用例1403从角色1411接收分组,发送至角色1414。
(分析信息的内容)接着,说明表示图13和图14中示出的要求定义(要求项目列表1300、用例图1400)的分析结果的分析信息。图15是所要求定义的产物即系统LSI 600的分析类图,图16是所要求定义的产物即系统LSI600的序列图。
图15中示出的分析类图1500中描述了管理串行收发系统601所需的数据和步骤等的《control》类1501、在串行收发系统601内部负责该系统特有的处理的<Entity>类1502~1508。《control》类1501表示串行收发系统601。<entity>类1502~1508表示发送分组612、接收分组611、分组613、614、冗余码部1201、错误位、报头部1101、数据部1102。
图15所示的分析类图1500中,《contro1》类1501(串行收发系统601)从角色1414(发送器603)发送分组。并且,在与角色1411(CPU 604)之间进行收发/初始化。进一步,进行《entity》类1502(发送分组612)的发送、《entity》类1503(接收分组611)的接收、从角色1412(复位信号)的初始化。并且,从接收了《entity》类1503(接收分组611)的角色1413(接收器602)接收分组。
此外,图15所示的分析类图1500中,《entity》类1502(发送分组612)汇总了《entity》类1504(分组613、614)和《entity》类1505(冗余码部1201)。并且,《entity》类1503(接收分组611)汇总了《entity》类1505(冗余码部1201)和《entity》类1506(错误位)。进一步,《entity》类1504(分组613、614)汇总了《entity》类1507(报头部1101)和《entity》类1508(数据部1102)。由此,角色1411(CPU 604)进行《entity》类1504(分组613、614)的制作/接收。
并且,图16所示的序列图1600示出正常发送分组时的动作。该序列图1600中,示出按照序列编号的顺序进行发送处理的过程,所述序列编号的顺序如下,序列编号1.0(“制作分组()”)→序列编号1.1(“接收分组()”)→序列编号1.2(“对分组进行编码()”)→序列编号1.3(“制作发送分组()”)、序列编码114(“发送分组()”)。
接着,说明包括该串行收发系统的系统LSI的设计类图。图17是包括串行收发系统的系统LSI的设计类图。
该设计类图1700中,类1701包括描述了表示串行收发系统的名称“ECC_SIO”的类名1702、表示类1701所具有的静态性质的属性1703(成员变量)以及表示类1701所具有的动态性质的操作1704(成员函数)。操作1704对表示CPU的类1705和表示编码的类1706做工作。以该图17示出的设计类图1700为基础,生成概念模型101的安装代码。图17中示出概念模型101的安装代码的一个描述例。图18是示出概念模型101的安装代码1800的说明图。该安装代码1800是利用C++语言模型化的代码。
(验证项目的内容)接着,说明包括串行收发系统的系统LSI的验证项目。图19是示出包括串行收发系统的系统LSI的验证项目的说明图。
图19中,将对象用例关注于图14中示出的用例1401。在该验证项目1900中,项目“序列”的“基本路径”是指分组的正常的发送处理,即表示图16所示的序列编号1.0~1.1的处理。
(验证脚本的内容)接着,说明包括串行收发系统的系统LSI的验证脚本。图20是示出包括串行收发系统的系统LSI的验证脚本的说明图。该验证脚本2000使用图15所示的序列图1500和图19所示的验证项目1900来生成。
举例说明使用了该验证脚本2000的模拟所检测出的式样上的错误。得到始终向CPU进行报错这样的验证结果的情况下,检测出如下的式样上的错误,即,产生分组接收错误时,将串行收发系统设定为错误状态,但即使正常接收下一个分组,系统仍处于错误状态。因此,作为校正处理,在CPU接收到错误后,将串行收发系统的错误状态清除。由此,能够解除式样错误。
(功能模型的安装代码生成处理步骤)接着,说明包括串行收发系统的系统LSI的功能模型的验证处理步骤。图21是示出包括串行收发系统的系统LSI的功能模型的安装代码生成处理步骤的流程图。图21所示的处理步骤示出图5的步骤S503中示出的处理步骤的详细处理步骤。
首先,将在步骤S502中生成的概念模型的设计类图(参照图17。)分割成并行、并列的模块(步骤S2101)。图22是示出分割图17所示的设计类图而得到的分割设计类图的说明图。
图17所示的设计类图在图22中被分割成与顶层模块相关的分割设计类图2210、与控制器模块相关的分割设计类图2220、与编码器模块相关的分割设计类图2230、以及与解码器模块相关的分割设计类图2240。
而且,确定将该分割设计类图2210~2240所表示的模块之间连接的通信路(步骤S2102)。图23是示出将分割设计类图所表示的模块间连接的通信路的说明图。
顶层模块2301具有端口2311~2315。该端口2311~2315描述在与顶层模块相关的分割设计类图2210的属性2211中。具体地说,端口2311表示“packet_isc_fifo_in<Packet>”,是输入来自CPU的分组<Packet>的输入端口。端口2312表示“packet_osc_fifo_out<Packet>”,是将分组<Packet>输入到CPU的输出端口。端口2313表示“error_osc_fifo_out<ERR_TYPE>”,是将错误类型信息<ERR_TYPE>输出到CPU的输出端口。并且,端口2314表示“encoded_packet_osc_fifo_out<EncodedPacket>”,是输出进行了编码的分组<EncodedPacket>的输出端口。端口2315表示“received_packet_isc_fifo_in<Received Packet>”,是输入从外部接收的分组<Received Packet>的输入端口。
控制器模块2302具有端口2321~2327。该端口2321~2327描述在与控制器模块2302相关的分割设计类图2220的属性2221中。具体地说,端口2321表示“cpu_packet_isc_fifo_in<Packet>”,是输入来自CPU的分组<Packet>的输入端口。端口2322表示“cpu_packet_osc_fifo_out<Packet>”,是将分组<Packet>输出到CPU的输出端口。端口2323表示“error_osc_fifo_out<ERR_TYPE>”,是将错误类型信息<ERR_TYPE>输出到CPU的输出端口。
并且,端口2324表示“encoder_packet_osc_fifo_out<Packet>”,是将分组<Packet>输出到编码器模块的输出端口。端口2325表示“encoder_status_isc_fifo_in<bool>”,是输入编码器模块2303的状态信息<bool>的输入端口。端口2326表示“decoder_packet_isc_fifo_in<Packet>”,是从解码器模块输入分组<Packet>的输入端口。端口2327表示“decoder_error_isc_fifo_in<ERR_TYPE>”,是从解码器模块输入错误类型信息<ERR_TYPE>的输入端口。
编码器模块2303具有端口2331~2333。该端口2331~2333描述在与编码器模块2303相关的分割设计类图2230的属性2231中。具体地说,端口2331表示“packet_isc_fifo_in<Packet>”,是输入分组<Packet>的输入端口。端口2332表示“status_osc_fifo_out<bool>”,是输出编码器模块2303 的状态信息<boo1>的输出端口。端口2333表示“packet_osc_fifo_out_f<EncodedPacket>”,是输出编码器模块2303所编码的分组<EncodedPacket>的输出端口。
解码器模块2304具有端口2341~2343。该端口2341~2343描述在与解码器模块2304相关的分割设计类图2240的属性2241中。具体地说,端口2341表示“packet_osc_fifo_out<Packet>”,是输出分组<Packet>的输出端口。端口2342表示“error_osc_fifo_out<ERR_TYPE>”,是输出错误类型信息<ERR_TYPE>的输出端口。端口2343表示“packet_isc_fifo_in<ReceivedPacket>”,是输入所接收的分组<ReceivedPacket>的输入端口。
这样,使用分割设计类图2210~2240的属性,将端口2311~2315、端口2321~2327、端口2331~2333、端口2341~2343相互连接,确定通信路2351~2359。具体地说,该通信路2351~2359是以FIFO方式进行通信的通信路。
并且,在图21中,确定通信路之后,生成功能模型的安装代码(步骤S2103)。此处,说明包括串行收发系统的系统LSI的功能模型的安装代码的生成例。图24是示出包括串行收发系统的系统LSI的功能模型的安装代码的生成例的说明图。
图24中示出由与编码器模块2303相关的分割设计类图2230生成的、编码器模块2303的安装代码2400。另外,虽未图示,对于与顶层模块相关的分割设计类图2210、与控制器模块2302相关的分割设计类图2220、以及与解码器模块2304相关的分割设计类图2240,也分别生成安装代码。然后,在图5的步骤S504中,执行各个分割设计类图2210~2240的安装代码的模拟。
之后,在图5的步骤S505中,进行该模拟结果与概念模型的安装代码的模拟结果之间的一致性判断,一致时(步骤S505是),图22所示的模块分割妥当,并且,模块分割的并列、并行性正确。
另一方面,不一致时(步骤S505否),图22所示的模块分割不妥当,并且,模块分割的并列、并行性不正确,从而在图5的步骤S506中,对图21的步骤S2103中生成的安装代码进行校正处理。根据该功能模型验证,能够确认与概念模型相同的验证结果。
(包括串行收发系统的系统LSI的架构模型)接着,说明包括串行收发系统的系统LSI的架构模型。图25是示出包括串行收发系统的系统LSI的架构模型的类图的一例的说明图。架构模型是表示总线、IP等现有设计的物理硬件部件的模型,此处,表示总线模型。
架构模型基本上是事先准备,作为已验证的库(library)提供,图25中描述了已验证的总线模型。这样,在该架构模型中,由于使用现有设计的物理硬件部件,所以无需进行验证。
(包括串行收发系统的系统LSI的动作模型)接着,说明包括串行收发系统的系统LSI的动作模型。动作模型是像上述那样概念性地将功能模型映射到架构模型的产物。图26是示出功能模型与架构模型之间的映射的说明图。
图26中,功能模型2600中如图23所示,解码器2602输入从外部接收的分组并进行解码,提供给控制器2603。控制器2603将解码的分组输出到编码器2604,编码器2604对分组进行编码。
架构模型2610是表示总线、IP等现有设计的物理硬件部件的模型,此处,由处理器2611、存储器2612、外部输入I/F 2613、外部输出I/F 2614、硬件2615、硬件2616、硬件2617以及将它们连接的总线2618构成。
而且,将功能模型2600映射到该架构模型2610。具体地说,将解码器2602映射到硬件2615,将控制器2603映射到硬件2616,将编码器2604映射到硬件2617。使用该图25和图26说明的内容是与图5的步骤S507中示出的处理步骤相当的内容。
(包括串行收发系统的系统LSI的动作模型的安装代码生成处理步骤)接着,说明包括串行收发系统的系统LSI的动作模型的安装代码生成处理步骤。图27是示出包括串行收发系统的系统LSI的动作模型的安装代码生成处理步骤的流程图。该图27所示的处理步骤示出图5的步骤S507中示出的处理步骤的详细的处理步骤。
首先,为了实现图26所示的映射,将图22所示的分割设计类图2210~2240的属性2211~2241内的描述替换成图25所示的总线模型的描述(步骤S2701)。图28是示出属性2211内的描述被替换为总线模型的描述的分割设计类图2210的说明图。图28中,在在线(under line)的描述位置中,通信路从FIFO方式的描述替换成总线模型的描述。
接着,由替换成总线模型的描述的分割设计类图2210~2240生成功能模型的安装代码(步骤S2702)。而且,在所生成的功能模型的安装代码中追加各模块的估计处理时间(步骤S2703)。
图29是示出对各模块的估计处理时间的安装代码的追加例的说明图。例如,如果利用图29所示的图表2900,将解码器2602和编码器2604的估计处理时间分别设定为600[ns],则功能模型的安装代码(例如,图24所示的安装代码2400)中追加与图表2900中示出的处理时间相关的描述2901。由此,生成动作模型的安装代码2902。然后,在图5的步骤S508中,执行动作模型的安装代码2902的模拟。
之后,在图5的步骤S508中,进行该模拟结果与概念模型的安装代码的模拟结果之间的一致性判断,一致时(步骤S509是),动作模型的安装代码2902的模拟结果满足图13所示的要求项目列表1300的全部的要求项目1301~1308,功能模型与架构模型之间的映射妥当。
另一方面,不一致时(步骤S509否),动作模型的安装代码2902的模拟结果不满足图13所示的要求项目列表1300的全部的要求项目1301~1308,功能模型与架构模型之间的映射不妥当。该情况下,在图5的步骤S510中,对动作模型的安装代码2902进行校正处理。由此,能够验证是否满足客户所要求的动作(性能)。
(包括串行收发系统的系统LSI的ICA模型的安装代码生成处理步骤)接着,说明包括串行收发系统的系统LSI的ICA模型的安装代码生成处理步骤。图30是示出包括串行收发系统的系统LSI的ICA模型的安装代码生成处理步骤的流程图。该图30所示的处理步骤示出图5的步骤S511所示的处理步骤的详细处理步骤。
如上所述,ICA模型是利用周期精度构建模块外的接口、用动作级构建模块内部的模型。通过对该ICA模型进行高级综合,生成RTL描述。在该ICA模型中,可以验证接口的准确性。
首先,根据通信路所确定的功能模型的结构图,检测在抽象度不同的模块之间进行通信的通信路(步骤S3001)。图31是示出包括串行收发系统的系统LSI的通信路所确定的功能模型的结构图。
图31中,串行收发系统是通过FIFO方式的通信路3111~3115来连接将图17所示的设计类图分割成并行、并列的模块的结果(参照图21的步骤S2101。)、即顶层模块2301、CPU模块3101、发送器模块3102以及接收器模块3103的系统。并且,顶层模块2301的内部的内容与图23所示的结构图相同。根据这些模块的连接关系,检测在抽象度不同的模块间通信的通信路。
接着,将检测出的通信路替换成接口RAP(步骤S3002)。图32是在图31所示的结构图内的通信路中插入接口RAP的结构图。图32中,由于图31中的编码器模块2302的抽象度与发送器模块3102的抽象度不同,所以将该模块2302、3102间的通信路3114插入到接口RAP3201中,转换顶层模块2301的抽象度。
接口RAP 3201具有交易级接口3202,其与发送器模块3102的交易级(transaction level)的端口3102a连接;以及2个信号级端口3203、3204,其与顶层模块2301连接。因此,将交易级的端口2314替换成发送级端口3210、3211。
并且,项层模块2301内部的编码器模块2303的交易级的端口2331~2333也替换成信号级的端口3212~3216。通过该端口转换,控制器模块2302的交易级的端口2324、2325也转换成信号级的端口3217~3219。
这样,编码器模块2303的端口数变更,所以将图31所示的编码器模块2303转换成ICA模型的编码器模块(步骤S3003),转换编码器模块2303本身的抽象度。图33是示出ICA模型的编码器模块的内部结构的一例的说明图。
图33中,ICA模型的编码器模块3300具有图31所示的编码器模块2303和端口2331~2333。而且,可以在端口2331、2332与端口3212~3214之间进行通信,所以可以插入各种RAP或端口。同样地也可以在端口2333与端口3215、3216之间进行通信,所以可以插入各种RAP或端口。
之后,生成ICA模型的编码器模块3300的安装代码(步骤S3004)。图34是示出ICA模型的编码器模块3300的安装代码的一例的说明图。然后,在图5的步骤S512中,执行ICA模型的安装代码3400的模拟。
之后,在图5的步骤S513中,进行ICA模型的安装代码3400的模拟结果与概念模型的安装代码的模拟结果之间的一致性判断,一致时(步骤S513是),ICA模型的安装代码3400的模拟结果满足图13所示的要求项目列表1300的全部要求项目1301~1308,接口RAP的插入妥当。
另一方面,不一致时(步骤S513否),ICA模型的安装代码3400的模拟结果不满足图13所示的要求项目列表1300的全部要求项目1301~1308,接口RAP的插入不妥当。
并且,在图5所示的步骤S514中,进行ICA模型的安装代码3400的校正处理。由此,能够验证接口的准确性。
(包括串行收发系统的系统LSI的软件模型的安装代码生成处理步骤)接着,说明包括串行收发系统的系统LSI的软件模型的安装代码生成处理步骤。图35是示出包括串行收发系统的系统LSI的软件模型的安装代码生成处理步骤的流程图。该图35所示的处理步骤示出图5的步骤S516所示的处理步骤的详细处理步骤。
如上所述,软件模型对构成包括串行收发系统的系统LSI的软件进行任务分割,是在虚拟OS上执行的模型。图35中,首先,利用软件将功能模型的一部分映射到架构模型(步骤S3501)。
图36是示出利用软件将功能模型的一部分映射到架构模型中的例子的说明图。具体地说,如图26所示,解码器2602映射到硬件2615,编码器2604映射到硬件2617。另一方面,CPU 2601和控制器2603映射到处理器2611。
然后,通过该映射,生成软件模型中的设计类图(步骤S3502)。图37是示出软件模型中的设计类图的说明图。图37中,软件模型中的设计类图3700是以图22所示的分割设计类图2210~2240为基础生成的。
软件模型中的设计类图3700包括与顶层模块相关的分割设计类图3701;与解码器模块相关的分割设计类图3702;与编码器模块相关的分割设计类图3703,除此之外,还包括与虚拟OS模型相关的分割设计类图3704。然后,对每个设计类图3701~3704生成软件模型的安装代码(步骤S3503)。
之后,在图5的步骤S517中,执行软件模型的安装代码的模拟。并且,在图5的步骤S518中,进行软件模型的安装代码的模拟结果与概念模型的安装代码的模拟结果之间的一致性判断。而且,一致时(步骤S518是),软件模型的安装代码的模拟结果满足图13所示的要求项目列表1300的全部要求项目1301~1308,软件的任务分割妥当。
另一方面,不一致时(步骤S518否),软件模型的安装代码的模拟结果不满足图13所示的要求项目列表1300的全部要求项目1301~1308,软件的任务分割不妥当。
此外,在图5所示的步骤S519中,进行软件模型的安装代码的校正处理。由此,能够验证软件的任务分割的准确性。
根据本发明的实施方式的验证支援装置和验证支援方法,能够实现式样风险的早期避免。具体地说,利用UML分析客户要求,从而使用可执行的模型验证是否可以满足客户的功能要求,能够早期发现式样的误解或错误,能够防止根据错误的式样设计系统LSI。
并且,根据本发明的实施方式的验证支援装置和验证支援方法,能够解决模拟速度瓶颈。具体地说,在以往的验证方法中,使用RTL的模拟器进行模拟,因此存在模拟速度非常慢的问题,但在本实施方式中,使用抽象度更高的模型执行模拟,所以与RTL的模拟器相比,能够以其几百倍的速度执行模拟。因此,通过该模拟速度的提高,能够实现包括验证作业在内的设计期的缩短。
进一步,根据本发明的实施方式的验证支援装置和验证支援方法,能够实现成本削减。具体地说,在以往的验证方法中,为大规模的LSI时,需要导入高价格的仿真器,但在本发明的实施方式中,通过高抽象度的模型的验证,能够大幅减少仿真器的利用频度,能够实现成本的削减。并且,仿真器的利用基本以时间单位进行费用换算的情况较多,所以通过验证时间的缩短,能够实现费用的降低。
并且,根据本发明的实施方式的验证支援装置和验证支援方法,消除早期式样的错误,从而能够实现验证步骤的缩短。
而且,作为对现有方法的进一步有效的改善点,在现有方法中,若不完成RTL,则不能够进行验证步骤,但在本发明的实施方式中,能够从设计的初始阶段开始验证。并且,根据设计的详细度,对各个模型验证其妥当性。由此,相对于以往的设计结束→验证开始这样的方法,能够实现大幅的设计步骤的缩短。
此外,根据本发明的实施方式的验证支援装置和验证支援方法,能够进行定量的架构评价。具体地说,在现有方法中,存在不完成RTL的HDL就不能进行性能评价的问题,但若因完成RTL的HDL之后因不满足性能而进行设计变更时,会导致耗费非常高的成本。
相对于此,本发明的实施方式中,在早期的阶段,能够估计基于RTL的抽象度高的动作模型的粗略性能(动作),能够实现不满足性能(动作)这一风险的降低。
并且,在上述的具体例中,举出包括串行收发系统的系统LSI为例进行了说明,但不限于该系统LSI,可以适用于各种系统LSI。
另外,本实施方式中说明的验证支援方法可以利用个人计算机、工作站、CAD等计算机执行预先准备的程序来得以实现。该程序记录在硬盘、软盘、CD-ROM、MO、DVD等计算机可读取的记录介质中,可以利用计算机从记录介质中读取来得以执行。并且,该程序也可以是可通过互联网等网络发布的传送介质。
产业上的可利用性以上所述的本发明例如适用于提供验证LSI的设计数据的系统或工具。
权利要求
1.一种验证支援装置,其特征在于,所述验证支援装置包括分析信息输入单元,其接受表示与LSI的设计对象相关的要求式样的分析结果的分析信息的输入;概念模型生成单元,其根据所述分析信息输入单元所输入的分析信息,生成概念模型,所述概念模型是将所述设计对象的基本功能模型化、并将所述设计对象的物理架构和时间的概念抽象化而得到的;功能模型生成单元,其根据所述分析信息输入单元所输入的分析信息,生成功能模型,所述功能模型是通过对构成所述设计对象的模块进行分割以及提取所分割的模块的并行或并列性来模型化而得到的;以及功能模型验证单元,其根据所述概念模型生成单元所生成的概念模型,对所述功能模型生成单元所生成的功能模型进行如下验证,即验证构成所述设计对象的模块的分割以及所分割的模块的并行或并列性是否妥当。
2.根据权利要求1所述的验证支援装置,其特征在于,所述验证支援装置包括存储单元其存储多种物理架构的相关信息;提取单元,其在所述功能模型验证单元验证为妥当时,从所述存储单元提取任意的架构的相关信息;动作模型生成单元,其通过将所述提取单元所提取的架构的相关信息映射到由所述功能模型验证单元验证为妥当的功能模型上,生成将所述设计对象的动作模型化的动作模型;以及动作模型验证单元,其验证构成设计对象的模块的动作定时是否妥当,所述设计对象利用所述动作模型生成单元所生成的动作模型进行了模型化。
3.根据权利要求2所述的验证支援装置,其特征在于,所述验证支援装置包括ICA模型生成单元,其在由所述动作模型验证单元验证为妥当时,在构成利用所述功能模型进行了模型化的设计对象的模块间的抽象度不同之处,在该模块之间插入规定的时钟周期精度的接口,从而生成ICA模型;以及ICA模型验证单元,其根据所述概念模型生成单元所生成的概念模型,验证插入到所述ICA模型生成单元所生成的ICA模型的接口的时钟周期精度是否妥当。
4.根据权利要求2或3所述的验证支援装置,其特征在于,所述验证支援装置包括软件模型生成单元,其在所述动作模型验证单元验证为妥当时,根据利用所述功能模型进行了模型化的设计对象,生成以包括可利用软件执行的任务的方式模型化的软件模型;以及软件模型验证单元,其根据所述概念模型生成单元所生成的概念模型,验证所述软件模型生成单元所生成的软件模型中包括的任务是否妥当。
5.一种验证支援方法,其特征在于,所述验证支援方法包括分析信息输入步骤,输入表示与LSI的设计对象相关的要求式样的分析结果的分析信息;概念模型生成步骤,根据由所述分析信息输入步骤输入的分析信息,生成概念模型,所述概念模型是将所述设计对象的基本功能模型化、并将所述设计对象的物理架构和时间的概念抽象化而得到的;功能模型生成步骤,根据由所述分析信息输入步骤输入的分析信息,生成功能模型,所述功能模型是通过对构成所述设计对象的模块进行分割以及提取所分割的模块的并行或并列性来模型化而得到的;以及功能模型验证步骤,根据由所述概念模型生成步骤生成的概念模型,对由所述功能模型生成步骤生成的功能模型进行如下验证,即验证构成所述设计对象的模块的分割以及所分割的模块的并行或并列性是否妥当。
6.根据权利要求5所述的验证支援方法,其特征在于,所述验证支援方法包括提取步骤,在由所述功能模块验证步骤验证为妥当时,从多种物理架构的相关信息中提取任意的架构的相关信息;动作模型生成步骤,通过将所述提取步骤所提取的架构的相关信息映射到由所述功能模型验证步骤验证为妥当的功能模型上,生成将所述设计对象的动作模型化的动作模型;以及动作模型验证步骤,验证构成设计对象的模块的动作定时是否妥当,所述设计对象利用所述动作模型生成步骤所生成的动作模型进行了模型化。
7.根据权利要求6所述的验证支援方法,其特征在于,所述验证支援方法包括ICA模型生成步骤,在由所述动作模型验证步骤验证为妥当时,在构成利用所述功能模型进行了模型化的设计对象的模块间的抽象度不同之处,在该模块之间插入规定的时钟周期精度的接口,从而生成ICA模型;以及ICA模型验证步骤,根据由所述概念模型生成步骤生成的概念模型,验证插入到所述ICA模型生成步骤所生成的ICA模型的接口的时钟周期精度是否妥当。
8.根据权利要求6或7所述的验证支援方法,其特征在于,所述验证支援方法包括软件模型生成步骤,在由所述动作模型验证步骤验证为妥当时,根据利用所述功能模型进行了模型化的设计对象,生成以包括可利用软件执行的任务的方式模型化的软件模型;以及软件模型验证步骤,根据由所述概念模型生成步骤生成的概念模型,验证所述软件模型生成步骤所生成的软件模型中包括的任务是否妥当。
9.一种验证支援程序,其特征在于,所述验证支援程序使计算机执行如下步骤分析信息输入步骤,输入表示与LSI的设计对象相关的要求式样的分析结果的分析信息;概念模型生成步骤,根据所述分析信息输入步骤中输入的分析信息,生成概念模型,所述概念模型是将所述设计对象的基本功能模型化、并将所述设计对象的物理架构和时间的概念抽象化而得到的;功能模型生成步骤,根据所述分析信息输入步骤中输入的分析信息,生成功能模型,所述功能模型是通过对构成所述设计对象的模块进行分割以及提取所分割的模块的并行或并列性来模型化而得到的;以及功能模型验证步骤,根据所述概念模型生成步骤中生成的概念模型,对所述功能模型生成步骤中生成的功能模型进行如下验证,即验证构成所述设计对象的模块的分割以及所分割的模块的并行或并列性是否妥当。
10.根据权利要求9所述的验证支援程序,其特征在于,所述验证支援程序使计算机执行如下步骤提取步骤,在所述功能模块验证步骤中验证为妥当时,从多种物理架构的相关信息中提取任意的架构的相关信息;动作模型生成步骤,通过将所述提取步骤中提取的架构的相关信息映射到所述功能模型验证步骤中验证为妥当的功能模型上,生成将所述设计对象的动作模型化的动作模型;以及动作模型验证步骤,验证构成设计对象的模块的动作定时是否妥当,所述设计对象利用所述动作模型生成步骤中生成的动作模型进行了模型化。
11.根据权利要求10所述的验证支援程序,其特征在于,所述验证支援程序包括ICA模型生成步骤,在所述动作模型验证步骤中验证为妥当时,在构成利用所述功能模型进行了模型化的设计对象的模块间的抽象度不同之处,在该模块之间插入规定的时钟周期精度的接口,从而生成ICA模型;以及ICA模型验证步骤,根据所述概念模型生成步骤中生成的概念模型,验证插入到所述ICA模型生成步骤中生成的ICA模型的接口的时钟周期精度是否妥当。
12.根据权利要求10或11所述的验证支援程序,其特征在于,所述验证支援程序包括软件模型生成步骤,在所述动作模型验证步骤中验证为妥当时,根据利用所述功能模型进行了模型化的设计对象,生成以包括可利用软件执行的任务的方式模型化的软件模型;以及软件模型验证步骤,根据所述概念模型生成步骤中生成的概念模型,验证所述软件模型生成步骤中生成的软件模型中包括的任务是否妥当。
13.一种记录了权利要求9~12的任意一项所述的验证支援程序的计算机可读取的记录介质。
全文摘要
本发明提供一种验证支援装置(400)以及验证支援方法,其中,验证支援装置(400)通过由概念模型生成部(402)生成关注于客户的要求式样的概念模型,从而在设计的初始阶段消除式样的错误或误解。并且,利用功能模型验证部(404)进行并列、并行的功能模型的验证,从而验证功能模块分割的妥当性以及并行、并列性的正确性。并且,利用动作模型验证部(408)验证动作模型,从而验证架构设计的妥当性、是否满足性能要件。并且,利用ICA模型验证部(410)验证接口设计的正确性。这样,通过阶段性地导入验证,能够在设计的早期阶段指出此前若不生成RTL就不能发现的问题,能够避免该风险。
文档编号G06F17/50GK1981288SQ200480043508
公开日2007年6月13日 申请日期2004年7月1日 优先权日2004年7月1日
发明者朱强 申请人:富士通株式会社