Method for verifying a logic system design in an edge system, edge system

By running computing container images in an edge system, the problem of difficulty in managing unique FPGA devices when combining prototype verification with cloud platform is solved, and the management of cascading hardware simulation tools is realized, improving user experience and avoiding the load problem of cloud platform.

CN114925644BActive Publication Date: 2025-06-10XINHUAZHANG TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210391096.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-14
Publication Date
2025-06-10
Estimated Expiration
2042-04-14

AI Technical Summary

Technical Problem

In the prior art, when prototype verification is combined with cloud platforms, it is difficult to manage the unique FPGA devices and topological connection designs of each company, and it is impossible to effectively manage cascading hardware simulation tools or devices.

Method used

By running the computing container image in the edge system, receiving the logical system design verification task sent by the cloud server, obtaining the computing container image, and connecting the hardware simulation tool through the resource mapper to perform the verification task.

Benefits of technology

It avoids the lag problem caused by excessive computing, network or storage load during peak periods, ensures that verification tasks can continue to run when there are problems in the network, improves the user experience, and realizes the management of hardware simulation tools.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114925644B_ABST
    Figure CN114925644B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method for verifying a logic system design in an edge system and an edge system. The method includes: receiving a verification task of the logic system design sent by a cloud server; receiving, via the cloud server, a computing container image corresponding to the verification task; obtaining description information of the logic system design and loading the description information into the computing container image; running the computing container image, connecting the computing container image and a hardware simulation tool through a resource mapper, and using the computing container image and the hardware simulation tool to execute the verification task. By adopting this method, it is possible to manage cascaded hardware simulation tools or devices, and the verification task can still be continued when there are network problems, improving the user experience.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of simulation verification, and particularly to a method for verifying a logic system design in an edge system and an edge system. Background Art

[0002] In the electronics industry, due to the increasing scale of the semiconductor industry, EDA (Electronic Design Automation) plays an increasingly important role. Most manufacturers using this technology are foundry manufacturers engaged in semiconductor device manufacturing.

[0003] Currently, the EDA industry usually uses the elastic computing power of cloud platforms, so it usually goes to the cloud more through the HPC (High Performance Computing) method. In the current EDA industry, prototype verification is usually required to ensure the reliability and stability of functional modules.

[0004] However, there are the following problems in the current combination of prototype verification and cloud platforms: For the prototype verification in the EDA industry, it is necessary to use its own FPGA (Field Programmable Gate Array) devices, but the FPGA devices corresponding to each company are different, and each has its own corresponding topology connection design. Because the current cloud platform data is compatible with the hardware products of each company, it is difficult to consider various situations of the devices of each company. Devices such as GPUs and FPGA devices are plugged into servers or physical machines and are not connected to the platform through the network. Usually, the cloud platform is connected to the server or physical machine, so the current cloud platform does not consider the cascading situation between devices and cannot manage cascaded hardware simulation tools or devices. Summary of the Invention

[0005] Based on this, in view of the above technical problems, it is necessary to provide a method for verifying a logic system design in an edge system and an edge system that can manage cascaded hardware simulation tools or devices.

[0006] In a first aspect, the present disclosure provides a method for verifying a logic system design in an edge system. The method includes:

[0007] Receiving a verification task of the logic system design sent by a cloud server;

[0008] Receiving, via the cloud server, a computing container image corresponding to the verification task;

[0009] Obtaining description information of the logic system design and loading the description information into the computing container image;

[0010] Run the computing container image, connect the computing container image and the hardware simulation tool through the resource mapper, and execute the verification task by using the computing container image and the hardware simulation tool.

[0011] In one embodiment, the receiving of the computing container image corresponding to the verification task via the cloud server further includes:

[0012] Determine the estimated resources required to execute the verification task via the cloud server;

[0013] Determine whether the edge system meets the estimated resources via the cloud server;

[0014] In response to the edge system meeting the estimated resources, send the computing container image to the edge system.

[0015] In one embodiment, the receiving of the computing container image corresponding to the verification task via the cloud server further includes:

[0016] In response to the edge system not meeting the estimated resources, the method further includes:

[0017] Add the verification task to the queue of tasks to be executed.

[0018] In one embodiment, the computing container image includes at least one of the following: software required to run the verification task, operating environment, or configuration.

[0019] In one embodiment, the loading of the description information into the computing container image includes:

[0020] Load the directory where the description information of the logical system design is located into the computing container image, and the directory includes a local directory or a cloud directory of the cloud server.

[0021] In one embodiment, the resource mapper at least includes:

[0022] A configuration file parsing unit configured to parse a configuration file associated with the hardware simulation tool;

[0023] A driver unit configured to drive the hardware simulation tool according to the configuration file via an interface of the edge system;

[0024] An event processing unit configured to send first information associated with the verification task to the hardware simulation tool via an interface of the edge system and receive second information associated with the execution result of the verification task from the hardware simulation tool via the interface of the edge system.

