CN115809620A - 仿真逻辑系统设计的方法、电子设备和存储介质 - Google Patents
仿真逻辑系统设计的方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115809620A CN115809620A CN202211507778.2A CN202211507778A CN115809620A CN 115809620 A CN115809620 A CN 115809620A CN 202211507778 A CN202211507778 A CN 202211507778A CN 115809620 A CN115809620 A CN 115809620A
- Authority
- CN
- China
- Prior art keywords
- resource
- resources
- currently available
- simulation
- logic system
- 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
- 238000013461 design Methods 0.000 title claims abstract description 163
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004088 simulation Methods 0.000 claims abstract description 174
- 238000013507 mapping Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 description 27
- 238000012795 verification Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请提供一种仿真逻辑系统设计的方法、电子设备和存储介质。所述方法包括:获取所述逻辑系统设计的描述和预设仿真资源的描述;根据所述逻辑系统设计的描述和所述预设仿真资源的描述编译所述逻辑系统设计,以确定仿真所述逻辑系统设计的资源的约束条件,所述约束条件指示分配所述预设仿真资源以仿真所述逻辑系统设计的方式;确定当前可用仿真资源;根据所述当前可用仿真资源和所述约束条件,确定使用所述当前可用仿真资源仿真所述逻辑系统设计的分配方式;以及根据所述分配方式分配所述当前可用仿真资源以仿真所述逻辑系统设计。
Description
技术领域
本申请涉及系统仿真和验证的技术领域,尤其涉及一种仿真逻辑系统设计的方法、电子设备和存储介质。
背景技术
仿真工具(例如,原型验证板或硬件仿真工具(emulator))可以原型化(prototype)并且调试一个包括一个或多个模块的逻辑系统设计。所述逻辑系统设计可以是,例如,用于供专门应用的集成电路(Application Specific Integrated Circuit,简称ASIC)或者片上系统芯片(System-On-Chip,简称SOC)的设计。因此,在仿真工具中被测试的逻辑系统设计又可以称为待测设计(Design Under Test,简称DUT)。仿真工具可以通过一个或多个可配置组件(例如,现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA))来仿真该待测设计,包括执行该待测设计的各种操作,从而在制造之前就测试并验证待测设计的各个模块的功能。通过在仿真工具上外接多种外设子卡还可以测试待测设计与各种外设作为一个完整系统进行运行的效果。
通常,当仿真一个逻辑系统设计时,仿真工具往往会在编译时就占用预设的仿真资源,并在编译后将该预设的资源分配给该逻辑系统设计以运行该逻辑系统设计。编译逻辑系统设计往往会耗费比较长的时间(例如,几十分钟到十几个小时)。编译的长时间会导致该预设的资源被长期占用,降低资源的利用率。仿真工具还可以在编译时不占用该预设资源,当该设计编译完成进入运行阶段时,占用该预设资源给逻辑系统设计以运行。这种情况下,该预设资源可能正在被其他设计占用。此时,该设计需要等待其他设计运行完并释放该预设资源之后才能使用该预设资源,拖慢了仿真速度。
无论是资源长期被占用,还是资源被其他设计占用而出现等待的情况,都会导致系统的运行效率低下。因此,如何合理分配仿真资源,确保逻辑系统设计的仿真过程的及时运行,是一个亟待解决的问题。
发明内容
本申请的第一方面提供一种仿真逻辑系统设计的方法,所述方法包括:获取所述逻辑系统设计的描述和预设仿真资源的描述;根据所述逻辑系统设计的描述和所述预设仿真资源的描述编译所述逻辑系统设计,以确定仿真所述逻辑系统设计的资源的约束条件,所述约束条件指示分配所述预设仿真资源以仿真所述逻辑系统设计的方式;确定当前可用仿真资源;根据所述当前可用仿真资源和所述约束条件,确定使用所述当前可用仿真资源仿真所述逻辑系统设计的分配方式;以及根据所述分配方式分配所述当前可用仿真资源以仿真所述逻辑系统设计。
本申请的第二方面提供一种电子设备,包括:存储器,用于存储一组指令;以及至少一个处理器,配置为执行所述一组指令以使得所述电子设备执行如第一方面所述的方法。
本申请的第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如第一方面所述的方法。
本申请提供的一种仿真逻辑系统设计的方法、电子设备和存储介质,通过在验证项目的编译阶段将预设资源和编译结果转换为对资源的约束条件,使得仿真资源无需提前占用具体的资源,而是可以待编译完成后根据约束条件来获取验证项目所需要的等同的资源来执行验证项目,从而提升系统中的资源利用率以及仿真速度。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的示例性电子设备的结构示意图。
图2示出了根据本申请实施例的示例性仿真工具的示意图。
图3A示出了根据本申请实施例的示例性预设仿真资源示意图。
图3B示出了根据本申请实施例的示例性设计与资源的映射关系的示意图。
图3C示出了根据本申请实施例的的示例性当前可用仿真资源的示意图。
图4示出了根据本申请实施例的示例性一种用于仿真逻辑系统设计的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
如上所述,仿真可以是指将逻辑系统设计进行编译之后使用仿真工具运行。而编译逻辑系统设计往往会耗费比较长的时间(例如,几十分钟到十几个小时)。同时,在进行编译的时候需要对验证项目所需的资源进行配置。这样,编译的结果是与预先配置的资源相对应的。如果运行时的资源与预先配置的资源不匹配,则可能导致验证项目的运行失败。因此,为了确保编译后的结果可以得到执行,通常有两种做法来保证资源匹配。
一种做法是,仿真工具会在编译时就占用预设的仿真资源,并在编译后将该预设的资源分配给该逻辑系统设计以运行该逻辑系统设计。该预设资源的实际使用时间可以是运行逻辑系统设计的时间段,但是,该预设的资源却从编译时就一直被占用。这样导致了仿真资源的利用率低下。
另一种做法是,仿真工具在编译时不占用预设的仿真资源,而是等到编译完成后,运行逻辑系统设计时才去占用该预设的仿真资源,此时可能出现该预设资源正在被其他设计占用的情况。这样,该逻辑系统设计需要等待其他设计运行完并释放该预设资源之后才能使用该预设资源,拖慢了仿真速度。
因此,如何合理分配仿真资源,确保逻辑系统设计的仿真过程的及时运行,是一个亟待解决的问题。有鉴于此,本申请提供了一种仿真逻辑系统设计的方法、电子设备和存储介质,通过在验证项目的编译阶段将预设资源和编译结果转换为对资源的约束条件,使得仿真资源无需提前占用具体的资源,而是可以待编译完成后根据约束条件来获取验证项目所需要的等同的资源来执行验证项目,从而提升系统中的资源利用率以及仿真速度。
图1示出了根据本申请实施例的电子设备100的结构示意图。电子设备100可以是运行仿真工具的电子设备。如图1所示,电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在电子设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在一些实施例中,用于仿真测试设计的仿真测试系统可以是存储器104中存储的计算机程序。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的仿真逻辑系统设计的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述电子设备架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该电子设备架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述电子设备架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了根据本公开实施例的示例性仿真系统200的示意图。
如图2所示,仿真系统200可以包括仿真工具202以及与仿真工具202连接的电子设备100。
仿真工具202是一种用于仿真待测设计(DUT)的硬件系统。仿真工具202可以是原型验证板或者硬件仿真工具(emulator)。一个待测设计可以包括多个模块。待测设计可以是组合逻辑电路、时序逻辑电路、或上述两者的组合。仿真工具202可以包括一个或多个可配置电路(例如,FPGA),用于仿真待测设计。
仿真工具202可以包括接口单元2022,用于与电子设备100通信地耦接,以进行电子设备100和仿真工具202之间的通信。在一些实施例中,接口单元2022可以包括具有电连接能力的一个或多个接口。例如,接口单元2022可以包括RS232接口、USB接口、LAN口、光纤接口、IEEE1394(火线接口)等。在一些实施例中,接口单元2022可以是无线网络接口。例如,接口单元2022可以是WIFI接口、蓝牙接口等。
电子设备100可以经由接口单元2022向仿真工具202传输编译后的DUT、调试指令等。仿真工具202也可以经由接口单元2022向电子设备100传输仿真数据等。
仿真工具202还可以包括存储器2024,用于存储在仿真过程中待测设计产生的仿真数据(例如,各种信号值)。在一些实施例中,仿真过程中待测设计产生的信号值可以直接被电子设备100读取。可以理解的是,存储器2024也可以独立于仿真工具202,例如,使用一种外接存储器。
除了连接到电子设备100,仿真工具202还可以经由接口单元2022连接到一个或多个子卡204。
子卡用于在使用仿真工具202进行原型验证时向DUT提供外设以构成完整的电子系统。原型验证是指在芯片流片之前,尽可能的还原芯片真实使用场景,验证芯片功能是否准确和完整的一种验证方式。子卡204可以包括存储器子卡(例如,提供DDR内存接口)、通信子卡(例如,提供多种网络接口或无线网卡接口)等。
电子设备100可以用于配置仿真工具202以仿真一个待测设计。该待测设计可以是一个完整的逻辑系统设计或一个完整逻辑系统设计的一个或多个模块。在一些实施例中,电子设备100可以是云计算系统中的一个虚拟电子设备。逻辑系统设计(例如,ASIC或者System-On-Chip)可以由硬件描述语言(例如Verilog、VHDL、System C、或System Verilog)设计。
电子设备100可以从用户接收仿真待测设计的请求。如上所述,待测设计可以包括一个或多个模块。电子设备100可以根据待测设计的描述和资源描述文件来编译待测设计,并且将编译后的待测设计在指定的仿真资源上进行仿真。资源描述文件用于配置仿真资源。待测设计的描述可以用硬件描述语言来完成。电子设备100可以基于待测设计的描述来进行综合,以生成,例如,待测设计的门级电路网表(未示出)。待测设计的该门级电路网表可以被载入仿真工具202中运行,进而可以在仿真工具202中形成与待测设计相对应的电路结构。因此,待测设计的电路结构可以根据该描述而获得,并且相应地,待测设计中的每个块的电路结构也可以类似地获得。
仿真系统200在进行编译的时候需要对验证项目所需的资源进行配置。这样,编译的结果是与预先配置的资源相对应的。
图3A示出了根据本申请实施例的示例性预设仿真资源300的示意图。
在一些实施例中,仿真系统200可以经由电子设备100获取逻辑系统设计304(即,待测设计)的描述和预设仿真资源的描述。仿真逻辑系统设计304所需的资源可以是仿真系统200中的硬件仿真工具或者原型验证板等。预设仿真资源300的描述例如可以是图2中所示的资源描述文件206。资源描述文件206可以描述仿真逻辑系统设计304所需的仿真资源以及资源配置。例如,资源描述文件206可以描述仿真所需要的FPGA、系统时钟运行的频率、所需要的子卡、或子卡的连接方式等。
如图3A所示,预设仿真资源300可以包括板卡301和302、分别连接到板卡301和302的子卡3011和3021。板卡301和302可以是原型验证板或者硬件仿真工具。板卡301和302可以进一步包括一个或多个FPGA。子卡3011和3021可以用于向仿真系统200提供多种接口以及对应的硬件能力。板卡301和子卡3011可以形成预设子资源305,板卡302和子卡3021可以形成预设子资源306。在一些实施例中,即使板卡301和302完全相同,当连接到板卡301和302的子卡不同时,即,子卡3011和子卡3021不同时,包括板卡301和子卡3011的预设子资源305与包括板卡302和子卡3021的预设子资源306是不同的资源。通常,预设子资源305与306通信地耦接以使得预设子资源305与306可以作为预设仿真资源300而整体地运行验证项目。板卡301和302上可以分别具有使能预设子资源305与306通信地耦接的接口a、b和d、e。板卡301和302的连接关系可以是接口a与d相连接、接口b与e相连接。
在一些实施例中,仿真系统200可以将逻辑系统设计304编译为在板卡301上运行的设计3041和在板卡302上运行的设计3042。此时,设计3041和3042可以是编译逻辑系统设计304所得到的。可以理解的是,将逻辑系统设计304编译为设计3041和3042(即,逻辑系统设计304的分割)可以是与资源描述文件206中的仿真逻辑系统设计304所需的仿真资源以及资源配置有关的。
图3B示出了根据本申请实施例的示例性设计与资源的映射关系310的示意图。
在根据逻辑系统设计304的描述和资源描述文件206进行编译的过程中,仿真系统200可以确定运行设计3041所需要的资源311,以及运行设计3042所需的资源312。其中,资源311的资源量可以是运行设计3041所需要的最小资源量;资源312的资源量可以是运行设计3042所需要的最小资源量。可以理解的是,资源311与资源312可以是一个原型验证卡或者硬件仿真器以及其附属子卡的一部分。这样,仿真系统200可以确定仿真逻辑系统设计304的资源的约束条件。该约束条件可以包括设计3041到资源311的映射关系、设计3042到资源312的映射关系,以及资源311和312的资源量(即,分别运行设计3041和3042的最小资源量)。资源311和312的资源量可以例如包括:资源311和312上可用FPGA的门的数量、可用时钟源、可用I/O接口的种类和数量、资源311和312之间的连接方式等。
在一些实施例中,该约束条件还可以包括资源311和312的连接关系。该连接关系可以是接口a与d相连接、接口b与e相连接。
图3C示出了根据本申请实施例的的示例性当前可用仿真资源320的示意图。
如上所述,在本申请实施例中,仿真系统200在编译时不占用预设仿真资源300,而是等到编译完成后,运行逻辑系统设计时才去占用预设仿真资源300,此时可能出现预设仿真资源300正在被其他设计占用的情况。如图3C所示,预设仿真资源300中的板卡301和302可能正在被占用(被占用的板卡301和302以灰色背景展示)。为了运行编译完成的逻辑系统设计304,仿真系统200可以寻找板卡301和302之外的其他资源来执行运行过程。
仿真系统200可以在系统资源中确定当前可用仿真资源320。当前可用仿真资源320可以包括板卡321-324、子卡3011和3021等。根据当前可用仿真资源320和上述约束条件,仿真系统200可以确定使用当前可用仿真资源320仿真设计304的分配方式。
仿真系统200可以根据约束条件将可用仿真资源320划分为多个当前可用子资源。例如,仿真系统200可以在可用仿真资源320中确定一个或多个当前可用子资源。根据约束条件确定当前可用子资源的方式可以有多种。在一些实施例中,仿真系统200可以根据约束条件确定短板资源,该短板资源可以是仿真设计304所必需的资源但是也最为短缺的资源。并且仿真系统200可以根据该短板资源来确定当前可用子资源。由于短板资源可以是仿真设计304所必需的资源,因此,根据该短板资源来确定仿真设计304所对应的当前可用子资源可以加快查找速度。
例如,仿真系统200可以确定子卡3011是运行设计3041的短板资源,并且在可用仿真资源320找到可用的子卡3011。在找到子卡3011之后,仿真系统200可以进一步判断与该子卡3011连接的板卡321上的资源量是否满足运行设计3041对于板卡最低资源量的要求,进而可以确定与设计3041对应的当前可用子资源。例如,板卡321和子卡3011形成一个当前可用子资源。设计3041与资源311具有映射关系,因而,该当前可用子资源可以是与资源311对应的当前可用子资源。类似地,板卡321和子卡3021形成另一个当前可用子资源。该另一个当前可用子资源可以是与资源312对应的当前可用子资源。在这些当前可用子资源中,仿真系统200可以确定与资源311对应的板卡321和子卡3011、以及与资源312对应的板卡322和子卡3021作为运行逻辑系统设计304的资源。
由于资源311的资源量可以是运行设计3041所需要的最小资源量;资源312的资源量可以是运行设计3042所需要的最小资源量。所以,与资源311对应的板卡321上的资源量可以大于或等于资源311的资源量;与资源312对应的板卡322上的资源量可以大于或等于资源312的资源量。即,板卡321和322上的资源可以分别满足运行设计3041和3042所需的资源条件。
需要说明的是,针对不同的设计,在运行时所需的子卡可以是不同的,因此,前述实施例以子卡3011和3021未被占用为例进行说明。可以理解,在一些实施例中,当子卡3011和/或3021被占用时,还可以查找其他的可用子卡来作为当前可用资源。此外,前述实施例以子卡作为短板资源来进行说明,实际上,短板资源还可以包括很多其他资源,例如,具有接口a的板卡等,因此不局限于子卡。
在一些实施例中,如图3C所示,板卡321上可以包括接口a、b和c、板卡322可以包括接口d、e和f,以使能接口a与d连接、接口b与e连接。仿真系统200根据接口a与d、接口b与e的连接关系可以建立板卡321和板卡322的连接。这样,板卡321和板卡322的连接关系也可以满足资源311和312之间的连接关系。
因此,上述分配方式可以是将板卡321和子卡3011分配给与资源311具有映射关系的设计3041;以及将板卡322和子卡3021分配给与资源312具有映射关系的设计3042。这样,仿真系统200可以分别在板卡321和322上运行编译完成的设计3041和3042。
回到图3A,在一些实施例中,仿真系统200可以将仿真逻辑系统设计304所需的板卡301和302之间的连接关系进行模型化,记为G<V,E>。其中,V可以表示板卡信息,E可以表示板卡之间的连接关系,例如,板卡301与302之间的连接关系。板卡301和302的连接关系可以与资源311和312的连接关系一致。这样,仿真系统200可以将仿真逻辑系统设计304所需的资源以图结构进行展开,其中,每个板卡可以视为图中的一个节点,不同板卡之间的连线可以视为图中的一条边。根据连线的不同属性,仿真系统200可以确定每个边的约束。例如,连线为电缆(cable)时,约束可以是连接点、连接类型、连接长度等;连线为插卡(card)时,约束可以是该插卡的描述。
回到图3C,类似地,仿真系统200可以将当前可用仿真资源320中板卡之间的连接关系进行模型化,从而将可用仿真资源320中的资源同样以图结构进行展开。
这样,在当前可用仿真资源320中确定运行逻辑系统设计304所需的资源的过程可以等效为仿真逻辑系统设计304所需的资源图在可用仿真资源320的资源图中的子图匹配问题。仿真系统200可以将仿真逻辑系统设计304所需的资源图作为子图。例如,该子图可以是从图3A模型化得到的两个节点和该两个节点之间具有两条连接线的资源图。该两条连接线可以分别对应图3A中所示的接口a与d的连接、接口b与e的连接。仿真系统200可以使用子图查找的方法在可用仿真资源320的资源图中确定与资源311对应的板卡321和与资源312对应的板卡322,并且板卡321和322的连接关系可以兼容资源311和资源312的连接关系。例如,板卡321和322为两个节点,且该两个节点之间具有三条连接线。这三条连接线可以分别对应图3C中所示的接口a与d的连接、接口b与e的连接、接口c与f的连接。即,这三条连接线可以兼容从图3A模型化得到的两条连接线的连接关系。
这样,仿真系统200通过在验证项目的编译阶段将预设资源和编译结果转换为对资源的约束条件,使得仿真资源无需提前占用具体的资源,而是可以待编译完成后根据约束条件来获取验证项目所需要的等同的资源来执行验证项目,从而提升了系统中的资源利用率以及仿真速度。
图4示出了根据本申请实施例的示例性一种用于仿真逻辑系统设计的方法400的流程图。方法400可由图2所示的仿真系统200实施。方法400可以包括如下步骤。
在步骤402,仿真系统200可以获取该逻辑系统设计(例如,图2或图3A中的设计304)的描述和预设仿真资源(例如,图3A中的预设仿真资源300)的描述(例如,图2中的资源描述文件206)。
在步骤404,仿真系统200根据该逻辑系统设计的描述和该预设仿真资源的描述可以编译该逻辑系统设计,以确定仿真该逻辑系统设计的资源的约束条件。该约束条件可以指示分配该预设仿真资源以仿真该逻辑系统设计的方式。
在一些实施例中,该预设仿真资源(例如,图3A中的预设仿真资源300)可以包括第一预设子资源(例如,图3A中的预设子资源305)和第二预设子资源(例如,图3A中的预设子资源306)。仿真系统200根据该第一预设子资源和该第二预设子资源可以将该逻辑系统设计编译为在该第一预设子资源上运行的第一部分(例如,图3A中的设计3041)和在该第二预设子资源上运行的第二部分(例如,图3A中的设计3042)。其中,该第一部分和该第二部分可以是编译该逻辑系统设计所得到的。仿真系统200根据该第一部分和该第二部分,可以确定运行该第一部分所需的第一资源(例如,图3B中的资源311)和运行该第二部分所需的第二资源(例如,图3B中的资源312)。其中,该第一资源的资源量可以是运行该第一部分所需的最小资源量;该第二资源的资源量可以是运行该第二部分所需的最小资源量。仿真系统200可以确定该约束条件。该约束条件可以包括该第一部分到该第一资源的第一映射关系(例如,图3B中的设计3041到资源311的映射关系)、该第二部分到该第二资源的第二映射关系(例如,图3B中的设计3042到资源312)和该第一资源、该第二资源的资源量(例如,可用FPGA的门的数量、可用时钟源、可用I/O接口的种类和数量、资源311和312之间的连接方式等)。
在步骤406,仿真系统200可以确定当前可用仿真资源(例如,图3C中的当前可用仿真资源320)。例如,当前可用仿真资源320可以包括板卡321-324、子卡3011和3012等。
在步骤408,仿真系统200根据该当前可用仿真资源和该约束条件,可以确定使用该当前可用仿真资源仿真该逻辑系统设计的分配方式(例如,分配图3C中的板卡321和子卡3011、板卡322和子卡3021给逻辑系统设计304以仿真逻辑系统设计304)。
在一些实施例中,仿真系统200根据该约束条件可以将该当前可用仿真资源(例如,图3C中的当前可用仿真资源320)划分为多个当前可用子资源(例如,图3C中的板卡321和子卡3011可以形成一个当前可用子资源,图3C中的板卡321和子卡3021可以形成另一个当前可用子资源)。仿真系统200可以在该多个当前可用子资源中确定与该第一资源(例如,图3B或图3C中的资源311)对应的第一当前可用子资源(例如,图3C中的板卡321和子卡3011)以及与该第二资源(例如,图3B或图3C中的资源312)对应的第二当前可用子资源(例如,图3C中的板卡322和子卡3021)。
在一些实施例中,该约束条件可以进一步包括该第一资源和该第二资源的连接关系(例如,图3B中的资源311和资源312之间的连接关系,即,接口a与d相连接、接口b与e相连接)。仿真系统200所确定的该第一当前可用资源和该第二当前可用子资源可以包括使能该连接关系的接口(例如,图3C中的板卡321包括接口a、b,板卡322包括接口d、e)。
在一些实施例中,仿真系统200可以将仿真逻辑系统设计304所需的资源之间的连接关系和当前可用仿真资源之间的连接关系模型化为节点和连接各节点的边。仿真系统200可以将仿真逻辑系统设计304所需的资源和当前可用仿真资源以图结构进行展开。仿真系统200可以将仿真逻辑系统设计304所需的资源图作为子图,使用子图查找的方法在该多个当前可用子资源中确定与该第一资源对应的第一当前可用子资源以及与该第二资源对应的第二当前可用子资源。例如,仿真逻辑系统设计304需要如图3A所示的具有连接关系的板卡301和302。该连接关系可以包括接口a连接接口d、接口b连接接口e。仿真系统200可以以两个节点和该两个节点之间具有两条连接线的资源图作为子图,在如图3C所示的可用仿真资源320的资源图中查找相匹配的子图。仿真系统200可以在该多个当前可用子资源中确定具有包括接口a连接接口d、接口b连接接口e的连接关系的板卡321和322作为运行逻辑系统设计304的资源。
在步骤410,仿真系统200根据该分配方式可以分配该当前可用仿真资源以仿真该逻辑系统设计。
在一些实施例中,仿真系统200可以分别分配该第一部分和该第二部分到该第一当前可用子资源和该第二当前可用子资源(例如,分配图3C中的设计3041到板卡321、分配图3C中的设计3042到板卡322)。仿真系统200在该第一当前可用子资源和该第二当前可用子资源上可以分别运行该第一部分和该第二部分。由于该第一部分和该第二部分可以是编译该逻辑系统设计所得到的,所以该第一部分和该第二部分在该第一当前可用子资源和该第二当前可用子资源上可以直接运行,而不用再次进行编译。
在一些实施例中,该第一当前可用子资源的资源量(例如,图3C中的板卡321的接口资源)可以大于或等于该第一资源的资源量,该第二当前可用子资源的资源量(例如,图3C中的板卡322的接口资源)可以大于或等于该第二资源的资源量。
在一些实施例中,仿真系统200根据该连接关系(例如,接口a与d连接、接口b与e连接)可以建立该第一当前可用子资源和该第二当前可用子资源的连接(例如,图3C中的板卡321的接口a与板卡322的接口d连接,板卡321的接口b与板卡322的接口e连接)。这样,该第一当前可用子资源与该第二当前可用子资源的连接关系也可以满足该第一资源与该第二资源的连接关系,以确保该第一当前可用子资源与该第二当前可用子资源可以作为整体资源来运行验证项目。
本申请实施例还提供一种电子设备。该电子设备可以是图1的电子设备100。该电子设备100可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行方法400。
本申请实施例还提供一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使该电子设备执行方法400。
上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种仿真逻辑系统设计的方法,包括:
获取所述逻辑系统设计的描述和预设仿真资源的描述;
根据所述逻辑系统设计的描述和所述预设仿真资源的描述编译所述逻辑系统设计,以确定仿真所述逻辑系统设计的资源的约束条件,所述约束条件指示分配所述预设仿真资源以仿真所述逻辑系统设计的方式;
确定当前可用仿真资源;
根据所述当前可用仿真资源和所述约束条件,确定使用所述当前可用仿真资源仿真所述逻辑系统设计的分配方式;以及
根据所述分配方式分配所述当前可用仿真资源以仿真所述逻辑系统设计。
2.如权利要求1所述的方法,其中,所述预设仿真资源包括第一预设子资源和第二预设子资源,根据所述逻辑系统设计的描述和所述预设仿真资源的描述编译所述逻辑系统设计,以确定仿真所述逻辑系统设计的资源的约束条件进一步包括:
根据所述第一预设子资源和所述第二预设子资源将所述逻辑系统设计编译为在所述第一预设子资源上运行的第一部分和在所述第二预设子资源上运行的第二部分,其中,所述第一部分和所述第二部分为编译后的所述逻辑系统设计的一部分;
根据所述第一部分和所述第二部分,确定运行所述第一部分所需的第一资源和运行所述第二部分所需的第二资源;以及
确定所述约束条件,所述约束条件包括所述第一部分到所述第一资源的第一映射关系、所述第二部分到所述第二资源的第二映射关系和所述第一资源、所述第二资源的资源量。
3.如权利要求2所述的方法,其中,根据所述当前可用仿真资源和所述约束条件,确定使用所述当前可用仿真资源仿真所述逻辑系统设计的分配方式进一步包括:
根据所述约束条件将所述当前可用仿真资源划分为多个当前可用子资源;以及
在所述多个当前可用子资源中确定与所述第一资源对应的第一当前可用子资源以及与所述第二资源对应的第二当前可用子资源。
4.如权利要求3所述的方法,其中,根据所述分配方式分配所述当前可用仿真资源以仿真所述逻辑系统设计进一步包括:
分别分配所述第一部分和所述第二部分到所述第一当前可用子资源和所述第二当前可用子资源;以及
在所述第一当前可用子资源和所述第二当前可用子资源上分别运行所述第一部分和所述第二部分。
5.如权利要求4所述的方法,其中,所述第一当前可用子资源的资源量大于或等于所述第一资源的资源量,所述第二当前可用子资源的资源量大于或等于所述第二资源的资源量。
6.如权利要求2-5的任一项所述的方法,其中,所述约束条件进一步包括所述第一资源和所述第二资源的连接关系,所述第一当前可用子资源和所述第二当前可用子资源包括使能所述连接关系的接口。
7.如权利要求6所述的方法,其中,根据所述分配方式分配所述当前可用仿真资源以仿真所述逻辑系统设计进一步包括:
根据所述连接关系建立所述第一当前可用子资源和所述第二当前可用子资源的连接。
8.如权利要求3所述的方法,其中,在所述多个当前可用子资源中确定与所述第一资源对应的第一当前可用子资源以及与所述第二资源对应的第二当前可用子资源进一步包括:
使用子图查找的方法在所述多个当前可用子资源中确定与所述第一资源对应的第一当前可用子资源以及与所述第二资源对应的第二当前可用子资源。
9.一种电子设备,包括:
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行所述一组指令以使得所述电子设备执行如权利要求1至8任一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子设备的一组指令,所述一组指令在被执行时使得所述电子设备执行权利要求1至8任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211507778.2A CN115809620B (zh) | 2022-11-25 | 2022-11-25 | 仿真逻辑系统设计的方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211507778.2A CN115809620B (zh) | 2022-11-25 | 2022-11-25 | 仿真逻辑系统设计的方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115809620A true CN115809620A (zh) | 2023-03-17 |
CN115809620B CN115809620B (zh) | 2023-11-14 |
Family
ID=85484344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211507778.2A Active CN115809620B (zh) | 2022-11-25 | 2022-11-25 | 仿真逻辑系统设计的方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809620B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454835A (zh) * | 2023-09-07 | 2024-01-26 | 芯华章科技(厦门)有限公司 | 保存和读取波形数据的方法、电子设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122866A (zh) * | 2007-09-12 | 2008-02-13 | 中兴通讯股份有限公司 | 集成开发环境中的程序代码编译方法 |
CN105511866A (zh) * | 2015-12-01 | 2016-04-20 | 华东师范大学 | 基于并行结构感知技术的资源约束条件下调度寻优方法 |
CN111931445A (zh) * | 2020-10-09 | 2020-11-13 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器及存储介质 |
CN113448890A (zh) * | 2021-07-12 | 2021-09-28 | 贾晶艳 | 分布式仿真系统和控制方法 |
-
2022
- 2022-11-25 CN CN202211507778.2A patent/CN115809620B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122866A (zh) * | 2007-09-12 | 2008-02-13 | 中兴通讯股份有限公司 | 集成开发环境中的程序代码编译方法 |
CN105511866A (zh) * | 2015-12-01 | 2016-04-20 | 华东师范大学 | 基于并行结构感知技术的资源约束条件下调度寻优方法 |
CN111931445A (zh) * | 2020-10-09 | 2020-11-13 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器及存储介质 |
CN113448890A (zh) * | 2021-07-12 | 2021-09-28 | 贾晶艳 | 分布式仿真系统和控制方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454835A (zh) * | 2023-09-07 | 2024-01-26 | 芯华章科技(厦门)有限公司 | 保存和读取波形数据的方法、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115809620B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9147024B1 (en) | Hardware and software cosynthesis performance estimation | |
US10387605B2 (en) | System and method for managing and composing verification engines | |
CN113947050B (zh) | 用于生成形式验证环境的方法、电子设备及存储介质 | |
KR20210002537A (ko) | 이종 시스템 온 칩에 대한 소프트웨어 정의 다중 도메인 생성 및 분리 | |
US20140052430A1 (en) | Partitionless Multi User Support For Hardware Assisted Verification | |
TWI837026B (zh) | 驗證系統、驗證方法、電子設備以及儲存媒體 | |
US9880966B1 (en) | Encapsulating metadata of a platform for application-specific tailoring and reuse of the platform in an integrated circuit | |
CN112287569A (zh) | 用于仿真逻辑系统设计的方法、电子设备及存储介质 | |
CN115809620B (zh) | 仿真逻辑系统设计的方法、电子设备和存储介质 | |
CN112434478B (zh) | 仿真逻辑系统设计的虚拟接口的方法及相关设备 | |
CN117910398A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN112733478B (zh) | 用于对设计进行形式验证的装置 | |
CN112417800A (zh) | 集成电路处理方法、集成电路验证方法、装置及电子设备 | |
CN115688643A (zh) | 仿真逻辑系统设计的方法、设备及存储介质 | |
CN112232003B (zh) | 对设计进行仿真的方法、电子设备及存储介质 | |
WO2022198447A1 (zh) | 一种数字电路的综合方法及综合装置 | |
CN109460296B (zh) | 一种处理器的资源分配方法、装置和存储介质 | |
CN116401990B (zh) | 处理中断事件的方法、装置、系统和存储介质 | |
CN115828805A (zh) | 分割逻辑系统设计的方法、设备及存储介质 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 | |
CN116841697B (zh) | 处理mmio请求的方法、电子装置和存储介质 | |
CN118535316A (zh) | 在云系统上进行云计算的方法、装置及存储介质 | |
CN116738906B (zh) | 实现循环电路的方法、电路、装置和存储介质 | |
CN115983192B (zh) | 验证系统及配置验证系统的外设子卡资源的方法 | |
US12073155B2 (en) | Method and system for building hardware images from heterogeneous designs for electronic systems |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |