CN116880963B - 用于检测多个硬件仿真工具之间的连接错误的方法 - Google Patents
用于检测多个硬件仿真工具之间的连接错误的方法 Download PDFInfo
- Publication number
- CN116880963B CN116880963B CN202311020600.XA CN202311020600A CN116880963B CN 116880963 B CN116880963 B CN 116880963B CN 202311020600 A CN202311020600 A CN 202311020600A CN 116880963 B CN116880963 B CN 116880963B
- Authority
- CN
- China
- Prior art keywords
- hardware simulation
- connection
- simulation tool
- hardware
- tool
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 339
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013461 design Methods 0.000 claims abstract description 72
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000012360 testing method Methods 0.000 description 28
- 238000012546 transfer Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 241000699670 Mus sp. Species 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
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 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
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (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示出了根据本申请的多个硬件仿真工具的另一种连接关系示意图;
图4A示出了根据本申请的第一硬件仿真工具和第二硬件仿真工具之间的连接示意图;
图4B示出了根据本申请实施例的多个硬件仿真工具之间的具体地连接示意图;
图5示出了根据本申请实施例的示例性一种用于检测多个硬件仿真工具之间的连接错误的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
随着芯片设计规模日益增加,单独的硬件仿真工具已不能够支持芯片设计的仿真的要求。因此,目前的芯片设计通常使用多个硬件仿真工具来进行全面的仿真。这些硬件仿真工具可能涉及不同的功能和领域,例如逻辑仿真、时序仿真、时钟域仿真、功耗仿真等等。为了使不同的硬件仿真工具之间协同作用,多个硬件仿真工具之间共享时钟信号以保证同步。而多个硬件仿真工具之间共享时钟信号时需要插入时钟信号线以形成拓扑网络。由于硬件仿真工具数量较多,在利用时钟信号线连接的过程中,可能会出现连接错误,例如出现连接不到位,连接顺序出现问题等,进而会造成芯片设计的仿真失败。此时用户需要手动的来进行排查,进而确定哪些地方出现连接错误,会降低仿真的效率。
图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,例如,使用一种外接存储器。
硬件仿真工具202还可以包括FPGA2026,用于将逻辑系统设计硬件地实现到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可以从用户接收调试待测设计的请求。如上所述,待测设计可以包括一个或多个模块。待测设计的描述可以用硬件描述语言来完成。主机100可以基于待测设计的描述来进行综合,以生成,例如,待测设计的门级电路网表(未示出)。待测设计的该门级电路网表可以被载入硬件仿真工具202中运行,进而可以在硬件仿真工具202中形成与待测设计相对应的电路结构。因此,待测设计的电路结构可以根据该描述而获得,并且相应地,待测设计中的每个块的电路结构也可以类似地获得。
图3A示出了根据本申请实施例的多个硬件仿真工具和逻辑系统设计的示意图。
在一些实施例中,如图3所示,多个硬件仿真工具可以包括硬件仿真工具340、硬件仿真工具342和硬件仿真工具344。为了容纳更大的逻辑系统设计并且提高逻辑系统设计的仿真速度,可以将逻辑系统设计320分割为多个部分,例如可以分割为逻辑系统设计322、逻辑系统设计324和逻辑系统设计326。进而使得每个硬件仿真工具来仿真被分割出的一个或者多个逻辑系统设计。除此之外,为了保证多个硬件仿真工具340、硬件仿真工具342和硬件仿真工具344之间的协同,可以先按照预定的连接规则将硬件仿真工具之间进行连接。在一些实施例中,可以将硬件仿真工具344分别和硬件仿真工具342和硬件仿真工具340连接。然后,可以利用每个硬件仿真工具来仿真一个或者多个分割出的逻辑系统设计。例如,可以利用硬件仿真工具340来对逻辑系统设计322和逻辑系统设计324进行仿真,可以利用硬件仿真工具342来对逻辑系统设计324进行仿真,可以利用硬件仿真工具344对逻辑系统设计326进行仿真。综合硬件仿真工具340、硬件仿真工具342和硬件仿真工具344的仿真的结果输出最终的仿真结果360。
伴随着逻辑系统设计越发庞大,仿真逻辑系统设计所需要的硬件仿真工具的数量也越发庞大,并且连接关系也趋于复杂。连接错误(例如,连接对象错误或者未连接)和连接不当(例如,连接不到位)时有发生。通常的做法是用户需要逐个人工检查连线,费时费力,并且可能导致原本正常的连接在检查过程中变成不当连接。
图3B示出了根据本申请的多个硬件仿真工具的一种连接关系的示意图。
在一些实施例中,如图3B所示,硬件仿真工具382可以和硬件仿真工具384连接,硬件仿真工具384可以和硬件仿真工具386连接,硬件仿真工具386可以和硬件仿真工具388连接。当硬件仿真工具连接完成之后。可以对硬件仿真工具进行上电。上电完成后,一个硬件仿真工具可以向其下游的硬件仿真工具输出查询信号(通常情况下,无论硬件仿真工具的下游是否存在其他硬件仿真工具,硬件仿真工具都会输出查询信号)。例如,硬件仿真工具382可以向硬件仿真工具384输出查询信号332。硬件仿真工具384可以向硬件仿真工具386输出查询信号334。硬件仿真工具386可以向硬件仿真工具388输出查询信号336。当下游的硬件仿真工具接收到查询信号之后,可以向对应的上游来输出反馈信号。例如,当硬件仿真工具384接收到的查询信号332之后,可以向硬件仿真工具382输出反馈信号352。当硬件仿真工具386接收到查询信号334之后,可以向硬件仿真工具384输出反馈信号354,当硬件仿真工具388接收到查询信号336之后,可以向硬件仿真工具386输出反馈信号356。在一个示例中,硬件仿真工具的接口单元2022中包括了一个I2C接口的针脚,同时,用于连接两个硬件仿真工具的线缆中也内置了I2C接口的线缆。这样,两个硬件仿真工具之间可以利用I2C协议完成查询信号和反馈信号的收发。
在一些实施例中,主机(例如,100)可以通过与硬件仿真工具的连接(参考图2)获取每个硬件仿真工具反馈的反馈信号。例如,主机可以获取硬件仿真工具384、硬件仿真工具386、硬件仿真工具388反馈的反馈信号352、反馈信号354和反馈信号356。主机可以根据反馈信号确定多个硬件仿真工具之间的连接关系。例如,如果硬件仿真工具382成功接收到反馈信号352,则可以确定硬件仿真工具384与硬件仿真工具382连接并且位于硬件仿真工具382的下游。通过该种方式可以确定所有硬件仿真工具之间的连接关系。
在确定了多个硬件仿真工具之间的连接关系之后,可以根据确定的连接关系和预定的连接规则进行对比,以此来确定连接关系是否存在连接错误。
连接规则可以根据逻辑系统设计来确定。由于逻辑系统设计被分割为多个部分并且被分配到不同的硬件仿真工具上,该被分割产生的多个部分之间有固有的连接关系。这些固有的连接关系构成了承载该多个部分之间的连接的约束,并最终确定了多个硬件仿真工具之间的连接规则。
在一些实施例中,连接规则可以是由人工确定的或者由仿真系统200根据逻辑系统设计的分割结果来确定。
例如,在连接规则中,硬件仿真工具可以是多级级联连接,或者硬件仿真工具中某个硬件仿真工具与多个硬件仿真进行连接,或者,每个硬件仿真工具只允许与一个硬件仿真工具连接,而不允许与多个硬件仿真工具连接等等。根据逻辑系统设计的不同,连接规则也不同,本领域技术人员可以根据实际的逻辑系统设计来确定连接规则,在本公开的一些实施例中不对连接规则进行绝对性的限制。
图3C示出了根据本申请的多个硬件仿真工具的另一种连接关系的示意图。
在一些实施例中,如图3C所示,在另一种连接关系下,硬件仿真工具之间可以为星型拓扑结构。例如硬件仿真工具390可以分别与硬件仿真工具392、硬件仿真工具394和硬件仿真工具396连接。硬件仿真工具可以输出查询信号至硬件仿真工具392、硬件仿真工具394和硬件仿真工具396。并接收硬件仿真工具392、硬件仿真工具394和硬件仿真工具396反馈的反馈信号。主机可以获取硬件仿真工具392、硬件仿真工具394和硬件仿真工具396反馈的反馈信号,并根据反馈信号来确定硬件仿真工具之间的连接关系。
在一些实施例中,确定所述连接关系是否存在连接错误进一步包括:确定连接关系是否满足预定的连接规则。当未满足预定的连接规则后,可以确定连接关系中出现连接错误。连接错误可以与至少一个硬件仿真工具关联。连接错误可以包括未连接、连接不到位、连接对象错误中的一种或几种。
例如,继续以图3C为例进行说明,例如确定连接关系为星型拓扑结构。实际的连接关系可以为:硬件仿真工具390可以分别与硬件仿真工具392、硬件仿真工具394和硬件仿真工具396连接。然而,连接规则可以为:硬件仿真工具390可以分别与硬件仿真工具392、硬件仿真工具394连接,硬件仿真工具394和硬件仿真工具396连接。则可以确定连接关系未满足预定的连接规则。硬件仿真工具394和硬件仿真工具396出现了连接错误,硬件仿真工具396的连接的错误可以是与硬件仿真工具390连接,或者硬件仿真工具396的连接对象错误(与硬件仿真工具390连接而未与硬件仿真工具394连接)。连接错误和硬件仿真工具390、硬件仿真工具394、硬件仿真工具396相关联。
在一些实施例中,还可以获取每个硬件仿真工具之间数据传输速率,根据数据传输速率确定硬件仿真工具之间是否连接到位。
例如,继续以图3C为例进行说明,例如确定连接关系为星型拓扑结构。实际的连接关系可以为:硬件仿真工具390可以分别与硬件仿真工具392、硬件仿真工具394和硬件仿真工具396连接。若连接规则中的硬件仿真工具390、硬件仿真工具392、硬件仿真工具394和硬件仿真工具396之间的连接关系和实际的连接关系相同,且连接规则中还存在需要使得硬件仿真工具之间的数据传输速率不小于100M/s。可以按照连接关系连接后进行测试硬件仿真工具390、硬件仿真工具392、硬件仿真工具394和硬件仿真工具396之间的数据传输速率。若硬件仿真工具390与硬件仿真工具392之间的数据传输速率为110M/s,硬件仿真工具390与硬件仿真工具394之间的数据传输速率为80M/s,硬件仿真工具390与硬件仿真工具396之间的数据传输速率为100M/s,则可以确定硬件仿真工具390和硬件仿真工具394之间连接未到位。在一个示例中,与两个硬件仿真工具之间的数据传输速率有关的数据可以经由上述I2C协议完成收发。
这样,在连接关系不满足连接规则的情况下,能够确定连接关系中哪部分出现错误,进而定位对应的硬件仿真工具的位置,能够在后续仿真过程中快速修复连接错误的部分,提高仿真效率。
图4A示出了根据本申请的第一硬件仿真工具和第二硬件仿真工具之间的连接示意图。
在一些实施例中,多个硬件仿真工具可以至少包括第一硬件仿真工具420和第二硬件仿真工具422。第一硬件仿真工具420和第二硬件仿真工具422均可以包括至少一个输出接口和至少一个输入接口。第一硬件仿真工具420的输出接口可以和第二硬件仿真工具422的输入接口连接。如图4A所示,第一硬件仿真工具420可以包括输入接口432、输入接口434、输出接口442、输出接口444、输出接口446和输出接口448。第二硬件仿真工具422可以包括输入接口436、输入接口438、输出接口452、输出接口454、输出接口456和输出接口458。
在一些实施例中,上述输出接口可以是时钟输出接口,上述输入接口可以是时钟输入接口。第一硬件仿真工具420的输出接口444可以和第二硬件仿真工具的输入接口436连接。如上所述,可以通过在输出接口和输入接口中增加对I2C总线的支持来实现查询信号和反馈信号的收发。
在一些实施例中,在硬件仿真工具存在输入接口和输出接口的情况下。主机可以经由第一硬件仿真工具420的输出接口444发送查询信号至第二硬件仿真工具422。第二硬件仿真工具422经由输入接口436接收查询信号。当第二硬件仿真工具422接收到查询信号后,第二硬件仿真工具422可以向第一硬件仿真工具420发送反馈信号。例如,第二硬件仿真工具422可以利用输入接口436向第一硬件仿真工具420发送该反馈信号。
在一些实施例中,当确定第一硬件仿真工具接收到反馈信号后。主机可以与第一硬件仿真工具连接,根据第一硬件仿真工具接收到反馈信号,确定存在第一硬件仿真工具至第二硬件仿真工具的连接。即第一硬件仿真工具的输出接口与第二硬件仿真工具的输出接口连接,第一硬件仿真工具通常情况下可以处于第二硬件仿真工具的上游。当主机通过第一硬件仿真工具的输出接口输出查询信号后。经过给定时间段后,或者在给定时间段中主机通过第一硬件仿真工具并未接收到反馈信号,已经经过了较长的时间(通常情况下,若存在下游的硬件仿真工具,则若已经正常连接的情况下,会下游的硬件仿真工具会在较短的时间内将反馈信号输出至第一硬件仿真工具),因此可以确定第一硬件仿真工具为叶子节点,不存在第一硬件仿真工具到第二硬件仿真工具的连接,即第一硬件仿真工具并未与任何其他的硬件仿真工具(包括第二硬件仿真工具)连接。
在一些实施例中,通常情况下,硬件仿真工具之间虽然已经建立了连接,但是该种连接方式可能不是有效连接,可能会出现硬件仿真工具之间虽然可以传输数据,但是传输数据的速度较慢,这种情况也可以确定为出现连接错误(例如,连接不到位)。因此,还可以获取第一硬件仿真工具的输出接口和第二硬件仿真工具的输入接口的数据传输速率。例如,可以按照第一硬件仿真工具利用输出接口输出查询信号的时间,以及第二硬件仿真工具利用输入接口接收到的查询信号的时间以及查询信号所包含的数据量来计算数据传输速率。也可以使用其他的计算数据传输速率的方式来得到数据传输速率,采用何种方式来进行计算数据传输速率在本申请的一些实施例中不进行限定。当得到数据传输速率后,可以确定数据传输速率是否低于给定阈值。给定阈值可以根据实际仿真测试中硬件仿真工具之间的标准的传输速度来确定。当数据传输速率低于给定阈值时,可以确定第一硬件仿真工具和第二硬件仿真工具之间出现连接不到位。更进一步的,可以确定第一硬件仿真工具的输出接口和第二硬件仿真工具的输入接口之间连接不到位。
图4B示出了根据本申请实施例的多个硬件仿真工具之间的具体地连接示意图。
在一些实施例中,硬件仿真工具之间的反馈信号中可以包括:所述查询信号的发送方、所述查询信号的接收方、所述查询信号的发送时间、所述查询信号的接收时间、所述输出接口的标识或所述输入接口的标识的至少一个。通常情况下,每个硬件仿真工具都会存在对应的标识信息,利用该标识信息可以确定是哪一个硬件仿真工具。如图4B所示,每个硬件仿真工具都会存在对应的标识信息,例如图4B中的SN1234-1111、SN1234-2222、SN1234-3333。图4B中以SN1234-1111、SN1234-2222进行举例说明。例如SN1234-2222可以向SN1234-1111输出反馈信号。反馈信号中可以包括:查询信号的发送方(SN1234-1111)、查询信号的接收方(SN1234-2222)、SN1234-1111发送查询信号的发送时间、SN1234-2222接收到查询信号的接收时间。输出接口的标识(SN1234-1111中的输出接口2的标识)、输入标识(SN1234-2222中的输入接口1的标识)中的至少一个。通过反馈信号中的所包含的信息,能够准确的确定硬件仿真工具之间的连接关系。
这样,在多个硬件仿真工具连接后,可以根据反馈信号能够准确的确定出实际的应用场景下,硬件仿真工具的连接关系。从而无需通过人工对硬件仿真工具的进行依次的统计,进而确定硬件仿真工具的连接关系。相较于传统的判断方式,能够提高连接关系的确定速度。将连接关系和连接规则进行对比,能够准确的找到连接关系是否出现连接错误。能够在存在大量硬件仿真工具的情况下,快速的识别出连接关系,进而识别出是否出现连接错误。及时的修正连接错误,提高仿真的效率。
本申请实施例还提供了一种用于检测多个硬件仿真工具之间的连接错误的方法。
图5示出了根据本申请实施例的一种用于检测多个硬件仿真工具之间的连接错误的方法500的流程图。方法500可以由如图2所示的仿真系统200执行。所述多个硬件仿真工具用于仿真逻辑系统设计,所述逻辑系统设计被分割为多个部分,所述多个硬件仿真工具的每一个用于仿真所述多个部分的一个或多个。方法500可以包括如下步骤。
在步骤502,分别获取与所述多个硬件仿真工具(例如,图3B中的硬件仿真工具382、384、386、288)对应的多个反馈信号(例如图3B中的反馈信号352、反馈信号354、反馈信号356)。
在一些实施例中,所述多个硬件仿真工具包括第一硬件仿真工具(例如,图4A中的420)和第二硬件仿真工具(图4A中的422),所述第一硬件仿真工具的输出接口(例如图4A中的442、444、446或448)连接到所述第二硬件仿真工具的输入接口(例如,4A中的436、438),分别获取与所述多个硬件仿真工具对应的多个反馈信号进一步包括:经由所述第一硬件仿真工具(例如,图4A中的420)的输出接口(例如图4A中的442、444、446或448)发送查询信号至所述第二硬件仿真工具(图4A中的422);响应于接收到所述查询信号,经由所述第二硬件仿真工具(图4A中的422)向所述第一硬件仿真工具(例如,图4A中的420)发送反馈信号。
在步骤504,根据所述多个反馈信号(例如图3B中的反馈信号352、反馈信号354、反馈信号356)确定所述多个硬件仿真工具(如图3A中的硬件仿真工具340、342、344,图3B中的硬件仿真工具382、384、386、288、如图3C中的硬件仿真工具390、392、394、396)之间的连接关系。
在一些实施例中,根据所述多个反馈信号确定所述硬件仿真工具之间的连接关系进一步包括:响应于接收到所述反馈信号,经由所述第一硬件仿真工具(例如,图4A中的420)根据所述反馈信号确定存在所述第一硬件仿真工具(例如,图4A中的420)到所述第二硬件仿真工具(例如,图4A中的422)的连接;或者响应于在给定时间段内未接收到所述反馈信号,确定不存在所述第一硬件仿真工具(例如,图4A中的420)到所述第二硬件仿真工具(例如,图4A中的422)的连接。
在一些实施例中,响应于确定不存在所述第一硬件仿真工具(例如,图4A中的420)到所述第二硬件仿真工具(例如,图4A中的422)的连接,确定所述连接关系是否存在连接错误进一步包括:确定所述连接错误包括所述第一硬件仿真工具(例如,图4A中的420)到所述第二硬件仿真工具(例如,图4A中的422)未连接。
在步骤506,将所述连接关系以及预定的连接规则进行对比,确定所述连接关系是否存在连接错误,所述连接规则根据所述逻辑系统设计确定。
在一些实施例中,确定所述连接关系是否存在连接错误进一步包括:
确定所述连接关系是否满足预定的连接规则;
响应于所述连接关系不满足预定的连接规则,确定所述连接关系中的连接错误,所述连接错误与所述多个硬件仿真工具中的至少一个硬件仿真工具关联;所述连接错误包括所述至少一个硬件仿真工具未连接、连接不到位、连接对象错误中的一种或几种。
在一些实施例中,所述方法500还包括:
获取所述第一硬件仿真工具(例如,图4A中的420)的输出接口(例如图4A中的442、444、446或448)和所述第二硬件仿真工具(例如,图4A中的422)的输入接口(例如,4A中的436、438)之间的数据传输速率;确定所述数据传输速率是否低于给定阈值。响应于确定所述数据传输速率低于给定阈值,确定所述连接关系是否存在连接错误进一步包括:确定所述连接错误包括所述第一硬件仿真工具(例如,图4A中的420)到所述第二硬件仿真工具(例如,图4A中的422)连接不到位。
在一些实施例中,所述反馈信号包括所述查询信号的发送方(例如4B中的SN1234-1111、SN1234-2222)、所述查询信号的接收方(例如4B中的SN1234-2222、SN1234-3333)、所述查询信号的发送时间、所述查询信号的接收时间、所述输出接口的标识(例如4B中的SN1234-1111的输出接口1、SN1234-1111的输出接口2、SN1234-1111的输出接口3、SN1234-1111的输出接口4、SN1234-2222的输出接口1、SN1234-2222的输出接口2、SN1234-2222的输出接口3、SN1234-2222的输出接口4、)或所述输入接口的标识(例如4B中的SN1234-2222的输入接口1、SN1234-2222的输入接口2、SN1234-3333的输入接口1、SN1234-3333的输入接口2、)的至少一个。
这样,在多个硬件仿真工具连接后,可以根据反馈信号能够准确的确定出实际的应用场景下,硬件仿真工具的连接关系。从而无需通过人工对硬件仿真工具的进行依次的统计,进而确定硬件仿真工具的连接关系。相较于传统的判断方式,能够提高连接关系的确定速度。将连接关系和连接规则进行对比,能够准确的找到连接关系是否出现连接错误。能够在存在大量硬件仿真工具的情况下,快速的识别出连接关系,进而识别出是否出现连接错误。及时的修正连接错误,提高仿真的效率。
本申请实施例还提供一种电子装置。该电子装置可以是图1的主机100。该主机100可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子装置执行方法500。
本申请实施例还提供一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使该电子控制装置执行方法500。
上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种用于检测多个硬件仿真工具之间的连接错误的方法,其特征在于,所述多个硬件仿真工具用于仿真逻辑系统设计,所述逻辑系统设计被分割为多个部分,所述多个硬件仿真工具的每一个用于仿真所述多个部分的一个或多个,所述方法包括:
分别获取与所述多个硬件仿真工具对应的多个反馈信号;
所述多个硬件仿真工具包括第一硬件仿真工具和第二硬件仿真工具,所述第一硬件仿真工具的输出接口连接到所述第二硬件仿真工具的输入接口,分别获取与所述多个硬件仿真工具对应的多个反馈信号进一步包括:
经由所述第一硬件仿真工具的输出接口发送查询信号至所述第二硬件仿真工具;
响应于接收到所述查询信号,经由所述第二硬件仿真工具向所述第一硬件仿真工具发送反馈信号;
根据所述多个反馈信号确定所述多个硬件仿真工具之间的连接关系;以及
将所述连接关系以及预定的连接规则进行对比,确定所述连接关系是否存在连接错误,所述连接规则根据所述逻辑系统设计确定。
2.根据权利要求1所述的方法,其特征在于,确定所述连接关系是否存在连接错误进一步包括:
确定所述连接关系是否满足预定的连接规则;
响应于所述连接关系不满足预定的连接规则,确定所述连接关系中的连接错误,所述连接错误与所述多个硬件仿真工具中的至少一个硬件仿真工具关联;所述连接错误包括所述至少一个硬件仿真工具未连接、连接不到位、连接对象错误中的一种或几种。
3.根据权利要求1所述的方法,其特征在于,根据所述多个反馈信号确定所述硬件仿真工具之间的连接关系进一步包括:
响应于接收到所述反馈信号,经由所述第一硬件仿真工具根据所述反馈信号确定存在所述第一硬件仿真工具到所述第二硬件仿真工具的连接;或者
响应于在给定时间段内未接收到所述反馈信号,确定不存在所述第一硬件仿真工具到所述第二硬件仿真工具的连接。
4.根据权利要求3所述的方法,其特征在于,响应于确定不存在所述第一硬件仿真工具到所述第二硬件仿真工具的连接,确定所述连接关系是否存在连接错误进一步包括:
确定所述连接错误包括所述第一硬件仿真工具到所述第二硬件仿真工具未连接。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述第一硬件仿真工具的输出接口和所述第二硬件仿真工具的输入接口之间的数据传输速率;
确定所述数据传输速率是否低于给定阈值。
6.根据权利要求5所述的方法,其特征在于,响应于确定所述数据传输速率低于给定阈值,确定所述连接关系是否存在连接错误进一步包括:
确定所述连接错误包括所述第一硬件仿真工具到所述第二硬件仿真工具连接不到位。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述反馈信号包括所述查询信号的发送方、所述查询信号的接收方、所述查询信号的发送时间、所述查询信号的接收时间、所述输出接口的标识或所述输入接口的标识的至少一个。
8.一种电子设备,其特征在于,包括:
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行所述一组指令以使得所述电子设备执行如权利要求1至7中任一项所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311020600.XA CN116880963B (zh) | 2023-08-14 | 2023-08-14 | 用于检测多个硬件仿真工具之间的连接错误的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311020600.XA CN116880963B (zh) | 2023-08-14 | 2023-08-14 | 用于检测多个硬件仿真工具之间的连接错误的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116880963A CN116880963A (zh) | 2023-10-13 |
CN116880963B true CN116880963B (zh) | 2024-03-15 |
Family
ID=88268228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311020600.XA Active CN116880963B (zh) | 2023-08-14 | 2023-08-14 | 用于检测多个硬件仿真工具之间的连接错误的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880963B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7318014B1 (en) * | 2002-05-31 | 2008-01-08 | Altera Corporation | Bit accurate hardware simulation in system level simulators |
CN103986524A (zh) * | 2014-05-22 | 2014-08-13 | 北京星网锐捷网络技术有限公司 | 一种单纤双向光模块、通信设备及连接错误检测方法 |
CN104504187A (zh) * | 2014-12-11 | 2015-04-08 | 安徽师范大学 | 一种基于串行通信接口的fpga在线验证结构和方法 |
CN112305356A (zh) * | 2020-10-26 | 2021-02-02 | 江苏罗思韦尔电气有限公司 | 一种便携式测试仪器及测试方法 |
CN114239477A (zh) * | 2021-12-09 | 2022-03-25 | 海光信息技术股份有限公司 | 硬件连线检查方法、装置、存储介质及电子设备 |
CN114818575A (zh) * | 2022-03-30 | 2022-07-29 | 四川创安微电子有限公司 | 一种cis芯片的数模混合仿真方法及系统 |
CN115130407A (zh) * | 2021-03-26 | 2022-09-30 | 德斯拜思有限公司 | 用于在处理器与fpga之间划分仿真模型的方法 |
-
2023
- 2023-08-14 CN CN202311020600.XA patent/CN116880963B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7318014B1 (en) * | 2002-05-31 | 2008-01-08 | Altera Corporation | Bit accurate hardware simulation in system level simulators |
CN103986524A (zh) * | 2014-05-22 | 2014-08-13 | 北京星网锐捷网络技术有限公司 | 一种单纤双向光模块、通信设备及连接错误检测方法 |
CN104504187A (zh) * | 2014-12-11 | 2015-04-08 | 安徽师范大学 | 一种基于串行通信接口的fpga在线验证结构和方法 |
CN112305356A (zh) * | 2020-10-26 | 2021-02-02 | 江苏罗思韦尔电气有限公司 | 一种便携式测试仪器及测试方法 |
CN115130407A (zh) * | 2021-03-26 | 2022-09-30 | 德斯拜思有限公司 | 用于在处理器与fpga之间划分仿真模型的方法 |
CN114239477A (zh) * | 2021-12-09 | 2022-03-25 | 海光信息技术股份有限公司 | 硬件连线检查方法、装置、存储介质及电子设备 |
CN114818575A (zh) * | 2022-03-30 | 2022-07-29 | 四川创安微电子有限公司 | 一种cis芯片的数模混合仿真方法及系统 |
Non-Patent Citations (1)
Title |
---|
嵌入式软件网络连接错误故障实时检测仿真;李柯景等;《计算机仿真》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116880963A (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9495492B1 (en) | Implementing synchronous triggers for waveform capture in an FPGA prototyping system | |
CN113947050B (zh) | 用于生成形式验证环境的方法、电子设备及存储介质 | |
CN112100957B (zh) | 用于调试逻辑系统设计的方法、仿真器、存储介质 | |
CN115827568B (zh) | 获取逻辑系统设计的数据的方法、电子设备和存储介质 | |
CN113868986A (zh) | 端口时延的约束方法、装置、电子设备、存储介质 | |
CN117910398A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
CN115809620B (zh) | 仿真逻辑系统设计的方法、电子设备和存储介质 | |
CN116880963B (zh) | 用于检测多个硬件仿真工具之间的连接错误的方法 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
US11386251B2 (en) | Logic simulation verification system, logic simulation verification method, and program | |
CN114398214A (zh) | 性能验证方法、装置、存储介质及计算机设备 | |
CN116841697B (zh) | 处理mmio请求的方法、电子装置和存储介质 | |
CN116738906B (zh) | 实现循环电路的方法、电路、装置和存储介质 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 | |
CN116401990B (zh) | 处理中断事件的方法、装置、系统和存储介质 | |
CN116594830B (zh) | 硬件仿真工具、调试方法和存储介质 | |
WO2024001891A1 (zh) | 时序库最大负载的生成方法和装置、存储介质及电子装置 | |
CN112464613A (zh) | 数字电路鲁棒性验证方法及系统 | |
CN117076225B (zh) | 背板和子卡 | |
CN115983192B (zh) | 验证系统及配置验证系统的外设子卡资源的方法 | |
CN115510782B (zh) | 定位验证错误的方法、电子设备和存储介质 |
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 |