[0025] In one embodiment, the first information is stored in a first format, and the second information is stored in a second format; the resource mapper is further configured to convert the first information stored in the first format into the second format, and convert the second information stored in the second format into the first format.

[0026] In a second aspect, the present disclosure also provides an edge system, which includes:

[0027] An interface for connecting to a hardware emulation tool;

[0028] A memory for storing a set of computer instructions; and

[0029] At least one processor for executing the computer instructions to cause the edge system to execute the method described above.

[0030] In a third aspect, the present disclosure also provides a verification cloud computing system for logical system design, which includes:

[0031] A cloud server for receiving the verification task of the logical system design from a user host and sending the verification task to the edge system; and

[0032] The edge system as described above, wherein the cloud server and the user host are in the same private network.

[0033] In a fourth aspect, the present disclosure also provides a computer-readable storage medium. The computer-readable storage medium has a computer program stored thereon, and when the computer program is executed by a processor, the steps of the above method are implemented.

[0034] A method for verifying a logical system design in an edge system and an edge system proposed by the present disclosure can avoid problems such as lag and poor experience caused by excessive loads on the cloud platform in peak periods when running a computing container image in the edge system. And because the computing container image runs in the edge system, the verification task can still continue to run when there are network problems, improving the user experience. And when performing the verification task, the computing container image can access the hardware emulation tool through the resource mapper, enabling the management of the hardware emulation tool. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the specific embodiments of the present disclosure or the technical solutions in the prior art, the following will briefly introduce the drawings required for the description of the specific embodiments or the prior art. Obviously, the following drawings are some embodiments of the present disclosure. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0036] Figure 1A Schematic diagram of an electronic device in an embodiment of the present disclosure;

[0037] Figure 1B Schematic diagram of a cloud server in an embodiment of the present disclosure;

[0038] Figure 1C Schematic diagram of a cloud computing system in an embodiment of the present disclosure;

[0039] Figure 2A Schematic diagram of the architecture of a cloud server in an embodiment of the present disclosure;

[0040] Figure 2B Schematic diagram of the architecture of an edge system in an embodiment of the present disclosure;

[0041] Figure 2C Schematic diagram of the architecture of a resource mapper in an embodiment of the present disclosure;

[0042] Figure 3A Schematic diagram of a loop process in an embodiment of the present disclosure;

[0043] Figure 3B Schematic diagram of a verification process in an embodiment of the present disclosure;

[0044] Figure 4 Schematic diagram of the process of a method for verifying a logic system design in an edge system in an embodiment of the present disclosure. Detailed implementation manners

[0045] In order to make the objectives, technical solutions and advantages of the present disclosure clearer, the present disclosure will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present disclosure, but not to limit the present disclosure.

[0046] It should be noted that the terms "first", "second", etc. in the specification and claims of this article and the above-mentioned drawings are used to distinguish similar objects, and do not necessarily need to be used to describe a specific order or sequence. It should be understood that such data used may be interchanged under appropriate circumstances so that the embodiments described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, device, product or equipment including a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products or equipment.

[0047] In this document, the term "and / or" is merely a description of the relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone. Additionally, in this document, the character " / " generally indicates that the associated objects before and after are in an "or" relationship.

[0048] Among the technical terms in this disclosure,

[0049] Going to the cloud: It refers to the process in which an enterprise conducts applications in aspects such as information infrastructure, management, and business based on the Internet, and connects to social resources, shared services, and capabilities through the Internet and cloud computing means.

[0050] Prototype verification (verification task): It is a verification method of the SOC based on FPGA, generally after the front-end RTL (Register Transfer Level) design and RTL simulation. The FPGA and ASIC front-end codes are both developed based on VerilogHDL, so theoretically the ASIC code can run on the FPGA platform. Before tape-out, prototype verification is a verification method to determine the correctness of the chip function as much as possible.

[0051] VNC (Virtual Network Console): It is the abbreviation of Virtual Network Console.

[0052] Currently, EDA going to the cloud usually targets traditional cloud computing platforms. However, traditional cloud computing platforms generally run in data centers and can be normally applied based on good computing, storage, and network conditions. And usually, the requirements of general application scenarios are considered, which are suitable for applications that do not require the use of heterogeneous devices and have low requirements for data security. There are also the following problems for traditional cloud computing platforms when combined with prototype verification:

[0053] (1) Since the software for prototype verification usually uses a Qt-written interface and connects to a remote server through VNC to use the software. After going to the cloud, the cloud platform adopts a centralized management method for applications, and the cloud platform is restricted by conditions such as the computing power and network of the cloud server. Once the server load is too high or the network has problems, it will affect the user experience, such as problems like VNC lag and unclear display. When a large number of terminals connected to the cloud computing platform are started simultaneously and reach the business peak period, the cloud platform and the terminals will have problems of slow response due to instantaneous and high-concurrency business processing requests, thereby affecting the user experience, and there may also be problems such as prototype verification interruption, affecting work efficiency.

