CN116305713A - 一种芯片仿真***及仿真方法 - Google Patents
一种芯片仿真***及仿真方法 Download PDFInfo
- Publication number
- CN116305713A CN116305713A CN202211090629.0A CN202211090629A CN116305713A CN 116305713 A CN116305713 A CN 116305713A CN 202211090629 A CN202211090629 A CN 202211090629A CN 116305713 A CN116305713 A CN 116305713A
- Authority
- CN
- China
- Prior art keywords
- model
- information
- chip
- simulation
- component models
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000002452 interceptive effect Effects 0.000 claims abstract description 25
- 230000003993 interaction Effects 0.000 claims abstract description 23
- 238000013461 design Methods 0.000 claims abstract description 21
- 230000000694 effects Effects 0.000 claims abstract description 7
- 238000004458 analytical method Methods 0.000 claims description 24
- 238000013179 statistical model Methods 0.000 claims description 9
- 239000000523 sample Substances 0.000 claims description 8
- 230000005284 excitation Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000007639 printing Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 239000000725 suspension Substances 0.000 claims description 2
- 230000007474 system interaction Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 239000003999 initiator Substances 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000005477 standard model Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Architecture (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种芯片仿真***及方法,所述***包括:交互层单元,用于构建图形化交互界面,所述图形化交互界面具有动画显示效果,并在所述图形化交互界面设置多个交互窗口;模型层单元,用于构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对所述组件模型进行参数配置和分类管理;仿真层单元,用于对搭建的芯片模型执行仿真操作,并生成仿真运行结果;其中,所述交互层单元、模型层单元与仿真层单元之间互相解耦。根据本申请实施例提供的芯片仿真***,支持图形化界面,自带可编辑的模型库,且***交互层、模型层、仿真层相互解耦,具备高可扩展性。
Description
技术领域
本发明涉及芯片仿真技术领域,特别涉及一种芯片仿真***及仿真方法。
背景技术
目前,芯片在通讯、电脑、智能化***、自动控制和空间技术等诸多行业和领域都发挥着及其重要的作用,推动着整个社会的信息化发展。一般情况下,芯片生成包括两个阶段,芯片设计和芯片制造。由于芯片制造的成本很高,且一经流片,芯片内部的逻辑结构就无法改变,所以在芯片制造之前,需要进行谨慎、周密的芯片设计工作。
在基于IP的SOC芯片设计过程中,缺陷主要出现于***整体架构以及各个子***的配合中,而非孤立的子***内部。因此项目前期需要在有限的时间与人力投入下,快速准确完成芯片***架构的模型建立、仿真执行、结果分析,得到“正确且正好”的产品架构。避免由架构设计问题导致的芯片缺陷或高成本返工、过冗余设计与性能不足设计。
为达成上述目标,需要有专用的仿真软件***。但是现有技术中的芯片仿真***存在如下问题与缺陷:1.仿真***与各自公司的其他EDA工具强耦合,以“全家桶”形式对外呈现,使用成本高昂;2.用户使用门槛高,需要具备较高软硬件基础能力方可入门使用;3.***生态封闭,通用性差,不具备扩展性。
发明内容
本申请实施例提供了一种芯片仿真***及仿真方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本申请实施例提供了一种芯片仿真***,包括:
交互层单元,用于构建图形化交互界面,图形化交互界面具有动画显示效果,并在图形化交互界面设置多个交互窗口;
模型层单元,用于构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对组件模型进行参数配置和分类管理;
仿真层单元,用于对搭建的芯片模型执行仿真操作,并生成仿真运行结果,所述芯片模型为所述组件模型搭建的整体模型;
其中,交互层单元、模型层单元与仿真层单元之间互相解耦。
在一个可选地实施例中,交互层单元中的图形化交互界面,包括:
主窗口,用于显示***的菜单栏和各种功能键;
库窗口,用于分类显示模型库中的多个组件模型;
全景窗口,用于显示当前编辑的芯片模型的全景;
编辑窗口,用于显示编辑组件模型的工作区;
代码窗口,用于同步显示组件模型的代码,包括图形化交互界面接收输入的组件模型,通过MVC模式调用编译组件,生成所述组件模型的代码,将生成的组件模型的代码在代码窗口显示;
信息窗口,用于显示芯片模型运行信息和运行的打印信息。
在一个可选地实施例中,图形化交互界面,还包括:
悬浮文本框,用于自动弹出提示信息,提示信息包括芯片模型参数提示信息、运行状态提示信息以及错误提示信息。
在一个可选地实施例中,错误提示信息,包括:
安装错误时的错误类型信息、错误位置信息;
组件模型设置异常时的模块名称信息、错误类型信息、错误序号信息以及解决方案信息;
***运行异常时的错误类型信息、错误序号信息以及解决方案信息。
在一个可选地实施例中,模型层单元,包括:
模型库配置模块,用于预先编译多个与芯片设计相关的组件模型,将编译好的组件模型存入模型库,并采用目录式的方法对组件模型进行分类管理;
数据库配置模块,用于为组件模型配置参数数据以及激励数据;
分析库配置模块,用于采集芯片模型运行信息,根据采集到的运行信息综合分析***性能。
在一个可选地实施例中,
组件模型包括事务级模型和寄存器传输级模型;
事务级模型包括非定时模型、松散定时模型和近似定时模型。
在一个可选地实施例中,
数据库配置模块,用于根据配置的解析函数,解析Excel、XML、Json中的一种或多种文本格式的数据,根据解析的数据得到芯片模型输入的激励数据,或者根据配置的解析函数,将输出的数据转化成Excel、XML、Json中的一种或多种文本格式的数据。
在一个可选地实施例中,分析库配置模块,用于在芯片模型中部署探针,根据部署的探针采集芯片模型的参数信息、名称信息、连接方式信息,并根据采集到的信息生成统计报告。
在一个可选地实施例中,分析库配置模块,用于构建电源模型,根据电源模型监测***计算次数,根据计算次数分析***功耗;
分析库配置模块,用于构建细化统计模型,根据细化统计模型采集***带宽信息、延迟信息、吞吐量信息以及利用率信息中的一种或多种性能数据,并根据采集的性能数据生成饼状图、条状图或曲线图。
第二方面,本申请实施例提供了一种芯片仿真方法,包括:
构建图形化交互界面,图形化交互界面具有动画显示效果,并在图形化交互界面设置多个交互窗口;
构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对组件模型进行参数配置和分类管理;
从组件模型中选择多个目标组件模型,对选择的目标组件模型进行连接,形成构建好的芯片模型;
对搭建的芯片模型执行仿真操作,并生成仿真运行结果。
本申请实施例提供的技术方案可以包括以下有益效果:
根据本申请实施例提供的一种芯片仿真***,支持图形化界面,所画即所得,大幅降低使用门槛;同时支持代码编辑,兼顾简单易用性需求与复杂定制性需求。且自带常用电路结构模型,同时支持第三方同标准模型库,将使用者的工作重心从底层模型实现转向上层***架构分析。且***交互层、模型层、仿真层相互解耦,具备高可扩展性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种芯片仿真***的结构示意图;
图2是根据一示例性实施例示出的一种交互界面的示意图;
图3是根据一示例性实施例示出的一种芯片仿真方法的示意图;
图4是根据一示例性实施例示出的一种图形转化代码的示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的***和方法的例子。
本申请实施例提供了一种可视化的、低代码风格的芯片开发***,快速的将抽象的***概要设计分层转换为具象的电路结构,并在***整体架构层面上进行仿真,从而对***的功能、性能和功耗进行综合评估,进而保证芯片从原始需求分析到架构设计,再到电路实现的准确性与一致性。
下面将结合附图对本申请实施例提供的芯片仿真***进行详细介绍。参见图1,本申请实施例采用分层架构来构建***,总体结构分为交互层单元、模型层单元以及仿真层单元。
在一种可能的实现方式中,交互层单元,用于构建图形化交互界面,图形化交互界面具有动画显示效果,并在图形化交互界面设置多个交互窗口。
具体地,通过Qt图形化建模框架搭建图形化界面,在图形化界面环境下,可以利用已经编译好的参数化库和已有的SysmteC/Verilog/VHDL模型对设想的***方案进行架构建模。
图形化交互界面设置有多个窗口用于显示***多种信息。例如,图形化交互界面包括主窗口,用于显示***的菜单栏和各种功能键;库窗口,用于分类显示模型库中的多个组件模型,可以采用目录式的方法分类显示;全景窗口,用于显示当前编辑的芯片模型的全景;编辑窗口,用于显示编辑组件模型的工作区;信息窗口,用于显示模型运行信息和运行的打印信息等。还包括代码窗口,用于同步显示组件模型的代码,包括图形化交互界面接收输入的组件模型,通过MVC模式调用编译组件,生成所述组件模型的代码,将生成的组件模型的代码在代码窗口显示;并提供代码编辑功能。
在一种可能的实现方式中,图形化交互界面具有图形转化代码的功能,如图4所示,在GUI图形化交互界面输入组件模型后,启动MVC模式,通过MVC(module+view+control)模式调用编译组件生成SystemC代码。将生成的代码在代码窗口显示。
具体地,首先从库窗口的组件模型列表中选出需要的组件模型,将选择的组件模型拖拽到编辑窗口后模型实例化,生成对应组件模型的item,模型的item包含了模型名称、数据类型、端口名、函数逻辑等关键数据,并配置了模型ID。
进一步地,启动MVC模式调用编译组件,编译组件生成组件模型代码。具体地,编译组件通过toSourceCode函数生成SystemC的模块框架代码,并将item中的数据通过关键字识别的方法转换为SystemC中对应的代码,通过replace(src,“$moduleName”,className)将item中的模型名转换为SystemC的类名;通过setDataType将数据类型转换为对应代码数据类型;通过addPorts添加端口及方向;通过addMethod或者addThread添加进程或线程、敏感表,并生成函数。代码转换完成后,会生成.cpp文件存放代码。
进一步地,通过C++的文本文件的读写函数,读取.cpp文件,将文件中的SystemC代码同步显示在代码窗口中。
在一个可选地实施方式中,交互层中设计了模型动画化方法,对于一个***,每一笔数据流都会隐式的添加事务号,脚本会实时追踪事务号,实现动画显示各个组件模型之间的数据流流动,显示***的运行情况。
在一个可选地实施方式中,交互层单元还包括悬浮文本框,基于tooltip创建了悬浮文本框,用于自动弹出提示信息,提示信息包括模型参数提示信息、运行状态提示信息以及错误提示信息等。
在一个可选地实施方式中,安装错误会提供报错窗口和报错信息,包括:
(1)错误类型:指明错误原因;
(2)错误位置:指明错误文件位置。
模型设置出现异常时会提供报错窗口和报错信息,包括:
(1)模块名称:指定问题模块的确切位置,格式为:模型名.模块名;
(2)错误类型:指明错误可能的原因;
(3)错误序号:提供错误序号;
(4)解决方案:提示可行的解决方案。
***运行异常提供报错窗口和报错信息,包括:
(1)错误类型:指明错误原因;
(2)错误序号:提供错误序号;
(3)解决方案:提供可行的解决方案。
通过设置图形化的交互界面,所画即所得,且动画显示各个组件模型之间的数据流,大幅降低使用门槛,提高用户的使用体验。
该仿真***还包括模型层单元,用于构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对组件模型进行参数配置和分类管理。
模型层采用目录式的分类管理,具有相似功能的组件被归入一个文件夹或者子文件夹中;模型层的一个模型组件可以是一个基本结构,例如激励发生器或者调度器,也可以是一个复杂的元件,例如一个处理器。每一个组件模型包含一组控制自身执行的参数集。模型组件库构成了仿真***快速建模能力的基础。模型层的模型组件库,从模型组件库窗口的文件夹选中需要的组件,拖放到全景窗口中完成例化,配置组件实例的参数,用连线连接各组件实例的端口或者以虚拟动态映射实现拓扑结构设计。
模型的连接是总线化,总线归属于xx_interface模块。这些模块会把强相关信号进行封装传输,总线化连接提高模型的扩展性,简化模型结构。
在一个可选地实施方式中,模型层配置模型库,用于预先编译多个与芯片设计相关的组件模型,将编译好的组件模型存入模型库,并采用目录式的方法对组件模型进行分类管理。
具体地,模型层中组件库的模型是一系列预先编译的SystemC模型,预编译模型主要分为两种:事务级模型和寄存器传输级模型。
其中事务级模型构建,主要分为三种不同的事务级模型匹配不同情况下的协议要求,三种模型分别是:非定时模型(Untimed TLM)、松散定时模型(Loosely Timed)和近似定时模型(Approximately Timed)。
(1)非定时模型主要用于设计规范,有效信息较少,仿真速度快的情形。
非定时模型的建模方式是SC_THREAD进程;使用阻塞方式读/写;使用Δ(delta-cycle)来模拟进程推进,确定参数不会导致程序中的sc_start终止。为使程序终止使用了多种方案,例如对含有FIFO通道的模块,模型会运行到数据占满FIFO;给定仿真时间和数据相关退出条件的组合;创建终止模块并监控退出条件。
以RISC指令集的数据总线模型为例介绍非定时模型的代码风格:该模块使用的头文件包括systemc.h和tlm.h,它们定义了核心TLM2.0接口和所需的模型工具文件:
#include“systemc.h”
#include“tlm.h”
#include“tlm_utiles/simple_initiator_socket.h”
#include“databus.h”
该模块被声明为标准的SystemC模块,派生自sc_module.:
classrisc_bus:public sc_core::sc_module
该模块的一个公共接口使用了TLM2.0库中的simple_initiator_socket方法,定义了一个宽度为32位的数据总线。该接口是一个模板,必须指定类使用:
tlm_utils::simple_initiator_socket<risc_bus,32>dataBus;
该模块使用自定义的构造函数,也可以添加RISC的配置文件和其它参数等:
SC_HAS_PROCESS(risc_bus);
risc_bus(sc_core::sc_module_name name);
该模块具有单个线程,执行相应指令,函数实现如下,线程并不是公共接口的一部分,下面将在派生类重用,所以采用protected:
该模块中有效负载声明为类变量,采用了tlm_gengeric_payload方法:
tlm::tlm_generic_payload trans;
该模块设置好负载字段后,将调用函数以将有效负载传输到目标。虽然是非定时模型,但仍需要提供时间变量。使用变量的原因是目标可以更新该时间。时间变量以SC_ZERO_TIME时间声明,b_transport是虚拟接口,虚拟接口使用有效负载传递给目标:
sc_core::sc_timebusDelay=sc_core::SC_ZEOR_TIME;
dataBus->b_transport(trans,busDelay);
松散定时模型用于软件开发、性能评估和体系结构分析。该模型中每一个事物被处理对应两个时间点,即事物的开始点和结束点。在TLM协议中,这两个时间点与请求相位的开始和相应相位的开始相对应。正常情况下,事务处理的结束时间点要晚于事务处理的开始时间点,也可以是相同的。
松散定时模型支持时间解耦,模型的一部分可以在当前仿真事件之前运行,直到一个需要与其他部分同步的一个同步点。时间解耦降低了进程允许的仿真精度,但是有效的调高了模型仿真速度;松散定时模型建模方式是SC_THREAD进程,使用阻塞传输接口。以Jtag模型为例介绍松散定时模型的代码风格:
模块的头文件:
模块的源文件:
建立近似定时模型目的是支持近似时序或者时间精确的事务级模型,以便进行性能建模和体系结构探索。近似定时模型使用非阻塞传输接口,该接口允许事务分多个阶段执行,根据TLM协议可分为四个阶段:begin_req,end_req,begin_resp,end_resp,在一些模型中根据一些特殊协议增加了其他阶段。
上述四个阶段的介绍:请求从发起方通过零个或多个互连向前传播到目标,响应从目标通过零个或多个互连向后传播到发起方。发起方有义务在发送begin_req之前设置通用有效负载的所有属性,并且不允许随后修改这些属性。仅允许目标在接收begin_req和发送begin_resp之间修改通用负载属性。
由于近似定时模型有四个不同的阶段,因此它们能够对接受延迟和延迟进行建模。由于一个近似定时模型涉及模块较多,这里以begin_req阶段的模型为例介绍代码风格:
三种事务级模型在需要的情况下可以对底层代码进行修改,使他们可以相互转换位。例如,松散定时模型可以加入wait(xx,xx)等语句,让模型具有近似定时模型的特性。
寄存器传输级模型是可以进行综合的硬件模型,构建寄存器传输级模型的目的是架构最终确定但需要进一步验证规范。寄存器传输级模型建模方式时SC_METHOD进程;一个完整的硬件电路会被抽象为多个模块相互连接而成,每个模块通过端口通信,内部可以通过信号连接多个进程、子模块。以2输入与门模型为例介绍寄存器传输级模型代码风格:
将构建的组件模型存入模型库。
还包括数据库配置模块,用于为组件模型配置参数数据以及激励数据。
模型层中的参数组件用于产生事务级激励、事务流程定义与控制处理、资源与架构模型、结构输出。通过使用参数库内的参数名,可以将参数连接到同一级别块中的等效参数,参数使用了字符串进行定义。对于生成的模型通过将变量替换为参数化的字符串,实现参数的可配置性。参数可以添加到任何模型和层次结构的任何级别,可以是包含其他参数名的表达式。在模拟过程中,参数是恒定的,即在模拟开始时进行评估,在各个过程中保持不变。
模型层提供数据写入写出模块。模型中会设置基于正则表达式的解析函数,Excel、XML、Json等多种文本格式的文件都可以作为激励源来给模型输入数据。也可以对于需要的输出参数和数据生成excel、XML、文本文档。
模型通过跨模块的函数调用来实现发送数据模拟的。设计了一个名为DataStruct的通用数据结构用于传递数据,这些数据可以整形、浮点型、字符串、向量、数据或者矩阵。这种开放式的数据格式方便了性能和体系结构的分析。
还包括分析库配置模块,用于采集模型运行信息,根据采集到的运行信息综合分析***性能。
在一个可选地实施方式中,分析库配置模块,用于在模型中部署探针,拖放的模型会实例化,内部会启动探针工具,允许在模型的任何节点放置探针,根据部署的探针采集模型的参数信息、名称信息、连接方式信息等多种信息,并根据采集到的信息生成统计报告或图表。
在一个可选地实施方式中,分析库配置模块,用于构建电源模型,根据电源模型监测***计算次数,根据计算次数分析***功耗。
电源模型是***级的控制和分析模型。可以监测整个模型的动态电源。电源模型是一种类似分布式的网络***,使设备的动态状态变化信息更新瞬时、平均和累计功率,功耗可以在现有的***模型上分析,并为每个设备或者模型输入特定的功耗属性。功耗分析需要在模块中放置相应的属性信息来执行。通过该模型可以估算出整个***或者特定模型的瞬时和平均功耗,该模型既可以用于标准化的组件也可以处理定制组件。
还用于构建细化统计模型,根据细化统计模型采集***带宽信息、延迟信息、吞吐量信息以及利用率信息中的一种或多种性能数据,并根据采集的性能数据生成饼状图、条状图或曲线图。
模型层建立了细化统计模型,细化统计模型是针对想要详细的探索潜在架构问题而设计的。高抽象级的事务级模型对于功能的精确度范围为60%~80%,对于模型的事务流的准确度范围为80%左右,如果加上详细的处理信息,足以在峰值利用率、吞吐量或者延迟方面做出有价值的设计策略。
细化统计模型的性能分析模块使用资源和处理模块来构建。性能分析模型监测***的整体指标,如***带宽信息、延迟信息、吞吐量信息以及利用率信息等。该模型是基于事件触发的,通过记录工作负载和流量控制,来研究分析模型的容量限制和***瓶颈。
细化统计模型包括绘图模块,绘图模块可以将关键信息和指定的信号的值输出图表。该模块通过Qt自带的QChart模块设计,支持饼状图、条状图、曲线图(折线图)等。通过定时器的槽和获取模型数据的方法,曲线图可以实时反应模型的性能。
分析模块还用于获取***的仿真运行结果,对仿真结果进行分析,模型的仿真结果打印信息,使用sc_report_handler函数生成打印信息和相应的打印报告。模型的仿真波形信息,通过sc_trance函数生成波形文件,而后调用linux***的vcs+verdi或者windows的gtkwave工具用于显示波形。模型的仿真延时使用sc_time类定义,也可以是自定义的宏或者字符串。对于模型使用标签来显示模型的延时信息。
在一个可选地实施方式中,模型库中构建有限状态机模型,同时提供API接口用于实现python脚本。有限状态机或者基于脚本的模块,可以进一步细化模型,如细化性能和模型分级。
本申请实施例提供的芯片仿真***还包括仿真层单元,用于对搭建的芯片模型执行仿真操作,并生成仿真运行结果。
仿真层中的仿真协议使用了SystemC的仿真核。仿真层控制和协调整个***的运行,并实现进程的并行运行。仿真内核是通过事件驱动的,这里的事件指SystemC的event,event是指特定时间发生的事件。
仿真层定义了一个分层模块,目的是使顶层***模型在***组件或者模块之间发送。对于时间的模拟,可以将本地模拟器图标添加到具有许多层次结构的大型模型中。
仿真层中提供了基于API的接口,以实现符合标准的Verilog、C/C++、Python等仿真器进行协同仿真。对于VHDL则可以与使用SystemC或者C++编程接口实现***的协同仿真。
本申请实施例中的交互层单元、模型层单元与仿真层单元之间互相解耦,具备高可扩展性。
根据本申请实施例提供的芯片仿真***,支持图形化界面,所画即所得,大幅降低使用门槛;同时支持代码编辑,兼顾简单易用性需求与复杂定制性需求。且自带常用电路结构模型,同时支持第三方同标准模型库,将使用者的工作重心从底层模型实现转向上层***架构分析。且***交互层、模型层、仿真层相互解耦,具备高可扩展性。
第二方面,本申请实施例提供了一种芯片仿真方法,如图3所示,包括如下步骤:
S301构建图形化交互界面,图形化交互界面具有动画显示效果,并在图形化交互界面设置多个交互窗口;
S302构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对组件模型进行参数配置和分类管理;
S303从组件模型中选择多个目标组件模型,对选择的目标组件模型进行连接,形成构建好的芯片模型;
S304对搭建的芯片模型执行仿真操作,并生成仿真运行结果。
在一个示例性实施方式中,构建一个芯片模型并进行仿真的步骤如下:
如图2所示,是交互层一个CPU和DRAM的通信示意图,其中左侧模型库区域,右上侧模型参数配置区域,右下侧命令输入及仿真打印信息,中部是模型编辑区域,上部是工具栏区域。
首先,工具栏区域选择新建项目文件,选择相应的保存路径和配置。
进一步地,在树形表格中定义数据结构字段。数据结构字段中的内容作为事务进行解析。
进一步地,选则模型库窗口的CPU模型、DRAM模型,拖动并放置在编辑窗口中。
进一步地,根据需求在右上侧配置模块中的参数。
进一步地,连接各个模型,并运行***。
进一步地,从库中拖放绘图组件和文本显示组件。
进一步地,可以使框图变成动画调试模拟,或者简单的查看***模型的动态操作。通过“动画执行”按钮,高亮显示执行组件来动画模型。
最后,运行后的结果会在右下角打印出来,如果需要更多可见信息,可以在代码窗口找到相应代码位置输入对应的C++或者SystemC命令。
需要说明的是,上述实施例提供的芯片仿真***在执行芯片仿真方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的芯片仿真***与芯片仿真方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种芯片仿真***,其特征在于,包括:
交互层单元,用于构建图形化交互界面,所述图形化交互界面具有动画显示效果,并在所述图形化交互界面设置多个交互窗口;
模型层单元,用于构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对所述组件模型进行参数配置和分类管理;
仿真层单元,用于对搭建的芯片模型执行仿真操作,并生成仿真运行结果,所述芯片模型为所述组件模型搭建的整体模型;
其中,所述交互层单元、模型层单元与仿真层单元之间互相解耦。
2.根据权利要求1所述的***,其特征在于,所述交互层单元中的图形化交互界面,包括:
主窗口,用于显示所述***的菜单栏和各种功能键;
库窗口,用于分类显示所述模型库中的多个组件模型;
全景窗口,用于显示当前编辑的芯片模型的全景;
编辑窗口,用于显示编辑组件模型的工作区;
代码窗口,用于同步显示组件模型的代码,包括图形化交互界面接收输入的组件模型,通过MVC模式调用编译组件,生成所述组件模型的代码,将生成的组件模型的代码在代码窗口显示;
信息窗口,用于显示所述芯片模型运行信息和运行的打印信息。
3.根据权利要求2所述的***,其特征在于,所述图形化交互界面,还包括:
悬浮文本框,用于自动弹出提示信息,所述提示信息包括所述芯片模型参数提示信息、运行状态提示信息以及错误提示信息。
4.根据权利要求3所述的***,其特征在于,所述错误提示信息,包括:
安装错误时的错误类型信息、错误位置信息;
组件模型设置异常时的名称信息、错误类型信息、错误序号信息以及解决方案信息;
***运行异常时的错误类型信息、错误序号信息以及解决方案信息。
5.根据权利要求1所述的***,其特征在于,所述模型层单元,包括:
模型库配置模块,用于预先编译多个与芯片设计相关的组件模型,将编译好的组件模型存入模型库,并采用目录式的方法对所述组件模型进行分类管理;
数据库配置模块,用于为所述组件模型配置参数数据以及激励数据;
分析库配置模块,用于采集芯片模型运行信息,根据采集到的运行信息综合分析***性能。
6.根据权利要求5所述的***,其特征在于,
所述组件模型包括事务级模型和寄存器传输级模型;
所述事务级模型包括非定时模型、松散定时模型和近似定时模型。
7.根据权利要求5所述的***,其特征在于,
所述数据库配置模块,用于根据配置的解析函数,解析Excel、XML、Json中的一种或多种文本格式的数据,根据解析的数据得到芯片模型输入的激励数据,或者根据配置的解析函数,将输出的数据转化成Excel、XML、Json中的一种或多种文本格式的数据。
8.根据权利要求5所述的***,其特征在于,所述分析库配置模块,用于在芯片模型中部署探针,根据部署的探针采集芯片模型的参数信息、名称信息、连接方式信息,并根据采集到的信息生成统计报告。
9.根据权利要求5所述的***,其特征在于,
所述分析库配置模块,用于构建电源模型,根据所述电源模型监测***计算次数,根据所述计算次数分析***功耗;
所述分析库配置模块,用于构建细化统计模型,根据所述细化统计模型采集***带宽信息、延迟信息、吞吐量信息以及利用率信息中的一种或多种性能数据,并根据采集的性能数据生成饼状图、条状图或曲线图。
10.一种芯片仿真方法,其特征在于,包括:
构建图形化交互界面,所述图形化交互界面具有动画显示效果,并在所述图形化交互界面设置多个交互窗口;
构建多个与芯片设计相关的组件模型,将构建的组件模型存入模型库,并对所述组件模型进行参数配置和分类管理;
从所述组件模型中选择多个目标组件模型,对选择的目标组件模型进行连接,形成构建好的芯片模型;
对搭建的芯片模型执行仿真操作,并生成仿真运行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211090629.0A CN116305713B (zh) | 2022-09-07 | 2022-09-07 | 一种芯片仿真***及仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211090629.0A CN116305713B (zh) | 2022-09-07 | 2022-09-07 | 一种芯片仿真***及仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116305713A true CN116305713A (zh) | 2023-06-23 |
CN116305713B CN116305713B (zh) | 2024-06-04 |
Family
ID=86811837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211090629.0A Active CN116305713B (zh) | 2022-09-07 | 2022-09-07 | 一种芯片仿真***及仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116305713B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852449A (en) * | 1992-01-27 | 1998-12-22 | Scientific And Engineering Software | Apparatus for and method of displaying running of modeled system designs |
CN101093392A (zh) * | 2006-06-20 | 2007-12-26 | 大连创亿科技发展有限公司 | 基于计算机在线或离线方法控制的数控***及运行方法 |
US20090043552A1 (en) * | 2007-08-09 | 2009-02-12 | Tomlinson Jr William Michael | Interactive simulation |
CN105677446A (zh) * | 2016-01-28 | 2016-06-15 | 中国电子科技集团公司第十研究所 | 分布式仿真平台的可视化建模方法 |
CN106055467A (zh) * | 2015-04-13 | 2016-10-26 | Arm 有限公司 | 逻辑分析 |
US20170039549A1 (en) * | 2014-04-18 | 2017-02-09 | Ingenico Group | Method for processing transaction data, device and corresponding program |
CN109691016A (zh) * | 2016-07-08 | 2019-04-26 | 卡列普顿国际有限公司 | 分布式事务处理及认证*** |
CN110941426A (zh) * | 2019-12-02 | 2020-03-31 | 苏州金蒲芦物联网技术有限公司 | 一种面向NB-IoT终端的图形化编程*** |
CN112988143A (zh) * | 2021-05-10 | 2021-06-18 | 苏州贝克微电子有限公司 | Eda软件在芯片设计中的图形化二次开发方法 |
CN113360388A (zh) * | 2021-06-23 | 2021-09-07 | 中国航空无线电电子研究所 | 对无人机地面站软件的测试过程进行一体化管理的方法 |
CN113377497A (zh) * | 2021-06-08 | 2021-09-10 | 湖北第二师范学院 | 一种基于服务虚拟化的服务开发*** |
CN113868999A (zh) * | 2021-09-27 | 2021-12-31 | 东智安通(北京)科技有限公司 | 芯片优化***及方法 |
-
2022
- 2022-09-07 CN CN202211090629.0A patent/CN116305713B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852449A (en) * | 1992-01-27 | 1998-12-22 | Scientific And Engineering Software | Apparatus for and method of displaying running of modeled system designs |
CN101093392A (zh) * | 2006-06-20 | 2007-12-26 | 大连创亿科技发展有限公司 | 基于计算机在线或离线方法控制的数控***及运行方法 |
US20090043552A1 (en) * | 2007-08-09 | 2009-02-12 | Tomlinson Jr William Michael | Interactive simulation |
US20170039549A1 (en) * | 2014-04-18 | 2017-02-09 | Ingenico Group | Method for processing transaction data, device and corresponding program |
CN106055467A (zh) * | 2015-04-13 | 2016-10-26 | Arm 有限公司 | 逻辑分析 |
CN105677446A (zh) * | 2016-01-28 | 2016-06-15 | 中国电子科技集团公司第十研究所 | 分布式仿真平台的可视化建模方法 |
CN109691016A (zh) * | 2016-07-08 | 2019-04-26 | 卡列普顿国际有限公司 | 分布式事务处理及认证*** |
CN110941426A (zh) * | 2019-12-02 | 2020-03-31 | 苏州金蒲芦物联网技术有限公司 | 一种面向NB-IoT终端的图形化编程*** |
CN112988143A (zh) * | 2021-05-10 | 2021-06-18 | 苏州贝克微电子有限公司 | Eda软件在芯片设计中的图形化二次开发方法 |
CN113377497A (zh) * | 2021-06-08 | 2021-09-10 | 湖北第二师范学院 | 一种基于服务虚拟化的服务开发*** |
CN113360388A (zh) * | 2021-06-23 | 2021-09-07 | 中国航空无线电电子研究所 | 对无人机地面站软件的测试过程进行一体化管理的方法 |
CN113868999A (zh) * | 2021-09-27 | 2021-12-31 | 东智安通(北京)科技有限公司 | 芯片优化***及方法 |
Non-Patent Citations (3)
Title |
---|
GUO CUI, ET AL.: "MD: A New Mobile User Interface Model", 《ADVANCED MATERIALS RESEARCH VOLS》, 4 July 2011 (2011-07-04) * |
李辉 等: "多路***Cache一致性验证中的错误追踪定位技术", 《计算机工程与科学》, 31 July 2022 (2022-07-31) * |
莫槟滔: "智能变电站二次***仿真装置的软件设计与实现", 《中国优秀硕士学位论文全文数据库 工程科技II辑》, no. 2, pages 243 - 245 * |
Also Published As
Publication number | Publication date |
---|---|
CN116305713B (zh) | 2024-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9335977B2 (en) | Optimization of a data flow program based on access pattern information | |
EP2598989B1 (en) | Developing programs in a graphical specification and constraint language | |
US9904523B2 (en) | Graphical development and deployment of parallel floating-point math functionality on a system with heterogeneous hardware components | |
CN104679488B (zh) | 一种流程定制开发平台及流程定制开发方法 | |
KR100186869B1 (ko) | 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론 | |
US20160117158A1 (en) | Global Optimization and Verification of Cyber-Physical Systems Using Floating Point Math Functionality on a System with Heterogeneous Hardware Components | |
US20140122028A1 (en) | Self-testing graphical component algorithm specification | |
US8204732B1 (en) | Modeling communication interfaces for multiprocessor systems | |
US11860227B2 (en) | Machine learning delay estimation for emulation systems | |
US11593540B1 (en) | Systems and methods for performing concurrency analysis in simulation environments | |
Goli et al. | Automated design understanding of SystemC-based virtual prototypes: Data extraction, analysis and visualization | |
CN115130407A (zh) | 用于在处理器与fpga之间划分仿真模型的方法 | |
Tokunaga et al. | IDF-Autoware: Integrated development framework for ROS-based self-driving systems using MATLAB/Simulink | |
US9454627B1 (en) | Systems and methods for optimizing executable models for hardware synthesis | |
CN116305713B (zh) | 一种芯片仿真***及仿真方法 | |
US11270051B1 (en) | Model-based design and partitioning for heterogeneous integrated circuits | |
US8762120B1 (en) | Model-based variable alignment in a simulated environment | |
Horváth et al. | Hardware-software allocation specification of ima systems for early simulation | |
Hu et al. | A performance prototyping approach to designing concurrent software architectures | |
US8849641B1 (en) | Eliminating spurious algebraic loops | |
US20230114858A1 (en) | Circuit design simulation and clock event reduction | |
US11727178B2 (en) | Under test pin location driven simultaneous signal grouping and pin assignment | |
Ong et al. | Interactive codesign for real-time embedded control systems: task graph generation from SA/VHDL models | |
CN118394176A (zh) | 一种基于Python的时钟网络自动生成的方法和装置 | |
US8635055B1 (en) | Composite signal configuration element for modeling environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Ye Le Inventor after: Zhang Yang Inventor after: Cheng Ting Inventor after: Wang Xinyi Inventor after: Lan Xingye Inventor after: Ma Shuaiting Inventor before: Zhang Yang Inventor before: Wang Xinyi Inventor before: Lan Xingye Inventor before: Ma Shuaiting |
|
GR01 | Patent grant | ||
GR01 | Patent grant |