CN115827568B - 获取逻辑系统设计的数据的方法、电子设备和存储介质 - Google Patents
获取逻辑系统设计的数据的方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115827568B CN115827568B CN202211471860.4A CN202211471860A CN115827568B CN 115827568 B CN115827568 B CN 115827568B CN 202211471860 A CN202211471860 A CN 202211471860A CN 115827568 B CN115827568 B CN 115827568B
- Authority
- CN
- China
- Prior art keywords
- signal
- logic
- user data
- data file
- target register
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Logic Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请涉及一种获取逻辑系统的数据的方法、电子设备和非暂态计算机可读存储介质。所述方法包括:接收读取第一逻辑系统设计的目标寄存器的信号的指令,所述第一逻辑系统设计在可编程逻辑器件上实现;确定第一用户数据文件中是否存在目标寄存器的信号的第一映射记录,所述第一用户数据文件保存目标寄存器和可编程逻辑器件中与信号对应的逻辑位置的多个映射记录;响应于第一用户数据文件中不存在第一映射记录,在第一逻辑位置文件中查找与目标寄存器的信号对应的第一逻辑位置;以及在第一用户数据文件中保存目标寄存器的信号和与目标寄存器的信号对应的第一逻辑位置的第一映射关系。采用本方法能够大大提高逻辑系统的数据获取效率。
Description
技术领域
本申请涉及逻辑系统设计技术领域,特别是涉及一种获取逻辑系统设计的数据的方法、电子设备和存储介质。
背景技术
仿真工具(例如,原型验证板或硬件仿真工具(emulator))可以原型化(prototype)并且调试一个包括一个或多个模块的逻辑系统设计。所述逻辑系统设计可以是,例如,用于供专门应用的集成电路(Application Specific Integrated Circuit,简称ASIC)或者片上系统芯片(System-On-Chip,简称SOC)的设计。因此,在仿真工具中被测试的逻辑系统设计又可以称为待测设计(Design Under Test,简称DUT)。仿真工具可以通过一个或多个可配置组件(例如,现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA))来仿真该待测设计,包括执行该待测设计的各种操作,从而在制造之前就测试并验证待测设计的各个模块的功能。通过在仿真工具上外接多种外设子卡还可以测试待测设计与各种外设作为一个完整系统进行运行的效果。
在采用仿真工具对逻辑系统设计进行调试的过程中,通常需要反复读取现场可编程逻辑门阵列上特定触发器(Flip Flop,简称FF)或存储器(Memory Device,简称MEM)中的数值,以确定逻辑系统设计是否正确运行或定位设计是否错误。
传统技术中,可以通过加载现场可编程逻辑门阵列的逻辑位置文件(LogicLocation File,简称LLF,通常由FPGA厂家在芯片逻辑系统设计配置到FPGA的编译实现过程中生成),根据逻辑位置文件来定位具体的触发器或存储器的位置,从而进行数据读取。然而,采用传统技术中的数据获取方法时,随着逻辑系统设计的规模越来越大,需要加载的逻辑位置文件的尺寸越来越大。并且伴随着FPGA数量的增多,逻辑位置文件的数量也越来越多。
发明内容
基于此,有必要针对上述技术问题,提供一种高效率的获取逻辑系统设计的数据的方法、电子设备和非暂态计算机可读存储介质。
第一方面,本申请提供了一种获取逻辑系统设计的数据的方法。所述方法包括:接收读取第一逻辑系统设计的目标寄存器的信号的指令,所述第一逻辑系统设计在可编程逻辑器件上实现,所述第一逻辑系统设计包括多个寄存器,所述多个寄存器包括所述目标寄存器;确定第一用户数据文件中是否存在所述目标寄存器的信号的第一映射记录,所述第一用户数据文件保存所述目标寄存器和所述可编程逻辑器件中与所述信号对应的逻辑位置的多个映射记录;响应于所述第一用户数据文件中不存在所述第一映射记录,在第一逻辑位置文件中查找与所述目标寄存器的信号对应的第一逻辑位置,所述第一逻辑位置文件在所述可编程逻辑器件上实现所述第一逻辑系统设计的过程中产生,并且包括与所述多个寄存器分别对应的逻辑位置;以及在所述第一用户数据文件中保存所述目标寄存器的信号和与所述目标寄存器的信号对应的所述第一逻辑位置的第一映射关系。
第二方面,本申请还提供了一种电子设备,包括:存储器,用于存储一组指令;以及至少一个处理器,配置为执行所述一组指令以使得所述电子设备执行如第一方面所述的方法。
第三方面,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如第一方面所述的方法。
本申请提供的一种获取逻辑系统设计的数据的方法、电子设备和非暂态计算机可读存储介质,通过第一用户数据文件保存目标寄存器和可编程逻辑器件中与信号对应的逻辑位置的多个映射记录,在接收到读取第一逻辑系统设计的目标寄存器的信号的指令的情况下,确定第一用户数据文件中是否存在目标寄存器的信号的第一映射记录,响应于第一用户数据文件中不存在第一映射记录,在第一逻辑位置文件中查找与目标寄存器的信号对应的第一逻辑位置,在第一用户数据文件中保存目标寄存器的信号和与目标寄存器的信号对应的第一逻辑位置的第一映射关系,能够大大提高逻辑系统设计的数据获取效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的示例性主机的结构示意图。
图2示出了根据本申请实施例的仿真系统的示意图。
图3A示出了根据本申请实施例的待测设计在可编程逻辑器件上实现的过程的示意图。
图3B示出了根据本申请实施例的用户数据文件的生成过程的示意图。
图3C示出了根据本申请实施例的用户数据文件的又一生成过程的示意图。
图4示出了根据本申请实施例提供的一种用于获取逻辑系统设计的数据方法的流程图。
具体实施方式
如上所述,采用传统技术中的数据获取方法时,随着逻辑系统设计的规模越来越大,需要加载的逻辑位置文件的尺寸越来越大。并且伴随着FPGA数量的增多,逻辑位置文件的数量也越来越多。因此,当用户在调试逻辑系统设计的过程中需要访问目标信号的信号值时,仿真工具需要载入逻辑位置文件来确定该目标信号对应在FPGA中的哪个位置,以读取对应信号值。由于逻辑位置文件的尺寸变大(通常可以达到几十MB),载入逻辑位置文件需要的时间越来越长,影响了用户在调试逻辑系统设计时的用户体验。逻辑位置文件的数量的增加进一步加剧了上述问题。
本申请的发明人发现,在逻辑系统设计实际的验证和调试过程中,大多数用户在调试过程中仅关注少数的触发器和/或存储器。用户在对芯片逻辑系统设计修改前和修改后会反复读取比较这几个特定的触发器和/或存储器的值,以验证当前设计是否错误。
因此,本申请针对现有逻辑系统设计验证过程中的信号读取较为固定的特点,提供了一种高效率的获取逻辑系统设计的数据的方法。本申请实施例中通过采用第一用户数据文件保存第一逻辑系统设计验证过程中用户所需的目标寄存器和可编程逻辑器件中与目标寄存器的信号对应的逻辑位置的多个映射记录,以便于在接收到读取第一逻辑系统设计的目标寄存器的信号的指令的情况下,从第一用户数据文件中查询是否存在目标寄存器的信号的第一映射记录。若第一用户数据文件中存在第一映射记录,则直接从第一用户数据文件中确定出目标寄存器的信号对应的逻辑位置,无需加载大量数据,能够大大提高逻辑系统数据获取效率。若第一用户数据文件中不存在第一映射记录,则可以从第一逻辑位置文件中查找与目标寄存器的信号对应的第一逻辑位置,并在第一用户数据文件中保存目标寄存器的信号和与目标寄存器的信号对应的第一逻辑位置的第一映射关系,能够有利于后续直接从第一用户数据文件中查询第一逻辑位置,从而提高逻辑系统设计的数据获取效率,改善用户在调试逻辑系统设计时的用户体验。
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
图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可以包括一个或多个可编程逻辑器件2026(例如,现场可编程逻辑门阵列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可以基于待测设计的描述来进行综合,以生成,例如,待测设计的门级电路网表(未示出)。待测设计的该门级电路网表可以被载入仿真工具202中运行,进而可以在仿真工具202中形成与待测设计相对应的电路结构。因此,待测设计的电路结构可以根据该描述而获得,并且相应地,待测设计中的每个块的电路结构也可以类似地获得。
图3A示出了根据本申请实施例的待测设计在可编程逻辑器件上实现的过程300的示意图。
如图3A所示,用户可以将待测设计302发送至主机100进行编译。主机100编译待测设计302可以得到用于配置可编程逻辑器件2026的二进制文件304以及逻辑位置文件306。可编程逻辑器件2026包括多个查找表,这些查找表可以根据二进制文件304进行配置以使得可编程逻辑器件2026按照待测设计302的描述进行运行,即,将与待测设计302对应的二进制文件304烧录至可编程逻辑器件2026上,以使得待测设计302在可编程逻辑器件2026上实现。
这样,待测设计302中的寄存器、触发器、存储器、或输入输出端口等(以下统称为寄存器)的信号值就与可编程逻辑器件2026中的查找表的输出形成了对应。每一个查找表具有独特的逻辑位置以标识其在可编程逻辑器件2026中的位置,以便于读取对应的寄存器的值。也就是说,以图3A为例,待测设计302在可编程逻辑器件2026上实现的过程中产生的信号3022的值可以存储在寄存器2026a中的逻辑位置1处,产生的信号3024的值可以存储在寄存器2026b中的逻辑位置2处。
逻辑位置文件306中可以保存待测设计302编译后的信号以及信号的值在可编程逻辑器件2026中对应的存储位置之间的映射关系。譬如,逻辑位置文件306中可以保存有信号3022与逻辑位置1之间的映射关系,以及信号3024与逻辑位置2之间的映射关系等。
如上所述,在一些实施例中,主机100可以记录用户查询逻辑位置的记录,并且将用户访问过的逻辑位置的记录保存到一个用户数据文件中。由于用户在调试过程中仅访问有限的几个寄存器并获取其信号值,因此,用户数据文件中通常也仅保留少数的映射关系,从而使得用户数据文件的体积较小。
因此,采用如上所述的实施例中提供的用户数据文件获取逻辑系统设计的数据与现有技术中直接加载逻辑位置文件进行获取数据的方法而言,能够缩短文件的加载时间,减少文件占用的内存空间,从而提高数据的获取效率。
图3B示出了根据本申请实施例的用户数据文件310的生成过程的示意图。
如图3B所示,逻辑位置文件306包括了与名为cntr的待测设计的寄存器中的8个信号值对应的逻辑位置。逻辑位置306的每一行从左往右分别指示:逻辑位置所在的位的偏置、逻辑位置所在的帧的地址、逻辑位置所在的帧的偏置、逻辑位置所在的超级逻辑区域(super logic region,SLR)名称、SLR编号、与逻辑位置对应的寄存器的信息。
在一些实施例中,主机100检测到用户查询了cntr/Q[0]的逻辑位置,以读取cntr/Q[0]的信号值。相应地,主机100将该映射关系存储到用户数据文件310中,如图3B所示。可以理解的是,用户数据文件310可以包括多个映射关系。
在一些实施例中,在待测设计302的验证过程中,用户可以通过主机100接收读取待测设计302的目标寄存器(譬如寄存器2026a、寄存器2026b等)上的信号值(譬如信号3022的值、信号3024的值等)的指令,在与待测设计302对应的用户数据文件310中查询是否存在与目标寄存器的信号值对应的映射记录。例如,当用户再次读取寄存器cntr/Q[0]的信号值时,主机100可以优先从用户数据文件310读取。
若用户数据文件310中存在与目标寄存器(例如,cntr/Q[0])的信号相应的映射记录,则直接从映射记录中确定出与目标寄存器的信号对应的逻辑位置并且读取对应的信号值。若用户数据文件310不存在与目标寄存器上(例如,cntr/Q[1])的信号对应的映射记录,则加载与待测设计302对应的逻辑位置文件306,从逻辑位置文件306中查询得到与目标寄存器的信号对应的逻辑位置,并将目标寄存器的信号和与目标寄存器的信号对应的逻辑位置的映射关系存储在用户数据文件310中。可以理解的是,在第一次对待测设计302进行验证的情况下,可能不存在与待测设计302对应的用户数据文件310。因此,在进行验证时,主机100可以在检测到不存在用户数据文件310时初始化用户数据文件310,即,生成与待测设计302对应的空白用户数据文件310。
因此,采用如上实施例提供的获取逻辑系统设计的数据的方法时,能够利用查询映射记录快速定位信号对应的逻辑位置,不仅简化了逻辑位置的查询流程,还有利于提高映射记录的复用率。
图3C示出了根据本申请实施例的用户数据文件320的又一生成过程的示意图。
在一些实施例中,用户可以对待测设计302进行修改,得到修改后的待测设计322。例如,在待测设计322中,将原待测设计302中的XOR门修改为了XNOR门。但是,此时用户希望查看的信号依然是信号3024。但是,由于待测设计322已经修改,因此,需要重新生成与待测设计322对应的逻辑位置文件326。
如图3C所示,主机100编译修改后的待测设计322,生成与待测设计322对应的逻辑位置文件326以及二进制文件324。将二进制文件324烧录至可编程逻辑器件2026上,以使得待测设计322在可编程逻辑器件2026上实现。
由于当前主机100编译了新的待测设计322,可能存在与信号值对应的逻辑位置发生变化的情况。譬如,在主机100编译修改前的待测设计302时,与信号3024对应的逻辑位置为逻辑位置2。而主机100在编译修改后的待测设计322时,与待测设计322中的信号3024对应的逻辑位置可能为逻辑位置2'。也即,在待测设计302修改为待测设计322后,信号3024对应的逻辑位置发生了变化。因此,需要对主机100中存储的用户数据文件310进行更新,重新生成与待测设计322对应的用户数据文件320。
例如,主机100可以对用户数据文件310和逻辑位置文件326进行数据匹配,从逻辑位置文件326中确定出与用户数据文件310中的信号相同的映射关系。采用逻辑位置文件326中的映射关系对用户数据文件310中与同一信号对应的映射关系进行更新,生成更新后的用户数据文件320。
譬如,在用户数据文件310中保存有信号3024和逻辑位置2的映射关系的情况下,可以从逻辑位置文件326中查询得到与信号3024对应的映射关系:信号3024->逻辑位置2'。采用逻辑位置文件326中映射关系对用户数据文件310中的映射关系进行更新,得到新的用户数据文件320。在用户数据文件320中保存有信号3024与逻辑位置2'之间的映射关系。
因此,采用上述实施例提供的获取逻辑系统设计的方法时,通过与原待测设计对应的用户数据文件以及与修改后的待测设计对应的逻辑位置文件生成与修改后的待测设计对应的用户数据文件,能够缩短用户数据文件重新生成的时间,从而降低主机对用户数据文件重新部署时的运算成本。
对比待测设计302和322可以发现,将原待测设计302中的XOR门修改为了XNOR门。对于原待测设计302而言,当用户试图查看待测设计302的XOR门的输出信号3026时,可以将信号3026和信号3026对应逻辑位置的映射关系存储在用户数据文件310中。但是,对于修改后的待测设计322而言,当用户试图查看待测设计322的XNOR门的输出信号3226时,由于该信号3226并不存在于原用户数据文件310中,因此产生了无法在编译阶段就提前在用户数据文件320中预存信号3226与逻辑位置的映射关系的问题。由于生成新的用户数据文件仅需要知晓要查看的信号以及在编译待测设计过程中生成的逻辑位置文件,因此,本申请的实施例还提出如下方法用于解决上述问题。
在一些实施例中,用于生成新的用户数据文件320所需的用户数据文件可以包括要调试的信号的信息(例如,信号3024和3226),而不包括映射关系。例如,用户可以在调试工具上选定要调试的信号,并保存到用户数据文件310中用于为修改的待测设计322生成新的用户数据文件320,在该用户数据文件320中包括了要调试的信号与逻辑位置的映射关系。用户在调试工具上选定要调试的信号可以包括:根据修改的待测设计322的描述生成待测设计322的电路图;接收用户在该电路图上选定的信号;将所述选定的信号保存到用户数据文件中。例如,用户可以在待测设计322的电路图上选定信号3226。
因此,采用上述实施例中提供的获取逻辑系统设计的数据的方法,能够适用于多种不同的应用场景,从而提高数据获取方法的灵活性和多样性。
在一些实施例中,可编程逻辑器件2026可以包括但不仅限于复杂可编程逻辑器件(programmable logic device即简称PLD)、可编程阵列逻辑器件(Programmable ArrayLogic,简称PAL)、现场可编程逻辑门阵列器件(FPGA)等器件中的任一种或多种。
在一些实施例中,由于现场可编程逻辑门阵列器件具备编译难度较低、编译灵活性较高并且重新编译配置效率较高等特点,因此可以采用现场可编程逻辑门阵列器件(FPGA)作为可编程逻辑器件2026。
在一些实施例中,用户数据文件(譬如图3B中的用户数据文件310或图3C中的用户数据文件320)中可以保存目标寄存器(譬如图3A中的寄存器2026a、寄存器2026b等)的信号和可编程逻辑器件(譬如图3A中的可编程逻辑器件2026)中与目标寄存器对应的逻辑位置的多个映射记录。
在一些实施例中,在得到与目标寄存器对应的逻辑位置之后,可以利用主机100驱动直接存储器访问(Direct Memory Access,简称DMA)读取仿真工具202中对应的逻辑位置处的值作为目标寄存器的信号的值,并向用户返回目标寄存器的信号的值。记录用户此次查询的目标寄存器的信号和与目标寄存器的信号对应的逻辑位置的映射关系,并将映射关系存储在用户数据文件中,以便于后续用户快速查询目标寄存器数据。
本申请实施例提供的一种获取逻辑系统设计的数据的方法,通过建立用户数据文件记录用户在逻辑系统设计验证过程中所需的目标寄存器的信号以及与目标寄存器的信号对应的逻辑位置,能够大大降低逻辑系统数据获取过程中仿真系统主机加载的数据量,从而提高逻辑系统数据获取的效率。通过在用户数据文件中不存在目标寄存器的信号对应的映射关系的情况下,从逻辑位置文件中查找目标寄存器的信号对应的逻辑位置,能够提高逻辑系统数据获取的成功率。通过在逻辑系统设计修改后,利用实现修改后的逻辑系统设计时生成的新的逻辑位置文件和原始的用户数据文件,生成新的用户数据文件,能够提高后续逻辑系统数据获取的准确率。
本申请实施例还提供了一种用于获取逻辑系统设计的数据的方法。
图4示出了根据本申请实施例提供的一种用于获取逻辑系统设计的数据方法400的流程图,其中,方法400可以由如图2所示的仿真系统200执行,更具体地由主机100执行。方法400可以包括如下步骤。
在步骤S402,主机100可以接收读取第一逻辑系统设计(譬如图3A、3C所示的待测设计302)的目标寄存器(譬如图3A所示的寄存器2026a、寄存器2026b)的信号的指令。
其中,第一逻辑系统设计在可编程逻辑器件(譬如图3A所示的可编程逻辑器件2026)上实现,第一逻辑系统设计可以包括多个寄存器,多个寄存器可以包括目标寄存器(例如,图3B的Net=cntr)。这里的寄存器可以包括触发器、存储器、或输入输出端口。
在步骤S404,主机100可以确定第一用户数据文件(譬如图3B、3C所示的用户数据文件310)中是否存在目标寄存器的信号(例如,图3B中的信号cntr/Q[0]-Q[7]的一个)的第一映射记录。
其中,第一用户数据文件保存目标寄存器的信号和可编程逻辑器件中与目标寄存器的信号对应的逻辑位置的多个映射记录。
在步骤S406,响应于第一用户数据文件中不存在第一映射记录,主机100可以在第一逻辑位置文件(譬如图3A、3B、3C所示的逻辑位置文件306)中查找与目标寄存器的信号对应的第一逻辑位置(例如,图3A中的逻辑位置2)。
其中,第一逻辑位置文件在可编程逻辑器件上实现第一逻辑系统设计的过程中产生,并且包括与多个寄存器的信号分别对应的逻辑位置。
在步骤S408,主机100可以在第一用户数据文件中保存目标寄存器的信号和与目标寄存器的信号对应的第一逻辑位置的第一映射关系。
在一些实施例中,方法400还可以包括如下步骤:在可编程逻辑器件上实现第二逻辑系统设计(譬如图3C所示的逻辑系统设计322)时,读取实现第二逻辑系统设计时产生的第二逻辑位置文件(譬如图3C所示的逻辑位置文件326)和第一用户数据文件;以及根据第二逻辑位置文件和第一用户数据文件,生成第二用户数据文件(譬如图3C所示的用户数据文件320),其中,第二逻辑系统设计是由修改第一逻辑系统设计得到,目标寄存器存在于第二逻辑系统设计,第二用户数据文件包括与目标寄存器对应的第二逻辑位置。
在一些实施例中,方法400还可以包括:根据第二逻辑系统设计(例如,修改的待测设计322)的描述生成第二逻辑系统设计的电路图;接收用户在所述电路图上选定的信号;将所述选定的信号保存到第一用户数据文件中。例如,用户可以在待测设计322的电路图上选定信号3226并保存。这样,对于存在于第二逻辑系统设计但是不存在于第一用户数据文件中的信号也可以提前指定并且借助第二逻辑位置文件生成包含上述信号的第二用户数据文件,从而便利用户的调试。
在一些实施例中,方法400还可以包括如下步骤:响应于第一用户数据文件中存在第一映射记录,在第一用户数据文件中确定与目标寄存器的信号对应的第一逻辑位置。
在一些实施例中,方法400还可以包括如下步骤:读取第一逻辑位置处的值作为目标寄存器的信号的信号值;返回所述信号的信号值。
在一些实施例中,第一用户数据文件包括所述多个逻辑位置的所在的位的偏置、所述多个逻辑位置所在的帧的地址、所述多个逻辑位置所在的帧的偏置、所述多个逻辑位置所在的超级逻辑区域名称、超级逻辑区域编号、或与所述多个逻辑位置对应的寄存器的信息。
在一些实施例中,可编程逻辑器件包括现场可编程逻辑门阵列。
在一些实施例中,方法400还可以包括如下步骤:响应于第一用户数据文件不存在,在第一逻辑位置文件中查找与目标寄存器的信号对应的第一逻辑位置;
根据目标寄存器的信号和与目标寄存器的信号对应的第一逻辑位置的第一映射关系,生成第一用户数据文件。
本申请实施例还提供一种电子设备。该电子设备可以是图1的主机100。该主机100可以包括存储器(譬如图1所示的存储器104),用于存储一组指令;以及至少一个处理器(譬如图1所示的处理器102),配置为执行该组指令以使得所述电子设备执行方法400。
本申请实施例还提供一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使该电子控制装置执行方法400。
上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种获取逻辑系统设计的数据的方法,其特征在于,所述方法包括:
接收读取第一逻辑系统设计的目标寄存器的信号的指令,所述第一逻辑系统设计在可编程逻辑器件上实现,所述第一逻辑系统设计包括多个寄存器,所述多个寄存器包括所述目标寄存器;
确定第一用户数据文件中是否存在所述目标寄存器的信号的第一映射记录,所述第一用户数据文件保存所述目标寄存器和所述可编程逻辑器件中与所述信号对应的逻辑位置的多个映射记录;
响应于所述第一用户数据文件中不存在所述第一映射记录,在第一逻辑位置文件中查找与所述目标寄存器的信号对应的第一逻辑位置,所述第一逻辑位置文件在所述可编程逻辑器件上实现所述第一逻辑系统设计的过程中产生,并且包括与所述多个寄存器的信号分别对应的逻辑位置;以及
在所述第一用户数据文件中保存所述目标寄存器的信号和与所述目标寄存器的信号对应的所述第一逻辑位置的第一映射关系。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述可编程逻辑器件上实现第二逻辑系统设计时,读取实现所述第二逻辑系统设计时产生的第二逻辑位置文件和所述第一用户数据文件;以及
根据所述第二逻辑位置文件和所述第一用户数据文件,生成第二用户数据文件,其中,所述第二逻辑系统设计是由修改所述第一逻辑系统设计得到,所述目标寄存器存在于所述第二逻辑系统设计,所述第二用户数据文件包括与所述目标寄存器的信号对应的第二逻辑位置。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一用户数据文件中存在所述第一映射记录,在所述第一用户数据文件中确定与所述目标寄存器的信号对应的第一逻辑位置。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
读取所述第一逻辑位置处的值作为所述目标寄存器的信号的信号值;
返回所述信号的信号值。
5.根据权利要求1所述的方法,其特征在于,所述目标寄存器包括触发器、存储器或输入输出端口。
6.根据权利要求1所述的方法,其特征在于,所述第一用户数据文件包括多个逻辑位置的所在的位的偏置、所述多个逻辑位置所在的帧的地址、所述多个逻辑位置所在的帧的偏置、所述多个逻辑位置所在的超级逻辑区域名称、超级逻辑区域编号、或与所述多个逻辑位置对应的寄存器的信息。
7.根据权利要求1所述的方法,其特征在于,所述可编程逻辑器件包括现场可编程逻辑门阵列。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一用户数据文件不存在,在所述第一逻辑位置文件中查找与所述目标寄存器的信号对应的所述第一逻辑位置;
根据所述目标寄存器的信号和与所述目标寄存器的信号对应的所述第一逻辑位置的第一映射关系,生成所述第一用户数据文件。
9.一种电子设备,其特征在于,包括:
存储器,用于存储一组指令;
以及至少一个处理器,配置为执行所述一组指令以使得所述电子设备执行权利要求1至8中任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211471860.4A CN115827568B (zh) | 2022-11-23 | 2022-11-23 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211471860.4A CN115827568B (zh) | 2022-11-23 | 2022-11-23 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115827568A CN115827568A (zh) | 2023-03-21 |
CN115827568B true CN115827568B (zh) | 2023-07-28 |
Family
ID=85530532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211471860.4A Active CN115827568B (zh) | 2022-11-23 | 2022-11-23 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827568B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117332733A (zh) * | 2023-08-18 | 2024-01-02 | 芯华章科技(厦门)有限公司 | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 |
CN117313596A (zh) * | 2023-09-01 | 2023-12-29 | 芯华章科技(厦门)有限公司 | 一种定位逻辑系统设计的错误的方法、设备以及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9355198B1 (en) * | 2013-12-16 | 2016-05-31 | Altera Corporation | Method and apparatus for performing late binding of control status registers in a design compilation flow |
CN106597250A (zh) * | 2016-11-24 | 2017-04-26 | 深圳市紫光同创电子有限公司 | 一种可编程逻辑器件测试方法及设备 |
CN111857867A (zh) * | 2020-06-30 | 2020-10-30 | 新华三技术有限公司 | 一种逻辑文件的加载方法、装置和网络设备 |
CN112464593A (zh) * | 2020-11-25 | 2021-03-09 | 海光信息技术股份有限公司 | Rom位映射关系生成方法、装置、处理器芯片及服务器 |
CN112541310A (zh) * | 2020-12-18 | 2021-03-23 | 广东高云半导体科技股份有限公司 | 逻辑综合控制方法及装置 |
CN113919254A (zh) * | 2021-11-13 | 2022-01-11 | 奇捷科技(深圳)有限公司 | 寄存器传输级信号映射构建方法、装置、设备和存储介质 |
CN113918322A (zh) * | 2021-09-09 | 2022-01-11 | 芯华章科技股份有限公司 | 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 |
CN114398184A (zh) * | 2022-01-21 | 2022-04-26 | 海光信息技术股份有限公司 | 一种内存控制器验证装置以及验证系统 |
-
2022
- 2022-11-23 CN CN202211471860.4A patent/CN115827568B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9355198B1 (en) * | 2013-12-16 | 2016-05-31 | Altera Corporation | Method and apparatus for performing late binding of control status registers in a design compilation flow |
CN106597250A (zh) * | 2016-11-24 | 2017-04-26 | 深圳市紫光同创电子有限公司 | 一种可编程逻辑器件测试方法及设备 |
CN111857867A (zh) * | 2020-06-30 | 2020-10-30 | 新华三技术有限公司 | 一种逻辑文件的加载方法、装置和网络设备 |
CN112464593A (zh) * | 2020-11-25 | 2021-03-09 | 海光信息技术股份有限公司 | Rom位映射关系生成方法、装置、处理器芯片及服务器 |
CN112541310A (zh) * | 2020-12-18 | 2021-03-23 | 广东高云半导体科技股份有限公司 | 逻辑综合控制方法及装置 |
CN113918322A (zh) * | 2021-09-09 | 2022-01-11 | 芯华章科技股份有限公司 | 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 |
CN113919254A (zh) * | 2021-11-13 | 2022-01-11 | 奇捷科技(深圳)有限公司 | 寄存器传输级信号映射构建方法、装置、设备和存储介质 |
CN114398184A (zh) * | 2022-01-21 | 2022-04-26 | 海光信息技术股份有限公司 | 一种内存控制器验证装置以及验证系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115827568A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115827568B (zh) | 获取逻辑系统设计的数据的方法、电子设备和存储介质 | |
CN111931445B (zh) | 用于调试逻辑系统设计的方法、仿真器及存储介质 | |
CN112100957B (zh) | 用于调试逻辑系统设计的方法、仿真器、存储介质 | |
CN112287569B (zh) | 用于仿真逻辑系统设计的方法、电子设备及存储介质 | |
CN114707453A (zh) | 芯片功能的验证方法、装置、电子设备及存储介质 | |
CN117910398A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN115827636A (zh) | 存储及从波形数据库读取逻辑系统设计的仿真数据的方法 | |
CN115422866A (zh) | 用于在仿真器上仿真逻辑系统设计的方法及相关设备 | |
CN117234831B (zh) | 一种基于多核cpu的芯片功能测试方法及系统 | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN117076337B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 | |
CN112506806B (zh) | 用于调试程序的方法、电子设备及存储介质 | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
CN115758967A (zh) | 一种验证网表寄存器功能的方法、系统、设备和存储介质 | |
CN112131806A (zh) | 验证设计的编译方法、电子设备及存储介质 | |
CN221746452U (zh) | 硬件仿真工具和接口适配器 | |
CN116738906B (zh) | 实现循环电路的方法、电路、装置和存储介质 | |
CN116880963B (zh) | 用于检测多个硬件仿真工具之间的连接错误的方法 | |
CN117933151A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN118504478A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 | |
CN112989736B (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 |