[0054] (2) The design files (e.g., RTL files) used in EDA software are relatively important. However, when performing prototype verification, if the design files are placed on the cloud platform, there may be security issues.

[0055] A method for verifying a logic system design in an edge system and an edge system provided by the present disclosure provide a new method for performing verification tasks between an edge system and a cloud server, aiming to at least partially solve the above-mentioned multiple problems.

[0056] It should be understood that the verification tasks in the embodiments of the present disclosure are only exemplified by prototype verification. In fact, it may also include other tasks during electronic design automation, and the specific types of verification tasks are not limited in the present disclosure.

[0057] Figure 1A It is a schematic diagram of the electronic device 100 in the embodiments of the present disclosure.

[0058] As Figure 1A shown, the electronic device 100 may include: a processor 102, a memory 104, a network interface 106, a peripheral interface 108, and a bus 110. Among them, the processor 102, the memory 104, the network interface 106, and the peripheral interface 108 are communicatively connected to each other inside the computer device through the bus 110.

[0059] The processor 102 may be a central processing unit (CPU), an image processor, a neural network processor (NPU), a microcontroller (MCU), a programmable logic device, a digital signal processor (DSP), an application specific integrated circuit (ASIC), or one or more integrated circuits. The processor 102 may be used to execute functions related to the technologies described in the present disclosure. In some embodiments, the processor 102 may further include multiple processors integrated as a single logic component. As Figure 1A shown, the processor 102 may include multiple processors 102a, 102b, and 102c.

[0060] The memory 104 may be configured to store data (e.g., instructions, description information of the logic system design, etc.). As Figure 1AAs shown, the data stored in the memory may include program instructions (e.g., program instructions for implementing the method of verifying a logic system design in an edge system according to the present disclosure) and data to be processed (e.g., the memory may store data generated during the execution of verification tasks, etc.). The processor 102 can also access the program instructions and data stored in the memory and execute the program instructions to operate on the data to be processed. The memory 104 may include a volatile storage device or a non-volatile storage device. In some embodiments, the memory 104 may include a random access memory (RAM), a read-only memory (ROM), an optical disc, a magnetic disk, a hard disk, a solid state drive (SSD), a flash memory, a memory stick, etc.

[0061] The network interface 106 can be configured to provide communication with other external devices to the electronic device 100 via a network. The network can be any wired or wireless network capable of transmitting and receiving data. For example, the network can be a wired network, a local wireless network (e.g., Bluetooth, WiFi, near field communication (NFC), etc.), a cellular network, the Internet, or a combination of the above. It can be understood that the type of the network is not limited to the above specific examples. In some embodiments, the network interface 106 may include any combination of any number of network interface controllers (NICs), radio frequency modules, transceivers, modems, routers, gateways, adapters, cellular network chips, etc.

[0062] The peripheral interface 108 can be configured to connect the electronic device 100 to one or more peripheral devices to achieve information input and output. For example, the peripheral devices may include input devices such as a keyboard, a mouse, a touchpad, a touch screen, a microphone, various sensors, etc. and output devices such as a display, a speaker, a vibrator, an indicator light, etc. In some embodiments, the peripheral interface 108 can be connected to a hardware emulation tool. In some embodiments, the electronic device 100 can be connected to a hardware emulation tool through a resource mapper.

[0063] The bus 110 can be configured to transmit information between various components of the electronic device 100 (e.g., the processor 102, the memory 104, the network interface 106, and the peripheral interface 108), such as an internal bus (e.g., a processor-memory bus), an external bus (USB port, PCI-E bus), etc.

[0064] It should be noted that although the architecture of the above electronic device 100 only shows the processor 102, the memory 104, the network interface 106, the peripheral interface 108, and the bus 110, in the specific implementation process, the architecture of the electronic device 100 may also include other components necessary for normal operation. In addition, those skilled in the art can understand that the architecture of the above electronic device 100 may also only include the components necessary to implement the solution of the embodiments of the present disclosure, and does not necessarily include all the components shown in the figure.

[0065] It can be understood that Figure 1A the electronic device 100 can be used as a cloud server or the host of an edge system.

[0066] Figure 1B Fig. shows a schematic diagram of a cloud server 120 provided by an embodiment of the present disclosure.

[0067] As Figure 1B shown, the cloud server 120 may include multiple cloud servers (122, 124). These cloud servers may be, for example, Figure 1A the electronic device 100 shown. The cloud server 120 can be used to provide cloud computing resources, compute container images, and description information of logical system designs.

[0068] Figure 1C Fig. shows a schematic diagram of a cloud computing system provided by an embodiment of the present disclosure.

[0069] As Figure 1C shown, the cloud computing system of the present disclosure may include a cloud server 120 and an edge system 130.

