发明内容
有鉴于此,为解决上述问题,本发明提供了一种针对CSOC中软硬协同设计问题,提出了一种CSOC架构、软件、硬件统一与验证方法。
为了达到上述目的,本发明提供一种CSOC系统中保持架构、软件及硬件一致性的方法,其包括以下步骤:采用硬件描述语言描述CSOC系统的架构模型;基于所述架构模型通过配置参数和行为级描述采用硬件描述语言描述软件模型;基于所述架构模型采用硬件描述语言描述硬件模型。
优选地,所述方法进一步包括,软件模型一旦发生变动,硬件模型和架构模型相应地发生变动;硬件模型一旦发生变动,软件模型和架构模型相应地发生变动。
优选地,所述描述CSOS系统的架构模型的步骤包括:针对基本逻辑单元和基本互联单元结构采用硬件描述语言建模,确定基本逻辑单元和互连单元的结构,形成基本的架构模型;针对IP(MCU,EMB,MAC)、clock和IO的模型,通过自动化的脚本,形成完整的系统级架构模型;
优选地,所述方法进一步包括:通过分析大量测试用例的运行结果,进行绕通性分析及性能分析,对CSOC的系统架构进行优化。
优选地,所述方法进一步包括:通过软件可配置参数的调整和硬件设计改变导致的模块端口变化对所述架构模型进行微调。
优选地,所述基于所述架构模型通过配置参数和行为级描述采用硬件描述语言描述软件模型步骤进一步包括:根据所述架构模型中的基本逻辑单元、基本互联单元和时钟的结构采用硬件描述语言描述软件模型的基本逻辑单元、基本互连单元和时钟;根据所述架构模型中的IP和IO的结构,采用硬件描述语言描述软件模型的IP和IO;通过脚本,将基于基本的逻辑互连单元扩展为可配置逻辑阵列;根据所述系统模型中的各模块间的互联通过软件可配置的参数信息与硬件配置位对应关系将可配置逻辑阵列、系统IP、时钟及IO连接起来形一个完整的CSOC系统软件模型。
优选地,所述基于所述架构模型采用硬件描述语言描述硬件模型的步骤进一步包括:对于基于晶体管级的电路设计,根据所述架构模型中的接口和功能定义,在完成电路设计后,首先确定电路设计中的基本单元,然后基于硬件描述语言对这些基本单元的功能进行描述,加上基于电路设计自动抽取的顶层的互连网表即可得到完整的硬件模型;对于IP设计,根据架构模型中的接口及功能定义,完成晶体管级的电路设计,并对所述晶体管级的电路进行逻辑综合和布局布线然后得到布局布线之后的硬件网表即可作为这些模块的硬件模型。
优选地,验证根据权利要求1建立的软件模型和硬件模型一致性的方法,其包括以下步骤:将所述软件模型和硬件模型分为上层软件模型、上层硬件模型和下层软件模型、下层硬件模型,上层软件模型和硬件模型描述的是软件模型和硬件模型里各模块之间的互连结构,下层软件模型和硬件模型描述的是具体每个模块的接口及功能;通过仿真和验证确保下层软件模型和下层硬件模型一致;和将所述软件模型和硬件模型中每个模块对应一个脚本,采用同一个脚本同时产生同属上层软件模型和上层硬件模型内同一层的软件模块和硬件模块,直到上层软件模块的顶层和上层硬件模块的顶层。
优选地,所述通过仿真和验证确保下层软件模型和下层硬件模型一致的步骤进一步包括:将下层软件模型和下层硬件模型进行联合仿真以及形式验证,确保下层软件模型和下层硬件模型各子模块功能的正确性,以及下层软件模型和下层硬件模型一致;将下层硬件模型与实际的硬件电路进行形式验证,确保电路设计与下层硬件模型一致;将下层硬件模型与布局布线之后的硬件电路进行布局与电路结构检查,确保硬件模型与布局布线之后最终硬件电路一致。
优选地,所述方法进一步包括以下步骤:针对基本互联单元、互联结构和IP的软件模型进行硬件语言解析,生成软件基础库文件;基于所述基础库文件对用户逻辑设计进行综合、映射、布局、布线并生成配置文件。
优选地,所述验证方法进一步包括:对所述软件模型和硬件模型进行联合仿真和形式验证。
优选地,所述对所述软件模型和硬件模型进行联合仿真的步骤包括:准备各类测试用例,并完成各测试用例的软件模型的参数配置;所述软件模型的参数配置通过自动化的脚本转换为所述硬件模型的配置文件;加载测试激励,同时输入到软件模型和硬件模型,并将软件模型和硬件模型的配置文件作为输入,通过仿真工具比较软件模型和硬件模型的输出结果,确定软硬件模型是否一致。
优选地,所述对所述软件模型和硬件模型进行形式验证的步骤包括:随机生成所述硬件模型的配置文件,通过自动化的脚本生成软件模型的参数配置文件;将软件模型和硬件模型的配置文件及软件模型和硬件模型输入到形式验证工具中,查看形式验证的结果确定软硬件模型是否一致。
优选地,所述验证方法进一步包括对硬件模型与硬件电路设计进行形式验证,所述形式验证步骤具体包括:提取基于模块的硬件电路设计的网表,将所述网表和硬件模型输入到形式验证工具,查看形式验证的结果,确定硬件模型与硬件电路设计是否一致。
本发明提供的实施例提供了一种架构、软件及硬件的统一建模与验证方法。以架构模型为基础,进而得到系统的硬件模型和软件模型。架构模型在系统前期评估阶段发挥着很重要的作用,以架构模型为基础,通过引入软件,可以对系统的性能进行有效的前期评估和优化。得到最终的架构模型后,以此为基础分别建立软件和硬件模型,并基于这套模型指导完成最终的软件和硬件设计。为确保软硬件模型的一致性,本发明还给出了一套确保软件硬件模型一致性的设计方法,确保软硬件的一致性。
附图说明
图1是一个平铺(Tile-based)CSOC系统的基本结构;
图2是本发明一个具体实施例中CSOC系统架构和软件模型硬件模型建立的流程图;
图3是本发明一个具体的实施例中CSOC系统架构模型建立流程图;
图4是本发明一个具体的实施例中基于系统架构模型生成软件模型的流程图;
图5是本发明一个具体的实施例中基于系统架构模型生成硬件模型的流程图;
图6是本发明一个具体的实施例中软件模型和硬件模型分层的层次结构;和
图7是本发明一个具体的实施例中,保证上层软件模型和上层硬件模型一致性的设计方法示意图。
图8是本发明一个具体实施例中为保证软硬件下层模型一致性的设计方法流程图;
图9是本发明一个具体实施例中保证软硬件下层模型一致性的设计方法中软件模型部分流程图;
图10是本发明一个具体实施例中软硬件模型一致性的验证方法流程图;和
图11是本发明一个具体实施例中硬件电路设计与硬件模型的形式验证方法流程图。
具体实施方式
CSOC与ASIC的一个很大的区别在于CSOC的系统设计不但与硬件设计密切相关,还要与软件设计紧密结合,这对系统设计的前期评估及软硬件的协同设计带来了很大的挑战。本发明针对这一问题,提出了一套CSOC系统的架构、软件及硬件统一的方法。如图1所示,为完成CSOC的系统设计,需要系统架构模型、软件模型及硬件模型。架构模型用于系统设计的前期评估,并作为软、硬件协同设计的基础。基于系统架构模型,通过引入各模块(基本逻辑单元、基本互连结构、嵌入式IP等)的配置参数及行为描述,可以建立完整的系统软件模型。基于架构模型,完成各个模块的硬件设计,包括基于电路的设计和基于RTL的设计。系统的架构模型在完成系统前期评估后形成一个初始的版本,随着设计的推进,根据软件设计及硬件设计的改动,架构模型也要随之调整,保证与软硬件设计的一致性。与现有技术不同的是,现有技术中一般采用Spec描述软件模型,这样一来软件跑出来的结果很有可能不是硬件设计的结构,还需要进行反复的调整,费时费力。
本发明提供一种CSOC系统中保持软件及硬件一致性的方法,其包括以下步骤。具体请参看图2所示,图2描述了本发明一个具体实施例中CSOC系统架构和软件模型硬件模型建立的流程。
步骤1,采用硬件描述语言描述CSOC系统的架构模型。
本发明在一个具体的实施例中,如图3所示,图3是本发明一个具体的实施例中CSOC系统架构模型建立流程图。CSOC系统架构模型被分成3个阶段,前期评估阶段、优化阶段和微调阶段。
在前期评估阶段,主要针对基本逻辑单元和基本互联单元结构的建模,因为这些基本单元的性能直接决定了CSOC系统的性能。因此,针对基本逻辑单元和基本互联单元结构采用硬件描述语言建模,通过对大量测试用例(Benchmarks)的绕通性(Routability)和性能(Performance)分析,确定基本逻辑单元和互连单元的结构,形成基本的架构模型;其次,引入IP、时钟和IO模型,针对IP(MCU,EMB,MAC)、时钟和IO的模型,通过自动化的脚本,形成完整的系统级架构模型。
在优化阶段,基于初始的系统级架构模型,生成软件模型并进行Verilog解析,生成软件基础库文件,通过大量的测试用例(Benchmark),对综合、映射、布局、布线后的系统的性能进行分析和优化。通过分析大量测试用例的运行结果,包括绕通性分析及性能分析,对CSOC的系统架构进行优化,直到满足性能要求为止。
在微调阶段,对CSOC的系统架构进行微调,如软件可配置参数的调整,硬件设计改变导致的模块端口变化等。在这一阶段,必须保证三套模型协调一致。
软件模型一旦发生变动,硬件模型和架构模型相应地发生变动;硬件模型一旦发生变动,软件模型和架构模型相应地发生变动。架构模型发生变动,软件模型和硬件模型都要发生变动。
步骤2,基于所述架构模型通过配置参数和行为级描述采用硬件描述语言描述软件模型。
基于CSOC系统的架构模型生成软件模型的流程。从总体上可以分成两部分,一部分是基本逻辑单元和基本互连单元的软件模型,一部分是建立系统IP(包括嵌入式处理器,嵌入式存储器,嵌入式乘加器等)以及系统时钟的软件模型建立。具体参看图4所示,图4是本发明一个具体的实施例中基于系统架构模型生成软件模型的流程图。具体步骤如下。
步骤201,根据所述架构模型中的基本逻辑单元、基本互联单元和时钟的结构根据软件可配参数与硬件配置位对应关系,采用硬件描述语言描述软件模型的基本逻辑单元、基本互连单元和时钟。
步骤202,根据所述架构模型中的IP和IO的结构根据软件可配参数与硬件配置位对应关系,采用硬件描述语言描述软件模型的IP和IO。
步骤203,通过脚本,将基于基本的逻辑互连单元扩展为可配置逻辑阵列。
步骤204,根据所述系统模型中的各模块间的互联通过软件可配置的参数信息与硬件配置位对应关系将可配置逻辑阵列、系统IP、时钟及IO连接起来形一个完整的CSOC系统软件模型。
步骤3,基于所述架构模型采用硬件描述语言描述硬件模型。
本发明在一个具体的实施例中,如图5所示,基于系统架构模型生成硬件模型的方法具体包括在生成硬件模型时,对于基于晶体管级的电路设计,如基本逻辑单元、基本互连单元等,和基于RTL的设计,如嵌入式处理器(ARM/8051/MIPS)等,采用的流程不同。
对于基于晶体管级的电路设计,根据所述架构模型中的接口和功能定义,在完成电路设计后,首先确定电路设计中的基本单元,然后根据接口和功能定义采用硬件描述语言对这些基本单元的功能进行描述。抽取电路的基本设计单元并对基本设计单元进行功能描述,加上基于电路设计自动抽取的顶层的互连网表即可得到完整的硬件模型。
对于IP设计,根据架构模型中的接口及功能定义,完成晶体管级的电路设计,并对所述晶体管级的电路进行逻辑综合和布局布线然后得到布局布线之后的硬件网表即可作为这些模块的硬件模型。
当CSOC架构、软件、硬件模型搭建起来之后就可以对三者进行验证了。本发明在一个具体的实施例中,参看图6所示,验证时按照从下往上逐层验证的方式,先从底层的基本设计单元(Leafcell)起,一层层验证到上层的子模块(Sub-module)直到顶层的顶层模块(Top-module)。分别保证底层各单元的软硬件一致性,和顶层模块的一致性,即各基本单元链接关系的一致性。具体包括以下步骤。
步骤11,将所述软件模型和硬件模型分为上层软件模型、上层硬件模型和下层软件模型、下层硬件模型,上层软件模型和硬件模型描述的是软件模型和硬件模型里各模块之间的互连结构,下层软件模型和硬件模型描述的是具体每个模块的接口及功能。
步骤12,通过仿真和验证确保下层软件模型和下层硬件模型一致。
步骤13,将所述软件模型和硬件模型中每个模块对应一个脚本,采用同一个脚本同时产生同属上层软件模型和上层硬件模型内同一层的软件模块和硬件模块,直到上层软件模块的顶层和上层硬件模块的顶层。
如图7所示,上层软硬件模型保持一致性的方法如图所示,可以看到软件和硬件有相同的层次架构。每个模块对应一个脚本,同时用来产生软件模块和硬件模块。任一层次的模块都做相应的软硬件协同仿真,保证功能一致性。直到最顶层模块,同样用一套脚本去组合产生软件和硬件的顶层。在此过程中如果软件或者硬件有改动,需要重新进行仿真验证。
本发明在一个具体的实施例中,参看图8所示,通过仿真和验证确保下层软件模型和下层硬件模型一致的步骤进一步包括以下步骤。
步骤1201,将下层软件模型和下层硬件模型进行联合仿真以及形式验证,确保下层软件模型和下层硬件模型各子模块功能的正确性,以及下层软件模型和下层硬件模型一致;
步骤1202,将下层硬件模型与实际的硬件电路进行形式验证,确保电路设计与下层硬件模型一致;
步骤1203,将下层硬件模型与布局布线之后的硬件电路进行布局与电路结构检查,确保硬件模型与布局布线之后最终硬件电路一致。
软件模型的应用与测试参看图9所示,包括以下步骤。
步骤1211,针对基本互联单元、互联结构和IP的软件模型进行硬件语言解析,生成软件基础库文件;
步骤1212,基于所述基础库文件对用户逻辑设计进行综合、映射、布局、布线并生成配置文件。
步骤14,对所述软件模型和硬件模型进行联合仿真和形式验证。在一个具体的实施例中,参看图10所示,联合仿真的方法具体包括以下步骤。
步骤1401,准备各类测试用例,并完成各测试用例的软件模型的参数配置;
步骤1402,所述软件模型的参数配置通过自动化的脚本转换为所述硬件模型的配置文件;
步骤1403,加载测试激励,同时输入到软件模型和硬件模型,并将软件模型和硬件模型的配置文件作为输入,通过仿真工具比较软件模型和硬件模型的输出结果,确定软硬件模型是否一致。
在一个具体的实施例中,具体的形式验证的流程包括以下步骤。
步骤1411,随机生成所述硬件模型的配置文件,通过自动化的脚本生成软件模型的参数配置文件;
步骤1412,将软件模型和硬件模型的配置文件、参数设置及软件模型和硬件模型输入到形式验证工具中,查看形式验证的结果确定软硬件模型是否一致。
步骤15,对硬件模型与硬件电路设进行计形式验证。具体如图11所示,所述形式验证方法具体包括。
提取基于模块的硬件电路设计的网表,将所述网表和硬件模型输入到形式验证工具,查看形式验证的结果,确定硬件模型与硬件电路设计是否一致。
在本发明具体实施例中,架构模型、软件模型以及硬件模型均采用RTL进行描述。除了配置相关的端口外,架构、软件及硬件模型在上层模型中的端口均保持一致,软件及硬件模型在上层的互连是通过相同的脚本产生的,以确保软硬件的一致性。由此可见,软件及硬件模型均采用RTL描述,可以很方便的进行联合仿真和形式验证,以确保软硬件模型的一致性。如图7中可以看到每一级的子模块都可以做软硬件的联合仿真以及形式验证。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。