CN117933151A - 仿真逻辑系统设计的方法、电子装置和存储介质 - Google Patents
仿真逻辑系统设计的方法、电子装置和存储介质 Download PDFInfo
- Publication number
- CN117933151A CN117933151A CN202410151329.1A CN202410151329A CN117933151A CN 117933151 A CN117933151 A CN 117933151A CN 202410151329 A CN202410151329 A CN 202410151329A CN 117933151 A CN117933151 A CN 117933151A
- Authority
- CN
- China
- Prior art keywords
- system design
- logic system
- hardware
- clock cycle
- design
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004088 simulation Methods 0.000 claims abstract description 177
- 230000006870 function Effects 0.000 claims description 69
- 238000012795 verification Methods 0.000 claims description 55
- 238000013507 mapping Methods 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 15
- 230000002093 peripheral effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing 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
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 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
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000003867 tiredness Effects 0.000 description 1
- 208000016255 tiredness Diseases 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请提供一种在硬件仿真工具上仿真逻辑系统设计的方法,包括:编译所述逻辑系统设计以分别生成第一配置文件和多个第二配置文件;根据所述第一配置文件配置第一硬件仿真工具以仿真所述逻辑系统设计;获取所述逻辑系统设计的仿真在第一时钟周期的第一快照;根据所述多个第二配置文件配置多个第二硬件仿真工具以分别调试所述逻辑系统设计的多个部分;以及根据所述第一快照在所述多个第二硬件仿真工具上分别还原所述逻辑系统设计的一部分到所述第一时钟周期。
Description
技术领域
本申请涉及芯片验证技术领域,尤其涉及一种仿真逻辑系统设计的方法、电子装置和存储介质。
背景技术
硬件仿真工具(例如,原型验证板或硬件仿真器(emulator))可以原型化(prototype)并且调试一个包括一个或多个模块的逻辑系统设计。所述逻辑系统设计可以是,例如,用于供专门应用的集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)或者片上系统芯片(System-On-Chip,简称SOC)的设计。因此,在仿真工具中被测试的逻辑系统设计又可以称为待测设计(DesignUnderTest,简称DUT)。仿真工具可以通过一个或多个可配置组件(例如,现场可编程逻辑门阵列(FieldProgrammableGateArray,简称FPGA))来仿真该待测设计,包括执行该待测设计的各种操作,从而在制造之前就测试并验证待测设计的各个模块的功能。通过在仿真工具上外接多种外设子卡还可以测试待测设计与各种外设作为一个完整系统进行运行的效果。
硬件仿真工具可以包括,例如,原型验证板和硬件仿真器。通常,原型验证板侧重于电子系统的整体运行,强调运行速度,通常不具有调试能力。而硬件仿真器侧重于芯片设计本身的仿真,强调调试能力,但是运行速度慢。
发明内容
本申请的第一方面提供一种在硬件仿真工具上仿真逻辑系统设计的方法,包括:编译所述逻辑系统设计以分别生成第一配置文件和多个第二配置文件;根据所述第一配置文件配置第一硬件仿真工具以仿真所述逻辑系统设计;获取所述逻辑系统设计的仿真在第一时钟周期的第一快照;根据所述多个第二配置文件配置多个第二硬件仿真工具以分别调试所述逻辑系统设计的多个部分;以及根据所述第一快照在所述多个第二硬件仿真工具上分别还原所述逻辑系统设计的一部分到所述第一时钟周期。
本申请的第二方面提供一种电子装置,包括:存储器,用于存储一组指令;以及至少一个处理器,配置为执行所述一组指令以使得所述电子装置执行如第一方面所述的方法。
本申请的第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如第一方面所述的方法。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的示例性主机的结构示意图。
图2示出了根据本申请实施例的仿真系统的示意图。
图3示出了根据本申请实施例的生成配置文件的过程的示意图。
图4示出了根据本申请实施例的配置硬件仿真资源的示意图。
图5示出了根据本申请实施例的调试逻辑系统设计的过程的示意图。
图6示出了根据本申请实施例的调试逻辑系统设计的又一过程的示意图。
图7示出了根据本申请实施例的一种在硬件仿真工具上仿真逻辑系统设计的方法的流程图。
图8示出了根据本申请实施例的又一种在硬件仿真工具上仿真逻辑系统设计的方法的流程图
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
如上所述,原型验证版和硬件仿真器同属于硬件仿真工具。在硬件层面上具有相似性。但是在实际使用过程中,原型验证板可以以较高的运行速度持续地提供原型仿真,但是对于原型仿真过程中出现的错误,却无法记录和还原,更加无法进行调试。硬件仿真器可以利用触发等手段来记录和还原仿真错误,但是运行速度非常慢,并且硬件仿真器本身非常昂贵。
针对上述问题,本申请的发明人试图提供一种同时具有原型验证能力和调试能力的硬件仿真工具。通常,原型验证和调试无法在一个硬件设备上同时进行。同时,原型验证功能需要的硬件资源较少,而调试功能需要的硬件资源较多。如果本申请提供的硬件仿真工具在两种模式下使用相同的硬件资源,会造成硬件资源的浪费,并大大降低原型验证模式的效率。因此,如何在支持原型验证能力和硬件仿真能力的同时尽可能保证硬件仿真工具的整体运行速度是一个亟待解决的技术问题。
鉴于此,本申请实施例提供了一种在硬件仿真工具上仿真逻辑系统设计的方法,通过向硬件仿真工具的不同运行模式提供不同的硬件资源,有效提高了硬件仿真工具的整体效率。
图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),用于仿真待测设计。可以理解的是,尽管在图2中,仿真工具202仅显示为一个块电路板,但是实际上仿真工具202可以包括多个电路板(例如,多个原型验证板或者双模验证板)。
仿真工具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,例如,使用一种外接存储器。
仿真工具202还可以包括FPGA 2026,用于将逻辑系统设计硬件地实现到FPGA上。可以理解的是,仿真工具202可以包括多个FPGA,图中仅为示例。
除了连接到主机100,仿真工具202还可以经由接口单元2022连接到一个或多个子卡204。
子卡用于在使用仿真工具202进行原型验证时向DUT提供外设以构成完整的电子系统。原型验证是指在芯片流片之前,尽可能的还原芯片真实使用场景,验证芯片功能是否准确和完整的一种验证方式。子卡204可以包括存储器子卡(例如,提供DDR内存接口)、通信子卡(例如,提供多种网络接口或无线网卡接口)等。
主机100可以用于配置仿真工具202以仿真一个待测设计。该待测设计可以是一个完整的逻辑系统设计或一个完整逻辑系统设计的一个或多个模块。在一些实施例中,主机100可以是云计算系统中的一个虚拟主机。逻辑系统设计(例如,ASIC或者System-On-Chip)可以由硬件描述语言(例如Verilog、VHDL、System C、或System Verilog)设计。主机100配置仿真工具202可以包括配置仿真环境(例如,多个仿真工具202之间的连接关系或者仿真工具与子卡的连接关系)等。
主机100可以将以源代码形式的逻辑系统设计编译为可执行文件。从设计的角度看,逻辑系统设计可以包括待测设计和与待测设计对应的测试台(Testbench)。此时,编译可以涵盖从源代码到可执行文件(例如,位文件)的整个过程。
从综合的角度看,逻辑系统设计可以包括可综合部分和不可综合部分。可综合部分通常与实际的物理设计(例如,芯片)对应,而不可综合部分通常包括初始化模块、测试台等。不可综合部分在经过编译后形成的可执行文件通常可以由主机100运行。可综合部分在经过编译后还需要进行综合,以形成位文件。位文件可以用于将FPGA 2026配置为根据可综合部分的设计要求运行。
主机100还可以从用户接收调试待测设计的请求。如上所述,待测设计可以包括一个或多个模块。待测设计的描述可以用硬件描述语言来完成。主机100可以基于待测设计的描述来进行综合,以生成,例如,待测设计的门级电路网表(未示出)。待测设计的该门级电路网表可以被载入仿真工具202中运行,进而可以在仿真工具202中形成与待测设计相对应的电路结构。因此,待测设计的电路结构可以根据该描述而获得,并且相应地,待测设计中的每个块的电路结构也可以类似地获得。
图3示出了根据本申请实施例的生成配置文件的过程的示意图。
如图3所述,主机100可以将逻辑系统设计302(以下也简称为设计302)编译为配置文件,以配置仿真工具202上的硬件仿真资源。仿真工具202可以是芯华章股份有限公司出品的HuaPro P2E仿真工具。可以理解,在一些实施例中,仿真工具202的硬件仿真资源可以包括一个或多个FPGA,而每个FPGA可以仅模拟逻辑系统设计的至少一部分(例如,一个或多个模块)。仿真工具202可以实现原型验证功能和调试功能。
对于同一个逻辑系统设计302,由于环境变量的不同以及是否具有调试功能,配置文件可以包括分别编译生成的配置文件304和配置文件306。在一些实施例中,配置文件304和306可以是位文件(bit file)类型的二进制文件。通常,一个FPGA可以对应一份位文件,也就是说,配置文件304或306可以包括一个或多个位文件。
配置文件304和原型验证功能相对应,配置文件306和调试功能相对应。
原型验证功能通常可以指代不具有调试能力的仿真功能。例如,用户可以将逻辑系统设计(例如,芯片设计)实现到硬件仿真工具202的可编程逻辑器件(例如,FPGA 2026)上,并且将一个或多个子卡(提供不同的外设功能)连接到硬件仿真工具202,从而实现了一整个电子系统的原型。在此基础上,通过不断向该电子系统的原型提供测试用例(例如,提供激励)来完成该逻辑系统设计在电子系统的原型下的各项功能的仿真。在仿真过程中,逻辑系统设计在多个时钟周期(clock cycle)的值可以被保存。例如,可以保存逻辑系统设计的关键信号在多个时钟周期的值。逻辑系统设计的关键信号是指可以足以还原逻辑系统设计在目标时钟周期的一部分信号。关键信号通常可以包括逻辑系统设计的主要输入和寄存器的至少部分输出。根据关键信号的值以及逻辑系统设计的描述,可以计算出逻辑系统设计的每个信号的值,因此可以相应地还原逻辑系统设计到给定的目标时钟周期。例如,对于C=A and B的逻辑系统设计,A和B是关键信号,一旦获取了A和B的值,那么C的值可以直接根据逻辑系统设计的描述(即,C=A and B)来计算。
但是,原型验证功能通常无法根据用户的意愿在特定的时钟周期停止或者回退到给定的时钟周期,也无法查看给定的信号在给定的时钟周期范围内的波形等。
与原型验证功能相对,调试功能可以根据用户的意愿在特定的时钟周期停止逻辑系统设计的仿真或者回退到给定的时钟周期,也可以查看给定的信号在给定的时钟周期范围内的波形等,从而允许用户找到逻辑系统设计的错误的根本原因。
调试功能的实现往往依赖于仿真数据。也就是说,用户需要首先对逻辑系统设计完成一次仿真,并且获得仿真数据(例如,逻辑系统设计的关键信号在多个给定时钟周期的值),从而在调试过程中依赖这些仿真数据去进行调试功能。
用户可以通过在编译和综合逻辑系统设计的时候选择原型验证功能或调试功能来将特定功能(原型验证功能或调试功能)体现在配置文件中。
与原型验证功能对应,配置文件304通常仅需要在FPGA 2026上配置生成逻辑系统设计并配置物理针脚的连接关系就可以了。
相对的,配置文件306中还可以包括对调试功能进行配置的信息。在一些实施例中,在仿真工具202实现调试功能的过程中,用户需要观察和记录一个或多个关键信号在逻辑系统设计的仿真过程中的值。这些关键信号的值可以经由在配置文件306中指定的一个或多个针脚引出到接口2022并传输到主机100。因此,相比于配置文件304,配置文件306需要额外在FPGA 2026上配置这些用于读取关键信号的值的针脚以及这些针脚到接口2022的连接。此外,在一些实施例中,配置文件306还需要在FPGA 2026上配置生成一个小型CPU用于处理触发等调试功能。
可以理解的是,配置文件306中可以包括更多的调试功能,而不限于以上示例。
由此可见,相比于配置文件304,配置文件306需要在FPGA 2026上配置出更多的功能和模块,这会导致经由配置文件306配置的硬件仿真工具的运行速度显著低于经由配置文件304配置的硬件仿真工具。
对于通常的专注于调试功能的硬件仿真器(emulator),由于调试功能的拖累,其运行逻辑系统设计的速度是较慢的(例如,几百kHz或者1MHz左右)。而专注于原型验证功能的原型验证板尽管可以运行在较快的速度(例如,高达10MHz),但是原型验证板无法支持调试功能。
如何在一个硬件仿真工具上同时支持原型验证功能和调试功能并且提高仿真逻辑系统设计的运行频率是一个亟待解决的技术问题。
图4示出了根据本申请实施例的配置硬件仿真资源的示意图。
仿真工具202通常具有足够的硬件资源以完成原型验证功能或者调试功能。硬件资源通常可以包括一个或多个可编程逻辑器件(例如,FPGA)、可配置的接口或一个或多个子卡的至少一个。硬件资源的资源量可以用可编程逻辑器件的数量(例如,等效门电路的数量)、可配置的接口的数量以及子卡的数量来衡量。
当仿真工具202对设计302进行原型验证时,主机100可以调用配置文件304以配置硬件仿真资源410。如图4所示,硬件仿真资源410可以包括一个或多个可编程逻辑器件(例如,FPGA 401-404)。当仿真工具对设计302进行调试时,主机100可以调用配置文件306以配置硬件仿真资源420。如图4所示,硬件仿真资源420可以包括一个或多个可编程逻辑器件(例如,FPGA 401-408)。
在一些实施例中,硬件仿真资源还可以包括连接到仿真工具202上的硬件设备,例如,外设子卡。
通常,由于调试功能需要处理和保存更多的信号,硬件仿真资源420的资源量会大于或等于硬件仿真资源410的资源量。
图5示出了根据本申请实施例的调试逻辑系统设计302的过程500的示意图。
在原型验证逻辑系统设计302时,主机100可以在特定的时钟周期设置还原点。还原点可以包括给定时钟周期或者出错的时钟周期。在一些实施例中,用户可以设定某些时钟周期为还原点。在另一些实施例中,主机100可以保存在原型验证过程中出现报错信息的时钟周期为还原点。还原点包括了需要仿真工具202进行后续调试的仿真时钟周期。本申请中未示出还原点的示例。以下叙述假定在同一个还原点a,即,时钟周期a。
如图5所示,设计302可以包括多个模块,例如,模块A。其中,模块A的输出端口的信号502可以是逻辑系统设计302的关键信号。
如图5所示,当仿真工具202对逻辑系统设计302进行原型验证时,主机100可以调用配置文件302以配置硬件仿真资源410。在时钟周期a,仿真工具202和主机100可以获取硬件仿真资源410上与关键信号对应的第一物理信号(例如,物理信号501)在时钟周期a的信号值。根据配置文件304和逻辑系统设计302,主机100可以确定从设计302到硬件仿真资源410的第一映射510。第一映射510至少包括设计302的关键信号502到FPGA 401的的物理信号501的映射关系。主机100可以将物理信号501在时钟周期a的值保存到快照(snapshot)(未示出)。快照通常是一种数据库(例如,波形数据库)。在本申请的实施例中,快照可以包括在还原点(即,时钟周期)的硬件仿真资源410中与关键信号对应的物理信号的信号值。在另一些实施例中,快照也可以包括在还原点(即,时钟周期)的逻辑系统设计的关键信号的信号值。
根据第一物理信号的信号值以及逻辑系统设计的描述(例如,配置文件或网表等),主机100可以确定逻辑系统设计的关键信号的信号值。例如,主机100可以根据逻辑系统设计302和配置文件304确定逻辑系统设计的关键信号502和物理信号501之间的第一映射510;并且根据快照(未示出)和第一映射510确定与硬件资源410的物理信号501对应的逻辑系统设计的关键信号502在时钟周期a的值。
在一些实施例中,如图5所示,第一映射510可以包括关键信号502到物理信号501的映射关系。仿真工具202和主机100将在还原点a(即,给定时钟周期a)的物理信号501的信号值保存到快照(未示出)中。根据第一映射510和快照(未示出),主机100可以确定与物理信号501对应的设计302中关键信号502在还原点a(即,时钟周期a)的信号值。可以理解,快照(未示出)也可以包括关键信号502在在还原点a(即,时钟周期a)的信号值。
当仿真工具202开始对逻辑系统设计302进行调试时,主机100可以调用配置文件306,以重新配置硬件仿真资源420。根据配置文件306和逻辑系统设计302,主机100可以确定从设计302到硬件仿真资源420的第二映射520。第二映射520至少包括设计302的关键信号502到FPGA 403的的物理信号503的映射关系。
在上述实施例中,如图5所示,根据关键信号502在时钟周期a的值和第二映射520,主机100可以确定硬件仿真资源420的物理信号503在时钟周期a的信号值。更具体地,根据第二映射520,主机100可以通过设计302的关键信号502在时钟周期a的信号值,得到硬件仿真工具420上的FPGA 403的物理信号503在时钟周期a的信号值。这样,主机100可以使用物理信号503在时钟周期a的信号值初始化该物理信号503,从而使得硬件仿真资源420上的逻辑系统设计302被还原到时钟周期a。
综上,本申请实施例为硬件仿真工具的原型验证功能和调试功能分别提供不同的配置文件以配置不同的硬件资源,加快了硬件仿真工具的原型验证的速度,同时保留了硬件仿真工具的调试能力,从而提升了硬件仿真工具仿真逻辑系统设计的运行效率。
图6示出了根据本申请实施例的调试逻辑系统设计302的又一过程600的示意图。
在一些实施例中,如图6所示,仿真工具202可以在硬件仿真资源410(例如,作为原型验证板使用的第一硬件仿真工具)上对逻辑系统设计302进行原型验证。硬件仿真资源410的配置文件在图6未示出。逻辑系统设计302到硬件仿真资源410的映射612可以包括了关键信号603到FPGA 401的物理信号601的映射关系和关键信号604到FPGA 404的物理信号602的映射关系。根据映射612以及物理信号601和物理信号602在时钟周期a的信号值,主机100可以确定关键信号603和关键信号604在时钟周期a的信号值。
在一些实施例中,原有用于原型验证逻辑系统设计302的仿真工具的资源量不足以实现具有调试功能的逻辑系统设计302。此时,主机100可以将逻辑系统设计302分割为多个部分,选择调试功能并且编译逻辑系统设计302的一部分以生成新的配置文件,从而在仿真工具202上完成对该部分的调试。也就是说,调试功能可以在多个不同的硬件仿真工具上进行。
主机100可以确定仿真工具202的资源量不满足调试功能的需要,并且如图6所示,分割逻辑系统设计302为子设计312和子设计322。主机100可以结合调试功能分别编译子设计312和子设计322以生成多个配置文件。
子设计312的模块B的输出信号例如是一个关键信号602,子设计322的模块C的输出信号例如是一个关键信号604。主机100可以将子设计312实现在硬件仿真资源620(这里可以称为第二硬件仿真工具)上并进行调试,以及将子设计322实现在硬件仿真资源630(这里也可以称为第二硬件仿真工具)上并进行调试。这样,就产生了从子设计312到硬件仿真资源620上的实际电路的映射622以及从子设计322到硬件仿真资源630上的实际电路的映射632。在一些实施例中,映射622可以包括关键信号603到FPGA 641的物理信号605的映射关系;映射632可以包括关键信号604到FPGA 651的物理信号606的映射关系。
根据映射622和关键信号603在时钟周期a的信号值,主机100可以得到物理信号605在时钟周期a的信号值,以对物理信号605进行初始化,并最终将逻辑系统设计302的一部分(即,子设计312)初始化到时钟周期a。类似地,根据映射632和关键信号604在时钟周期a的信号值,主机100可以得到物理信号606在时钟周期a的信号值,以对物理信号606进行初始化,并最终将逻辑系统设计302的另一部分(即,子设计322)初始化到时钟周期a。
这样,通过在调试阶段对逻辑系统设计进行分割,不仅仅解决了仿真工具的硬件资源不足的问题,还可以将复杂的逻辑系统设计的验证任务分割为多个子任务并且在规格较低的硬件工具上进行调试。同时,由于装载大量FPGA的硬件仿真工具的成本较高,本申请实施例通过在规格较低的硬件工具上进行调试降低了对高性能硬件工具的需求,降低了用户的成本。
综上,本申请通过对硬件仿真工具的原型验证功能和调试功能分别提供不同的配置文件以配置不同的硬件资源,加快了硬件仿真工具的原型验证的速度,同时保留了硬件仿真工具的调试能力,从而提升了硬件仿真工具仿真逻辑系统设计的运行效率。本申请还通过对逻辑系统设计进行分割后再验证或调试,解决了仿真工具可能存在的硬件资源不足的问题,还将复杂繁多的验证任务简单化,减轻了仿真工具的仿真任务,加快了仿真系统的效率。同时,由于装载大量FPGA的硬件仿真工具的开发成本较高,将逻辑系统设计进行分割后分别使用资源量较小的硬件仿真工具进行仿真,还大大解决了仿真成本。
本申请实施例还提供了一种在硬件仿真工具上仿真逻辑系统设计的方法。
图7示出了根据本申请实施例的一种在硬件仿真工具上仿真逻辑系统设计的方法700的流程图,其中,方法700可以由如图2所示的主机100执行。方法700可以包括如下步骤。
在步骤701,主机100可以编译所述逻辑系统设计(例如,图3中的逻辑系统设计302)以分别生成第一配置文件(例如,图3中的配置文件304)和第二配置文件(例如,图3中的配置文件306)。
所述第一配置文件与所述逻辑系统设计的原型验证功能对应,所述第二配置文件与所述逻辑系统设计的调试功能对应。
在一些实施例中,响应于选择所述原型验证功能,主机100可以结合所述原型验证功能编译所述逻辑系统设计以生成所述第一配置文件;响应于选择所述调试功能,主机100可以结合所述调试功能编译所述逻辑系统设计以生成所述第二配置文件。
在步骤702,主机100可以根据所述第一配置文件(例如,图3中的配置文件304)配置所述硬件仿真工具(例如,图2中的硬件仿真工具202)的第一硬件资源(图4的硬件仿真资源410)以仿真所述逻辑系统设计(例如,图3中的逻辑系统设计302)。
在步骤703,主机100获取所述逻辑系统设计(例如,图3中的逻辑系统设计302)的仿真在第一时钟周期(例如,上述时钟周期a)的第一快照(未示出)。
在一些实施例中,所述第一快照包括所述第一硬件资源(例如,图5的硬件仿真资源410)上的第一物理信号(例如,图5中的物理信号501)在所述第一时钟周期的值。
在另一些实施例中,除了上述物理信号在所述第一时钟周期的值之外,所述第一快照进一步还包括所述逻辑系统设计的关键信号(例如,图5中的关键信号502)在所述第一时钟周期的值。
第一快照可以由硬件仿真工具202直接输出或者由主机100获取物理信号的值之后生成关键信号的值并存储。例如,方法700可以进一步包括:根据所述逻辑系统设计和所述第一配置文件,确定所述逻辑系统设计的关键信号和所述第一物理信号之间的第一映射(例如,图5的映射510);根据所述第一快照和所述第一映射确定与所述第一硬件资源的第一物理信号对应的所述逻辑系统设计的关键信号在所述第一时钟周期的值。
在步骤704,主机100可以根据所述第二配置文件(例如,图3中的配置文件304)配置所述硬件仿真工具的第二硬件资源(例如,图5中的硬件仿真资源420)以调试所述逻辑系统设计。
可以理解的是,由于调试功能占用更多的硬件资源,所以所述第二硬件资源的资源量大于或者等于所述第一硬件资源的资源量。这里所说的硬件资源的资源量可以指代可编程逻辑器件的容量、子卡等硬件资源的数量。例如,所述第一硬件资源包括可编程逻辑器件。
在步骤705,主机100可以根据所述第一快照在所述第二硬件资源(例如,图5中的硬件仿真资源420)上还原所述逻辑系统设计到所述第一时间周期。
在一些实施例中,主机100可以:根据所述逻辑系统设计和所述第二配置文件(例如,图3中的配置文件304)在所述第二硬件资源上确定与所述关键信号(例如,图5的关键信号502)对应的第二物理信号(例如,图5的物理信号503)以及所述关键信号和所述第二物理信号之间的第二映射(例如,图5的映射520);以及根据所述关键信号在所述第一时钟周期的值和所述第二映射确定所述第二物理信号在所述第一时钟周期的值。
在一些实施例中,当硬件仿真工具不足以承载具有调试功能的逻辑系统设计时,第二配置文件可以仅与逻辑系统设计的一部分对应。
通过本申请实施例,用户可以将原型验证功能和调试功能分离,并且在原型验证阶段和调试阶段使用不同的配置文件,从而使得硬件仿真工具可以在原型验证阶段具有较高的运行频率,而同时在调试阶段具有所需要的调试功能。
图8示出了根据本申请实施例的又一种在硬件仿真工具上仿真逻辑系统设计的方法800的流程图,其中,方法800可以由如图2所示的主机100执行。方法800可以包括如下步骤。
在步骤801中,主机100编译所述逻辑系统设计(例如,图3的逻辑系统设计302)以分别生成第一配置文件(例如,图3的配置文件304)和多个第二配置文件(例如,与图6的子设计312和子设计322对应的配置文件,未示出)。
所述第一配置文件与所述逻辑系统设计的原型验证功能对应,所述多个第二配置文件与所述逻辑系统设计的调试功能对应。
在一些实施例中,响应于选择所述原型验证功能,主机100可以结合所述原型验证功能编译所述逻辑系统设计以生成所述第一配置文件;响应于选择所述调试功能,主机100可以分割所述逻辑系统设计为多个部分(例如,图6中的子设计312和子设计322)并结合所述调试功能编译所述逻辑系统设计的多个部分以分别生成所述多个第二配置文件。
所述方法800也可以进一步包括:确定结合所述调试功能编译所述逻辑系统设计所需要的硬件资源要求;确定所述一个第二硬件仿真工具(例如,图6描述中的硬件仿真工具202)是否满足所述硬件资源要求;响应于所述一个第二硬件仿真工具不满足所述硬件资源要求,分割所述逻辑系统设计为多个部分。
在步骤802中,主机100可以根据所述第一配置文件(例如,图3的配置文件304)配置第一硬件仿真工具(例如,图6描述中的硬件仿真工具202)以仿真所述逻辑系统设计(例如,图3的逻辑系统设计302)。
在步骤803中,主机100可以获取所述逻辑系统设计(例如,图3中的逻辑系统设计302)的仿真在第一时钟周期(例如,上述时钟周期a)的第一快照(未示出)。
在一些实施例中,所述第一快照包括所述第一硬件仿真工具(例如,图6描述中的硬件仿真工具202)上的第一物理信号(例如,图6中的物理信号601和602)在所述第一时钟周期的值。
在另一些实施例中,除了上述物理信号在所述第一时钟周期的值之外,所述第一快照进一步还包括所述逻辑系统设计的关键信号(例如,图6中的关键信号603和604)在所述第一时钟周期的值。
第一快照可以由硬件仿真工具202直接输出或者由主机100获取物理信号的值之后生成关键信号的值并存储。例如,方法800可以进一步包括:根据所述逻辑系统设计和所述第一配置文件,确定所述逻辑系统设计的关键信号和所述第一物理信号之间的第一映射(例如,图6的映射612);根据所述第一快照和所述第一映射确定与所述第一硬件资源的第一物理信号对应的所述逻辑系统设计的关键信号在所述第一时钟周期的值。
在步骤804中,主机100可以根据所述多个第二配置文件(例如,与图6的子设计312和子设计322对应的配置文件,未示出)配置多个第二硬件仿真工具(例如,图6中的硬件仿真资源620和630分别所在的硬件仿真工具)以分别调试所述逻辑系统设计的多个部分(例如,图6中的逻辑系统设计302的子设计312和322)。
在步骤805中,主机100可以根据所述第一快照在所述多个第二硬件仿真工具(例如,图6中的硬件仿真资源620和630分别所在的硬件仿真工具)上分别还原所述逻辑系统设计的一部分(例如,图6中的逻辑系统设计302的子设计312和322)到所述第一时钟周期。
所述方法800进一步包括:根据所述逻辑系统设计和所述多个第二配置文件在所述多个第二硬件仿真工具上确定与所述关键信号(例如,图6中的关键信号603和604)对应的第二物理信号(例如,图6中的物理信号605和606)以及所述关键信号和所述第二物理信号之间的第二映射(例如,图6中的映射622和632);以及根据所述关键信号在所述第一时钟周期的值和所述第二映射确定所述第二物理信号在所述第一时钟周期的值。
本申请实施例还提供一种电子装置。该电子装置可以是图1的主机100。该主机100可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子装置执行方法800。
本申请实施例还提供一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使该计算机执行方法800。
本申请实施例通过将仿真的原型验证功能和调试功能分开,使得原型验证功能可以运行在较高的频率,提高了整体系统的运行效率。同时,通过将逻辑系统设计分割为多个部分,并且为该多个部分分别生成配置文件并运行在多个不同的硬件仿真工具上,从而使得调试功能可以根据不同的子设计而运行在不同的硬件仿真工具,进一步解放了硬件仿真工具的资源量对于逻辑系统设计的限制。这样,即使是大规模的逻辑系统设计也可以在规格较低的硬件仿真工具上进行原型验证,并且在低规格的多个硬件仿真工具上进行调试,降低了用户的成本并且提高了硬件的利用率。
上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。 在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种在硬件仿真工具上仿真逻辑系统设计的方法,包括:
编译所述逻辑系统设计以分别生成第一配置文件和多个第二配置文件;
根据所述第一配置文件配置第一硬件仿真工具以仿真所述逻辑系统设计;
获取所述逻辑系统设计的仿真在第一时钟周期的第一快照;
根据所述多个第二配置文件配置多个第二硬件仿真工具以分别调试所述逻辑系统设计的多个部分;以及
根据所述第一快照在所述多个第二硬件仿真工具上分别还原所述逻辑系统设计的一部分到所述第一时钟周期。
2.如权利要求1所述的方法,所述第一配置文件与所述逻辑系统设计的原型验证功能对应,所述多个第二配置文件与所述逻辑系统设计的调试功能对应,并且编译所述逻辑系统设计以分别生成所述第一配置文件和所述多个第二配置文件进一步包括:
响应于选择所述原型验证功能,结合所述原型验证功能编译所述逻辑系统设计以生成所述第一配置文件;以及
响应于选择所述调试功能,分割所述逻辑系统设计为多个部分;以及
结合所述调试功能编译所述逻辑系统设计的多个部分以分别生成所述多个第二配置文件。
3.如权利要求2所述的方法,其中,分割所述逻辑系统设计为多个部分进一步包括:
确定结合所述调试功能编译所述逻辑系统设计所需要的硬件资源要求;
确定所述一个第二硬件仿真工具是否满足所述硬件资源要求;
响应于所述一个第二硬件仿真工具不满足所述硬件资源要求,分割所述逻辑系统设计为多个部分。
4.如权利要求1所述的方法,其中,所述第一快照包括所述第一硬件仿真工具上的第一物理信号在所述第一时钟周期的值。
5.如权利要求4所述的方法,其中,所述方法进一步包括:
根据所述逻辑系统设计和所述第一配置文件,确定所述逻辑系统设计的关键信号和所述第一物理信号之间的第一映射;
根据所述第一快照和所述第一映射确定与所述第一硬件仿真工具的第一物理信号对应的所述逻辑系统设计的关键信号在所述第一时钟周期的值。
6.如权利要求4所述的方法,其中,所述第一快照进一步包括所述逻辑系统设计的关键信号在所述第一时钟周期的值。
7.如权利要求5或6所述的方法,其中,根据所述第一快照在所述多个第二硬件仿真工具上还原所述逻辑系统设计到所述第一时钟周期进一步包括:
根据所述逻辑系统设计和所述多个第二配置文件在所述多个第二硬件仿真工具上确定与所述关键信号对应的第二物理信号以及所述关键信号和所述第二物理信号之间的第二映射;以及
根据所述关键信号在所述第一时钟周期的值和所述第二映射确定所述第二物理信号在所述第一时钟周期的值。
8.一种仿真逻辑系统设计的电子装置,包括:
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行该组指令以进行如权利要求1至7任意一项所述的方法。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410151329.1A CN117933151A (zh) | 2024-02-02 | 2024-02-02 | 仿真逻辑系统设计的方法、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410151329.1A CN117933151A (zh) | 2024-02-02 | 2024-02-02 | 仿真逻辑系统设计的方法、电子装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117933151A true CN117933151A (zh) | 2024-04-26 |
Family
ID=90761193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410151329.1A Pending CN117933151A (zh) | 2024-02-02 | 2024-02-02 | 仿真逻辑系统设计的方法、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117933151A (zh) |
-
2024
- 2024-02-02 CN CN202410151329.1A patent/CN117933151A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931445B (zh) | 用于调试逻辑系统设计的方法、仿真器及存储介质 | |
CN112100957B (zh) | 用于调试逻辑系统设计的方法、仿真器、存储介质 | |
US20180137031A1 (en) | Waveform based reconstruction for emulation | |
CN112287569B (zh) | 用于仿真逻辑系统设计的方法、电子设备及存储介质 | |
CN115422866A (zh) | 用于在仿真器上仿真逻辑系统设计的方法及相关设备 | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
CN112434478B (zh) | 仿真逻辑系统设计的虚拟接口的方法及相关设备 | |
CN115827568B (zh) | 获取逻辑系统设计的数据的方法、电子设备和存储介质 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
CN112506806B (zh) | 用于调试程序的方法、电子设备及存储介质 | |
CN117933151A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN117910398A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN113868046A (zh) | 一种pad控制单元的功能验证方法、系统及相关组件 | |
CN116738906B (zh) | 实现循环电路的方法、电路、装置和存储介质 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 | |
CN112131806A (zh) | 验证设计的编译方法、电子设备及存储介质 | |
CN114169287B (zh) | 生成验证环境的连接示意图的方法、电子设备及存储介质 | |
CN116594830B (zh) | 硬件仿真工具、调试方法和存储介质 | |
CN115809620B (zh) | 仿真逻辑系统设计的方法、电子设备和存储介质 | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN116841697B (zh) | 处理mmio请求的方法、电子装置和存储介质 | |
CN116861829B (zh) | 用于定位逻辑系统设计中错误的方法、电子设备 | |
CN117172203A (zh) | 处理脚本命令的方法、电子设备和存储介质 | |
CN117454835A (zh) | 保存和读取波形数据的方法、电子设备以及存储介质 | |
Kuitunen | SoC FPGA based integration testing platform |
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 |