[0070] In some embodiments, the cloud server 120 may receive a verification task of a logical system design from a user host and send the verification task to the edge system 130. The logical system design is usually a chip design implemented using Electronic Design Automation (EDA) tools.

[0071] The edge system 130 may include an edge host 134 and a hardware emulation tool 134a.

[0072] The edge host 134 may be, for example, as Figure 1AThe electronic device 100 shown. The edge host 134 can be connected to the hardware emulation tool 134a to perform verification tasks, and provide an interface connected to the cloud server 120 and an interface connected to the hardware emulation tool 134a. In some embodiments, the edge host 134 can include a host actually operated by a user. For example, verification tasks can be sent to the cloud server 120. The hardware emulation tool 134a can include a prototype verification tool, a daughter card connected to the prototype verification tool, a hardware emulator, etc.

[0073] Although Figure 1C only a limited number of edge systems 130 are shown in the figure, those skilled in the art can understand that any number of edge systems 130 can be provided according to actual needs. The edge host 134 and the hardware emulation tool 134a do not necessarily need to be provided in a one-to-one pairing form. For example, one edge host 134 can be docked with multiple hardware verification tools 134a.

[0074] Figure 2A It is a schematic architecture diagram of the cloud server 120 in the embodiments of the present disclosure. The cloud server 120 can include a console 220 and a data storage system 240. Usually, a user can control the cloud server 120 through the console 220.

[0075] The console 220 can be configured to provide an interactive interface for the user to control the cloud server 120. In some embodiments, the console 220 can provide a command-line console / visual interface to the user (for example, an employee of a chip design company), allowing the user to select an edge system 130 for performing verification tasks, determine description information of the logical system design (such as a design file, an RTL file, etc.), and determine a computing container image corresponding to the verification task. The console 220 can also allow the user to send verification tasks to the cloud server 120 through a local host. It can be understood that although the console 220 runs on the cloud server 120, the command-line console / visual interface of the console 220 can be displayed on the user's local host.

[0076] The computing container image includes at least one of the following: software required to run the verification task, a running environment, or parameter configuration, etc. In some embodiments, the parameter configuration can define resources to be invoked in the edge system 130, such as CPU resources, memory resources, and hardware emulation tool resources, etc.

[0077] The data storage system 240 can store description files, simulation data, etc. that the user needs for logical system design.

[0078] The console 220 may further include an interface 2201. Through the interface 2201, the cloud server 120 can be connected to the edge system 130, and send the description of the logical system design (e.g., source code) and the computing container image corresponding to the verification task to the edge system 130 through the interface 2201. It can be understood that the interface 2201 can be connected to multiple edge systems 130, and this interface is usually a software interface.

[0079] In some embodiments, the console 220 may further include an analyzer 2202, configured to apply for the right to use the edge host to ensure that the edge system 130 performing the verification task can meet the estimated resources required for the verification task (e.g., network traffic data, space data, CPU data, memory data, etc. occupied when performing the verification task). The analyzer 2202 may also be configured to apply for the right to use the edge system 130 at a preset time point.

[0080] In some embodiments, the analyzer 2202 may determine the estimated resources required for the verification task, and determine whether there is an edge system 130 among one or more edge systems 130 connected to the cloud server 120 that meets the required estimated resources. If there is an edge system 130 that meets the estimated resources, the cloud server 120 may occupy the edge system 130 and instruct the edge system 130 to perform the verification task. The cloud server 120 may also be configured to apply for the right to use the edge system 130 at a preset time point, occupy the edge system 130 to perform the verification task, and at this time point, the edge system 130 does not perform other verification tasks.

[0081] If there is no edge system 130 that meets the estimated resources, and all edge systems 130 connected to the cloud server 120 do not meet the estimated resources, the above verification task still needs to be executed. At this time, the analyzer 2202 may create a pending execution queue, add the verification task to the pending execution queue, and then execute a loop process.

[0082] Figure 3A This is a schematic diagram of the loop process 300 in the embodiments of the present disclosure.

[0083] The loop process 300 may include: the analyzer 2202 creates a pending execution queue 302, adds the verification task to the pending execution queue 304, and when any edge system 130 meets the estimated resources of the verification task in the pending execution queue, sends the computing container image to the edge system 130 that meets the estimated resources, so that the edge system 130 executes the verification task in the pending execution queue 306. It can be understood that the above-mentioned edge systems 130 are all edge systems connected to the cloud server 120.

[0084] Further, in some embodiments, when the analyzer 2202 determines that there is no edge system 130 in the edge system 130 that meets the estimated resources for the verification task, the analyzer 2202 may create a pending execution queue and add the verification tasks that cannot be executed to the pending execution queue. After a period of time (this period of time can be 10 minutes, 5 minutes, etc., and those skilled in the art can set it according to the actual scenario, and the specific time is not limited in the embodiments of the present disclosure), the analyzer 2202 determines the estimated resources required for the verification tasks in the pending execution queue. The verification tasks in the pending execution queue can be one or more, and all can be arranged in reverse order or forward order according to the time of adding to the pending execution queue (usually, they can be arranged in reverse order according to the time of adding, so as to ensure that the verification tasks added to the pending execution queue first are executed first to ensure the priority). The analyzer 2202 continues to determine whether there is any edge system 130 among each edge system 130 connected to the cloud server 120 that meets the estimated resources for the verification tasks in the above-mentioned pending execution queue. If there is, it occupies the edge system 130. If not, the analyzer 2202 continues to determine whether there is any edge system 130 among each edge system 130 connected to the cloud server 120 that meets the estimated resources for the verification tasks in the above-mentioned pending execution queue until the analyzer 2202 determines that there is an edge system 130 that meets the estimated resources for the verification tasks in the pending execution queue, and occupies the edge system 130 to execute the verification task. The analyzer 2202 deletes the executed verification tasks from the pending execution queue to obtain the first pending execution queue. Then, the analyzer 2202 determines whether there are still verification tasks in the first pending execution queue. If there are, the analyzer 2202 continues to determine whether there is any edge system 130 among each edge system 130 connected to the cloud server 132 that meets the estimated resources for the verification tasks in the above-mentioned pending execution queue until the analyzer 2202 determines that there are no such verification tasks in the first pending execution queue.

[0085] The console 220 may further include a dispatcher 2203, configured to send the description information for logical system design stored in the data storage system 240, or the description information for logical system design stored in the local host, to the edge system 130 that executes the verification task, and send the computing container image to the edge system 130 that executes the verification task, and send the verification task to the edge system 130.

[0086] In some embodiments, after the dispatcher 2203 sends the verification task to the edge system 130, the analyzer 2202 may determine whether the edge system 130 can execute the verification task and perform the verification process.

[0087] Figure 3BA schematic diagram of the provided verification process 310 according to an embodiment of the present disclosure is shown. The verification process 310 may include: The analyzer 2202 may determine the estimated resources 312 required for the edge system 130 to perform the verification task, the analyzer 2202 may determine whether the edge system 130 meets the estimated resources 314, and in response to the edge system 130 meeting the estimated resources, the distributor 2203 may send the computing container image 316 to the edge system 130. Then, the edge system 130 performs the verification task. The situation where the analyzer 2202 determines that the edge system 130 connected to the cloud server 120 does not meet the estimated resources may include any one or more of the network traffic data, spatial data, CPU data, etc. occupied when the edge system 130 fails to perform the verification task. It may also include that the edge system 130 is occupied and performing other tasks (the tasks may include: other verification tasks or design tasks during chip design). In response to the edge system 130 not meeting the estimated resources, the analyzer 2202 may add the verification task to the to-be-executed queue 318 to execute the above-mentioned loop process 300.

[0088] Figure 2B It is a schematic diagram of the architecture of the edge system 130 in an embodiment of the present disclosure. As Figure 2B shown, the edge system 130 may include a downloader 202, a receiver 204, a runner 206, and an interface 208. Among them, the downloader 202, the receiver 204, and the runner 206 may be implemented by one or more processors.

[0089] The downloader 202 may be configured to download the computing container image for performing the verification task into the edge system 130.

[0090] The receiver 204 may be configured to receive the directory where the description information for logical system design sent by the distributor 2203 is located, and receive the verification task of the logical system design sent by the cloud server 120, and receive the computing container image corresponding to the verification task sent by the cloud server 120.

[0091] The runner 206 may be configured to load the description information into the computing container image downloaded by the edge system 130 and run the computing container image.

[0092] The interface 208 may include an interface 2082 connected to the hardware emulation tool 134a and an interface 2804 connected to the cloud server 120.

[0093] In some exemplary embodiments, when running a computing container image in the runner 206, the local host can connect to the emulation entry (such as an IP or port) exposed by the computing container image through remote control software (e.g., VNC (Virtual Network Console)), and then use the computing container image and the hardware emulation tool 134a to perform verification tasks.

[0094] In some embodiments, the runner 206 can mount the directory where the description information of the logic system design is located into the computing container image. Mounting can refer to a process in which the operating system makes computer files and directories on a storage device (such as a hard disk, CD-ROM, or shared resource) accessible to users through the computer's file system. After mounting, the computing container image can read the description information of the logic system design. The description information of the logic system design can be stored in the local host or in the cloud server 120. Accordingly, the directory where the description information of the logic system design is located can include: the local directory of the local host or the cloud directory of the cloud server.

[0095] The runner 206 may also include a resource mapper configured to connect the computing container image and the hardware emulation tool 134a.

[0096] Figure 2C The architecture diagram of the resource mapper 162 in the embodiments of the present disclosure is shown.

[0097] As Figure 2C shown, the resource mapper 162 at least includes the following units to implement connecting and controlling the hardware emulation tool 134a.

[0098] The configuration file parsing unit 1621 can be used to parse the configuration file associated with the hardware emulation tool 134a, read the configuration information in the configuration file, and then manage the hardware emulation tool 134a through the configuration information.

[0099] The driver unit 1623 can be used to connect and drive the hardware emulation tool 134a according to the configuration information in the configuration file and through the interface 2082 of the edge system 130. Driving the hardware emulation tool 134a can include: initializing the hardware emulation tool 134a, reading and writing the hardware emulation tool 134a, and configuring the state of the hardware emulation tool 134a. The state can include the connection state and the initial state, etc.

[0100] The event processing unit 1625 can be used to send first information associated with a verification task to the hardware simulation tool 134a through the interface 2082 of the edge system 130. This first information generally refers to the information corresponding to the verification task. The event processing unit 1625 can also receive second information associated with the execution result of the verification task from the hardware simulation tool 134a through the interface 2082 of the edge system 130. This second information generally refers to the execution result information returned by the hardware simulation tool 134a to the edge system 130. Usually, the information corresponding to the verification task sent and the result information of the verification task received are in different formats, so they are called the first information and the second information.

[0101] In some embodiments, the first information is stored in a first format, and the second information is stored in a second format. It should be noted that the first format and the second format can be selected and set according to the actual situation, and the specific formats are not limited in this embodiment. When the edge system 130 controls the hardware simulation tool 134a through the resource mapper 162, there may be a situation where the first information associated with the verification task in the edge system 130 cannot be recognized by the hardware simulation tool 134a; there may also be a situation where the second information returned after the hardware simulation tool 134a performs the verification task cannot be recognized by the edge system 130. Therefore, the resource mapper 162 can also convert the formats of the first information and the second information. For example, convert the first information stored in the first format into the second format, and convert the second information stored in the second format into the first format.

[0102] In some exemplary embodiments, the resource mapper 162 can be developed through the Mapper common code SDK to implement the functions of the configuration file parsing unit 1621, the driver unit 1623, and the event processing unit 1625.

[0103] In some embodiments, the cloud server 120 can be built through Kubernetes and retain the characteristics of Kubernetes. Therefore, the cloud server 120 can manage containerized applications on the connected edge system 130. Components in KubeEdge can be deployed in both the cloud server 120 and the edge system 130.

[0104] In some embodiments, after the hardware simulation tool 134a is connected to the computing container image in the edge system 130 through the resource mapper 162, the cloud server 120 can manage the hardware simulation tool 134a through components in KubeEdge, such as the DeviceController. For example, corresponding management actions can be issued according to the status of the hardware simulation tool 134a, and the status of the hardware simulation tool 134a can be viewed in real time when the edge system 130 executes the verification task. The cloud server 120 can also allocate, release, and reserve specific hardware simulation tools 134a for the verification task.

[0105] Figure 4 FIG. 400 is a flowchart of a method for verifying a logic system design in an edge system according to an embodiment of the present disclosure. The method 400 may be executed by an electronic device 100 as shown in Figure 1A FIG. In the present disclosure, the verification task may include prototype verification, which is generally a verification method for determining the correctness of chip functions. It should be understood that the present disclosure only takes prototype verification as an example for illustration. In fact, it may also include other tasks in electronic design automation, and the specific type of the verification task is not limited in the present disclosure. The verification task may be sent by the user from the local host to the cloud server 120, and received by the cloud server 120. Then, the cloud server 120 sends the verification task to the edge system 130. The method 400 may include the following steps:

[0106] In step S402, the edge system (e.g., Figure 2B the edge system 130 in Figure 1B , Figure 1C or Figure 2A ) may receive the verification task of the logic system design sent by the cloud server (e.g.,

[0107] the cloud server 120 in Figure 1C ). In some embodiments, the cloud server (e.g., Figure 1CContainerized applications on the edge system 130). Components in KubeEdge can be deployed in both the cloud server and the edge system, so the cloud server can allow multiple edge systems to access. Usually, the CloudCore component in KubeEdge can be deployed in the cloud server, and then communication with the edge system can be achieved through the CloudCore component. Further, the cloud server can connect multiple edge systems based on the websocket or quic protocol. The CloudCore component can ensure that the business is not affected when there are problems with the link between the cloud server and the edge system. The EdgeCore component in KubeEdge can be deployed in the edge system, and then communication with the cloud server can be achieved through the EdgeCore component. When a verification task needs to be performed, the user can input the verification task into the cloud server. The cloud server can find the edge system that can perform the verification task among the multiple connected edge systems, and send the verification task designed by the logic system to the edge system that performs the verification task. The edge system can receive the verification task sent by the cloud server.

[0108] In step S404, the edge system can receive the computing container image corresponding to the verification task via the cloud server.

[0109] In some embodiments, a large number of different types of container images for electronic design can usually be stored in the cloud server. Therefore, after receiving the verification task, the edge system can determine the computing container image corresponding to the above verification task in the cloud server and download the computing container image to the edge system. Alternatively, the cloud server can determine the computing container image corresponding to the above verification task and send the computing container image to the edge system. The computing container image can include at least one of software, operating environment, or configuration required to run the verification task.

[0110] In some embodiments, the edge system receiving the computing container image corresponding to the verification task via the cloud server further includes: determining the estimated resources required to execute the verification task via the cloud server (for example, Figure 3B step 312 in Figure 3B ); determining whether the edge system meets the estimated resources via the cloud server (for example, Figure 3B step 314 in Figure 3B ); in response to the edge system meeting the estimated resources, sending the computing container image to the edge system (for example, Figure 3BDescription. After adding it to the to-be-executed queue, the cloud computing system (e.g., Figure 1C the cloud computing system shown) can execute a loop process (e.g., Figure 3A the loop process 300 in

[0111] In this way, by determining the estimated resources required to execute the verification task, and then determining whether the edge system meets the estimated resources, the edge system capable of executing the verification task can be determined. Subsequently, this edge system can be used to execute the verification task. Before executing the verification task, the cloud computing system can directly determine the edge system for executing this verification task, and then directly find the corresponding edge system when executing the verification task, improving the processing speed when executing the verification task.

[0112] In some embodiments, the loop process may include: the cloud server can create a to-be-executed queue (e.g., Figure 3A step 302 in Figure 3A ), add the verification task to the to-be-executed queue (e.g., Figure 3A step 304 in Figure 3A ), and when any edge system meets the estimated resources of the verification task in the to-be-executed queue, send the computing container image to the edge system that meets the estimated resources, so that the edge system executes the verification task in the to-be-executed queue (e.g.,

[0113] step 306 in

[0114] In step S406, the edge system can obtain the description information of the logical system design and load the description information into the computing container image. In some embodiments, the edge system (e.g., Figure 2B the edge system 130 in

[0115] In step S408, the edge system can run the computing container image, through a resource mapper (e.g., Figure 2CThe resource mapper 162) in connects the computing container image and the hardware emulation tool (e.g., Figure 1C or Figure 2B the hardware emulation tool 134a) in, and executes the verification task by using the computing container image and the hardware emulation tool.

[0116] After the edge system executes the verification task, a verification result can be obtained. The user can choose whether to download the verification result from the edge system, or whether to upload the verification result to the cloud server, and whether to delete the description information of the logic system design and the computing container image.

[0117] In some embodiments, the resource mapper (e.g., Figure 2C the resource mapper 162) in may include:

[0118] A configuration file parsing unit (e.g., Figure 2C the configuration file parsing unit 1621) in, which may be configured to parse the configuration file associated with the hardware emulation tool.

[0119] A driver unit (e.g., Figure 2C the driver unit 1623) in, which may be configured to drive the hardware emulation tool according to the configuration file via the interface of the edge system (e.g., Figure 2B the interface 2082) in.

[0120] An event processing unit (e.g., Figure 2C the event processing unit 1625) in, which may be configured to send first information associated with the verification task to the hardware emulation tool via the interface of the edge system (e.g., Figure 2B the interface 2082) in, and receive second information associated with the execution result of the verification task from the hardware emulation tool via the interface of the edge system (e.g., Figure 2B the interface 2082) in.

[0121] In some embodiments, the first information may be stored in a first format, and the second information may be stored in a second format. The resource mapper may also be configured to convert the first information stored in the first format into the second format, and convert the second information stored in the second format into the first format.

[0122] In the above method for verifying a logic system design in an edge system, KubeEdge is deployed in both the cloud server and the edge system, which can ensure that when there are problems with the link between the cloud server and the edge system, the service is not affected. And by running the computing container image in the edge system, it can avoid problems such as lag and poor experience caused by excessive load on the cloud platform during peak periods in terms of computing, network, or storage.

[0123] Since the computing container image runs on the edge system, the verification task can continue to run even when there are network problems, improving the user experience. When performing the verification task, the computing container image can access the hardware emulation tool through the resource mapper to manage the hardware emulation tool. After the verification task, the user can choose whether to download the verification result from the edge system or upload the verification result to the cloud server, and whether to delete the description information of the logical system design and the computing container image to achieve centralized management of the verification result. Deleting the description information of the logical system design and the computing container image can ensure security.

[0124] It should be understood that although the steps in the flowcharts involved in the above-described embodiments are shown in sequence according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise clearly stated in this article, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-described embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or steps or stages in other steps.

[0125] The embodiments of the present disclosure also provide an edge system (e.g., Figure 2B the edge system 130 in

[0126] An interface (e.g., Figure 2B the interface 2082 shown in Figure 1C , Figure 2B , Figure 2C ) can be used to connect to a hardware emulation tool (e.g.,

[0127] A memory that can store a set of computer instructions.

[0128] And at least one processor that can be used to execute the computer instructions to cause the edge system to execute a method for verifying a logical system design in the edge system consistent with the present disclosure, such as one of the above exemplary methods (e.g., Figure 3A the method 300 shown in Figure 3B or the method 310 shown in Figure 4 or the method 400 shown in

[0129] The embodiments of the present disclosure also provide a cloud computing system (e.g., Figure 1CThe cloud computing system shown (130), the cloud computing system may include cloud servers (e.g., cloud servers 122, 124 as shown in Figure 1B and an edge system (e.g., edge system 130 as shown in Figure 2B ).

[0130] The cloud server can be used to receive the verification task of the logical system design from a user host (e.g., the local host mentioned above), and send the verification task to the edge system.

[0131] And the edge system, wherein the cloud server and the user host are in the same private network to ensure security.

[0132] The user host can be any computer or server in the private network, and can also include a cloud server.

[0133] The present disclosure also provides a computer-readable storage medium, on which a computer program can be stored. When the computer program is executed by a processor, it implements a method for verifying a logical system design in an edge system consistent with the present disclosure, such as one of the above exemplary methods (e.g., Figure 3A method 300 shown or Figure 3B method 310 shown or Figure 4 method 400 shown).

[0134] The present disclosure also provides a computer program product, which may include a computer program. When the computer program is executed by a processor, it implements a method for verifying a logical system design in an edge system consistent with the present disclosure, such as one of the above exemplary methods (e.g., Figure 3A method 300 shown or Figure 3B method 310 shown or Figure 4 method 400 shown).

[0135] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided by the present disclosure can include at least one of non-volatile and volatile memories. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided by the present disclosure can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided by the present disclosure can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., without limitation.

[0136] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.

[0137] The above-described embodiments merely represent several implementation manners of the present disclosure. The description thereof is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present disclosure. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present disclosure, several modifications and improvements can still be made, and these all belong to the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be subject to the appended claims.

Claims

1. A method for verifying a logic system design in an edge system, characterized in that, the method includes: Receiving the verification task of the logic system design sent by the cloud server; Receiving, via the cloud server, a computing container image corresponding to the verification task; Obtaining the description information of the logic system design and loading the description information into the computing container image; Running the computing container image, connecting the computing container image and the hardware simulation tool through a resource mapper, and using the computing container image and the hardware simulation tool to execute the verification task; wherein, the resource mapper at least includes: A configuration file parsing unit configured to parse a configuration file associated with the hardware simulation tool; A driving unit configured to drive the hardware simulation tool according to the configuration file via an interface of the edge system; An event processing unit configured to send first information associated with the verification task to the hardware simulation tool via the interface of the edge system, and receive second information associated with the execution result of the verification task from the hardware simulation tool via the interface of the edge system.

2. The method according to claim 1, characterized in that, the receiving, via the cloud server, a computing container image corresponding to the verification task further includes: Determining, via the cloud server, the estimated resources required to execute the verification task; Determining, via the cloud server, whether the edge system meets the estimated resources; In response to the edge system meeting the estimated resources, sending the computing container image to the edge system.

3. The method according to claim 2, characterized in that, the receiving, via the cloud server, a computing container image corresponding to the verification task further includes: In response to the edge system not meeting the estimated resources, the method further includes: Adding the verification task to a pending execution queue.

4. The method according to claim 3, characterized in that, the method further includes: When any edge system meets the estimated resources of the verification task in the pending execution queue, sending the computing container image to the edge system that meets the estimated resources.

5. The method according to claim 1, characterized in that, the computing container image includes at least one of the following: software required to run the verification task, a running environment, or a configuration.

6. The method according to claim 1, characterized in that, the loading the description information into the computing container image includes: Loading the directory where the description information of the logic system design is located into the computing container image, and the directory includes a local directory or a cloud directory of the cloud server.

7. The method according to claim 1, characterized in that, the first information is stored in a first format, and the second information is stored in a second format; the resource mapper is further configured to convert the first information stored in the first format into the second format, and convert the second information stored in the second format into the first format.

8. An edge system, characterized in that, the edge system includes: An interface for connecting a hardware simulation tool; A memory for storing a set of computer instructions; and At least one processor for executing the computer instructions to cause the edge system to implement the method according to any one of claims 1-7.

9. A cloud computing system, Characterized in that The cloud computing system includes: A cloud server for receiving a verification task of a logical system design from a user host and sending the verification task to an edge system; and The edge system according to claim 8, wherein the cloud server and the user host are in the same private network.

10. A computer-readable storage medium having a computer program stored thereon, Characterized in that The computer program, when executed, implements the method according to any one of claims 1-7.

Citation Information

Patent Citations

  • Automatic verification method, system and device for multi-core SoC chip

    CN112580295A