An electronic design automation system based on network front-end technology

Through an electronic design automation system based on network front-end technology, multi-region block rendering and splicing methods are adopted to solve the problems of lag in the interface and low rendering efficiency of traditional EDA client, achieving a smoother user experience and faster rendering speed.

CN120234861BActive Publication Date: 2025-08-12SHAOXING XINNA TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510705693.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-05-29
Publication Date
2025-08-12
Estimated Expiration
2045-05-29

AI Technical Summary

Technical Problem

The interface of traditional EDA client is prone to lag, unable to process big data, low rendering efficiency, and poor user experience.

Method used

An electronic design automation system based on network front-end technology is adopted, including data analysis module, business processing module, lightweight data model module and graphical interface interaction module. The canvas is divided into multiple area blocks through multiple off-screen rendering threads. Each rendering thread synchronously extracts and renders lightweight business data, and the graphical interface module is spliced to form a complete design diagram.

Benefits of technology

Improves the smoothness of the user interface, avoids interface lag and fake death, and greatly improves rendering speed and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120234861B_ABST
    Figure CN120234861B_ABST
Patent Text Reader

Abstract

The present invention discloses an electronic design automation system based on network front-end technology, which belongs to the field of electronic design automation technology and includes: a data parsing module for monitoring the inflow of EDA data and parsing the EDA data; a business processing module for processing the EDA data into lightweight business data, which includes multiple off-screen rendering threads, which determine the zoom level based on the user's operation and divide the canvas into multiple area blocks, each rendering thread synchronously extracts the lightweight business data in the corresponding area block from the lightweight data model module and renders it, and passes the rendering result to the graphical interface interaction module; the lightweight data model module is used to store the lightweight business data; the graphical interface interaction module is used to splice the rendering results to form a complete design drawing, and the design drawing is displayed to the user for the user to operate. The present invention makes the user interface smoother, avoids interface freezes and pseudo-deadness, and improves the rendering speed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of electronic design automation, and in particular relates to an electronic design automation system based on network front-end technology. Background Art

[0002] Electronic Design Automation (EDA) refers to the use of computers to complete chip design. Traditional EDA clients such as Figure 1 As shown in the figure, its workflow is as follows: (1) After the client is opened, the main thread starts the user interface and data parsing thread; (2) After the EDA data comes in, the data parsing thread will start the parsing work, parse the above EDA data into a format that the client can recognize, and transfer the data to the view main thread after completion; (3) The view main thread obtains the parsed data and starts the data adaptation work, and organizes the messy graphic information after parsing according to certain rules based on the pre-defined data structure; (4) The view main thread takes the organized graphic data and starts the drawing program, and draws it on the canvas in sequence according to the coordinates, width, height and other information until all the graphic information is drawn; (5) After the drawing is completed, the circuit schematic canvas changes from loading to the drawn image.

[0003] When the user pans and zooms, the program redraws the canvas in real time based on the pan and zoom information (that is, it re-renders the base graphics 10 million times, and graphics outside the window are not drawn), presenting the shifted and scaled circuit schematic on the view interface. This step must be repeated for each user operation. After the user pans and zooms, finds the target device graphic and clicks to highlight it. The program then proceeds to locate the data structure of the graphic based on the coordinates of the user's click, partially erases and redraws the graphic and any overlapping graphics, draws a highlighted border around the graphic, and simultaneously draws the remaining graphics in the erased area.

[0004] When the user drags, the x and y coordinates of the graphic data are updated in real time based on the mouse position. The rendering program performs a partial erase and redraw of the graphic at the previous frame's position and the current position at a fixed frame rate (e.g., once every 30ms). This process repeats until the user completes the drag operation.

[0005] Therefore, after receiving EDA data, traditional EDA clients directly transfer the data to the view process. As shown in the figure, the view process includes data parsing and view threads. The view thread not only handles graphics data adaptation, real-time rendering, and interactive logic, but also requires resources to display the user interface. The threads, which handle business operations, real-time rendering, and display, compete for hardware resources, resulting in interface lag. Traditional EDA clients experience interface freezes when encountering even slightly larger amounts of data, resulting in a poor user experience. Furthermore, traditional EDA client rendering relies on a single core, resulting in low rendering efficiency and making interactive graphics nearly impossible with large-scale graphics. Summary of the Invention

[0006] The purpose of the present invention is to provide an electronic design automation system based on network front-end technology to solve the problems of existing EDA client interfaces being prone to lag, unable to process big data, and having low rendering efficiency.

[0007] In order to achieve the above object, the technical solution of the present invention is as follows:

[0008] The present invention relates to an electronic design automation system based on network front-end technology, comprising:

[0009] Data parsing module, used to monitor the inflow of EDA data and parse the inflowing EDA data;

[0010] The business processing module processes the parsed EDA data into lightweight business data. The business processing module includes multiple off-screen rendering threads. The business processing module determines the zoom level based on user operations and divides the canvas into multiple areas. Each rendering thread synchronously extracts the lightweight business data in the corresponding area from the lightweight data model module and renders it, passing the rendering results to the graphical interface interaction module.

[0011] Lightweight data model module, used to store lightweight business data;

[0012] The graphical interface interaction module is used to splice the rendering results passed by each rendering thread to form a complete design drawing, display the design drawing to the user and allow the user to operate.

[0013] Preferably, the EDA data monitored by the data parsing module includes a plurality of disassembled data packets, and parsing the EDA data includes collecting and splicing the plurality of data packets, and decoding the spliced EDA data.

[0014] Preferably, the specific steps of the business processing module for processing the parsed EDA data into lightweight business data are:

[0015] (1) Traverse the component graphic array in the EDA data, generate rendering data about the components, and add the rendering data of the components to the lightweight data model module;

[0016] (2) Traverse the connection array in the EDA data to generate rendering data about the connection, and add the rendering data of the connection to the lightweight data model module.

[0017] Preferably, the rendering step of the business processing module includes:

[0018] (3) Extracting the boundary information of the canvas;

[0019] (4) Calculate the length and width of the design drawing based on the coordinates of the upper left corner and the lower right corner;

[0020] (5) Calculate the scaling amount based on the length and width of the design drawing;

[0021] (6) Set the minimum number of blocks n and the zoom level level to divide the canvas into regions;

[0022] (7) Generate a set of data structures about the mapping relationship between zoom levels and area blocks. Based on the data structures of the mapping relationship, each rendering thread searches for graphic objects and / or connections in the corresponding area blocks from the lightweight data model module, completes the rendering of each area block, and passes it to the graphical interface interaction module.

[0023] Preferably, after each rendering thread completes the rendering of the corresponding area block in step (7), the rendering image corresponding to each area block at the zoom level is cached in the lightweight data model module.

[0024] Preferably, the graphical interface interaction module is provided for user operations, including translation and zooming operations on the design drawing and dragging operations on a certain graphic in the design drawing.

[0025] Compared with the prior art, the technical solution provided by the present invention has the following beneficial effects:

[0026] 1. The electronic design automation system based on network front-end technology involved in the present invention includes a business processing module and a graphical interface interaction module. The business processing module divides the canvas into multiple area blocks, extracts lightweight business data from the corresponding area blocks and renders them. The graphical interface interaction module splices the transmitted rendering results to form a complete design drawing, isolating the business processing process and the view process, thereby making the user interface smoother, avoiding the problem of interface freeze, and preventing false freezes during big data processing.

[0027] 2. The business processing module involved in the present invention includes multiple off-screen rendering threads. The business processing module determines the zoom level based on the user's operation and divides the canvas into multiple area blocks. Each rendering thread synchronously extracts lightweight business data in the corresponding area block and renders it. The entire image that was originally to be drawn in real time can be split into multiple graphic blocks and handed over to multiple CPU cores for processing, which greatly improves the rendering speed. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] Figure 1 is a structural diagram of a traditional EDA client;

[0029] Figure 2 A structural diagram of an electronic design automation system based on network front-end technology involved in the present invention;

[0030] Figure 3 Completed the first rendering of a flowchart for an electronic design automation system based on EDA data;

[0031] Figure 4 A flowchart of the system when the user performs pan and zoom operations;

[0032] Figure 5 This is the system flowchart when the user drags a certain graphic separately;

[0033] Figure 6 A comparison diagram of renderings performed by the system according to the present invention and traditional tools. DETAILED DESCRIPTION

[0034] In order to further understand the content of the present invention, the present invention is described in detail with reference to the examples. The following examples are used to illustrate the present invention but are not used to limit the scope of the present invention.

[0035] Refer to the attached Figure 2 As shown, the present invention relates to an electronic design automation system based on network front-end technology, which includes a data parsing module, a business processing module, a lightweight data model module and a graphical interface interaction module;

[0036] The data parsing module is used to monitor the inflow of EDA data and parse the incoming EDA data. EDA data is a piece of text content. According to the TCP protocol, this text will be split into multiple data packets for transmission during the socket transmission process. The data parsing module collects and splices these disassembled data packets, and decodes the spliced EDA data, converting the text into structured data that can be read by the program, and eliminating redundant data to form structured data in C++ or other languages.

[0037] The business processing module processes the parsed EDA data into lightweight business data. The business processing module includes multiple off-screen rendering threads. The business processing module determines the zoom level based on the user's operation and divides the canvas into multiple area blocks. Each rendering thread synchronously extracts the lightweight business data in the corresponding area block from the lightweight data model module and renders it, and passes the rendering results to the graphical interface interaction module.

[0038] Refer to the attached Figure 3 As shown in the figure, the specific steps for processing EDA data into lightweight business data are:

[0039] (1) Traverse the component graphic array in the EDA data, read the position information and size information of the components, create graphic objects for each component based on the size information and match the position information with the graphic objects, generate rendering data about the components, and add the rendering data of the components to the lightweight data model module;

[0040] (2) Traverse the connection array in the EDA data, read the line width, start and end points, and direction information of the connection, treat the connection as a rectangular graphic, calculate the boundary information of the rectangular graphic based on the line width, start and end points, and direction information, generate rendering data about the connection, and add the rendering data of the connection to the lightweight data model module;

[0041] The method for calculating the boundary information of a rectangular graphic is as follows:

[0042] (2.1) The line width of the line is read as W, and the coordinates of the starting and ending points are (x1, y1) and (x2, y2) respectively;

[0043] (2.2) Determine the direction of the line. If the line is horizontal, proceed to (2.3). If the line is vertical, proceed to (2.4).

[0044] (2.3) Let the coordinates of the upper left corner of the rectangle be (min(x1, x2), y1 - W / 2), the width of the rectangle be |x2 - x1|, and the height of the rectangle be W;

[0045] (2.4) Let the coordinates of the upper left corner of the rectangular figure be (x1 - W / 2, min(y1, y2)), the width of the rectangular figure be W, and the height of the rectangular figure be |y2 - y1|.

[0046] The lightweight data model module is used to store these lightweight business data.

[0047] Reference Figure 3 As shown, the rendering steps of each rendering thread from the lightweight data model module include:

[0048] (3) Extract the boundary information of the canvas: define the coordinates of the upper left corner of the canvas as (minX, minY), the coordinates of the lower right corner as (maxX, maxY), initialize the boundary information of the canvas, that is, let minX, minY , maxX and maxY are all 0, traverse all rendering data in the lightweight data model module, and update the coordinates of the upper left corner and the lower right corner of the design drawing based on the rendering data of the graphic object or line, specifically: when the X-axis coordinate of the upper left corner of the graphic object or line in the rendering data is less than minX, use the X-axis coordinate of the upper left corner of the graphic object or line to replace the minX of the design drawing; when the Y-axis coordinate of the upper left corner of the graphic object or line in the rendering data is less than minY, use the Y-axis coordinate of the upper left corner of the graphic object or line to replace the minY of the design drawing; when the X-axis coordinate of the lower right corner of the graphic object or line in the rendering data is greater than maxX, use the X-axis coordinate of the lower right corner of the graphic object or line to replace the maxX of the design drawing; when the Y-axis coordinate of the lower right corner of the graphic object or line in the rendering data is greater than maxY, use the Y-axis coordinate of the lower right corner of the graphic object or line to replace the maxY of the design drawing;

[0049] (4) Calculate the length and width of the canvas based on the coordinates of the upper left corner and the lower right corner. The calculation formula is:

[0050] width = maxX – minX;

[0051] height = maxY – minY;

[0052] Among them, width represents the width of the design drawing, and height represents the length of the design drawing;

[0053] (5) Calculate the scaling amount: Set the initial scaling amount scale to 1, compare the shapes of the canvas and the design drawing, if the aspect ratio of the canvas is larger than that of the design drawing, scale the design drawing according to the canvas height so that the design drawing height just matches the canvas, in this case, let scale = canvas height / design drawing height; if the aspect ratio of the canvas is smaller than or the same as that of the design drawing, scale the design drawing according to the canvas width so that the design drawing width just matches the canvas, in this case, let scale = canvas width / design drawing width;

[0054] (6) Set the minimum number of blocks n and the zoom level level, n=4, and divide the canvas into regions. The number of regions is nlevel, and the length and width of each region are:

[0055] ,

[0056] ,

[0057] Among them, blockWidth and blockHeight represent the length and width of the area block respectively, and width and height represent the length and width of the design drawing respectively;

[0058] (7) Generate a set of data structures about the mapping relationship between zoom levels and area blocks. Based on the data structures of the mapping relationship, each rendering thread searches for the graphic objects and / or connections in the corresponding area blocks from the lightweight data model module, completes the rendering of each area block, and passes it to the graphical interface interaction module. After each rendering thread completes the rendering of the corresponding area block, it caches the rendering images corresponding to each area block at the zoom level in the lightweight data model module.

[0059] The graphical interface interaction module is used to splice the rendering results passed by each rendering thread to form a complete design drawing, display the design drawing to the user and allow the user to operate. User operations include translation, zooming and dragging of a certain graphic.

[0060] Refer to the attached Figure 4 As shown, when the user performs pan and zoom operations, the system performs the following steps:

[0061] S101. When the user pans or zooms, the business processing module determines the blocks that need to be loaded by calculating the intersection of the design and the canvas, and determines whether new blocks have been loaded. If so, the process proceeds to S102; if not, the process proceeds to S105.

[0062] The specific steps of determining whether a new region block is loaded are:

[0063] S1011. Get the canvas width and height before scaling and panning;

[0064] S1012. Get the offset and scaling factor;

[0065] S1013. Initialize the intersection area of the canvas and the design drawing, setting the coordinates of the upper left corner of the intersection area (minX', minY') to (0, 0) and the coordinates of the lower right corner of the intersection area (maxX', maxY') to (0, 0);

[0066] S1014. Calculate the interception area and display area based on the X-axis coordinate and width of the rendering area, namely:

[0067] a) When the X-axis coordinate of the design after scaling and translation is greater than 0, set the X-axis coordinate of the upper left corner of the intersection area to 0; then determine whether the sum of the X-axis coordinate of the design after scaling and translation and the design width is less than the canvas width. If so, set the X-axis coordinate of the lower right corner of the intersection area to be equal to the width of the design after scaling and translation; if not, set the X-axis coordinate of the lower right corner of the intersection area to be equal to the difference between the canvas width and the X-axis coordinate of the design after scaling and translation;

[0068] b) When the X-axis mark of the scaled and translated design is not greater than 0, set the X-axis coordinate of the upper left corner of the intersection area to the negative of the X-axis coordinate of the scaled and translated design; then determine whether the difference between the canvas width and the X-axis coordinate of the scaled and translated design is greater than the width of the scaled and translated design. If so, set the X-axis coordinate of the lower right corner of the intersection area to be equal to the width of the scaled and translated design; if not, set the X-axis coordinate of the lower right corner of the intersection area to be equal to the difference between the canvas width and the X-axis coordinate of the scaled and translated design;

[0069] S1015. Calculate the interception area and display area based on the Y-axis coordinate and width of the rendering area, namely:

[0070] a) When the Y-axis coordinate of the design after scaling and translation is greater than 0, set the Y-axis coordinate of the upper left corner of the intersection area to 0; then determine whether the sum of the Y-axis coordinate of the design after scaling and translation and the design height is less than the height of the canvas. If so, set the Y-axis coordinate of the lower right corner of the intersection area to be equal to the height of the design after scaling and translation; if not, set the Y-axis coordinate of the lower right corner of the intersection area to be equal to the difference between the canvas height and the Y-axis coordinate of the design after scaling and translation;

[0071] b) When the Y-axis mark of the scaled and translated design is not greater than 0, set the Y-axis coordinate of the upper left corner of the intersection area to the negative of the Y-axis coordinate of the scaled and translated design; then determine whether the difference between the canvas height and the Y-axis coordinate of the scaled and translated design is greater than the height of the scaled and translated design. If so, set the Y-axis coordinate of the lower right corner of the intersection area to be equal to the height of the scaled and translated design; if not, set the Y-axis coordinate of the lower right corner of the intersection area to be equal to the difference between the canvas height and the Y-axis coordinate of the scaled and translated design;

[0072] S1016. Obtain the area blocks that need to be loaded in the design drawing through the intersecting area, compare them with the already loaded area blocks, and determine whether there are new area blocks that need to be loaded;

[0073] S102. Request the business processing module to operate the zoom level level and the newly loaded area block;

[0074] S103. The business processing module searches for a rendering corresponding to the corresponding area block from the lightweight data model module. If a corresponding rendering is found, the rendering is passed to the graphical interface interaction module. If a corresponding rendering is not found, a rendering corresponding to the area block is generated according to steps (3) to (7), the rendering is cached in the lightweight data model module, and the newly generated rendering is passed to the graphical interface interaction module.

[0075] S104. The graphical interface interaction module stitches the renderings corresponding to all the area blocks;

[0076] S105. The graphical interface interaction module calculates the displacement and scaling of the design drawing and redraws the entire drawing.

[0077] Refer to the attached Figure 5 As shown in the figure, when the user drags a graphic in the design drawing, the system performs the following steps:

[0078] S201. The user requests graphic information under the current mouse position through the graphical interface interaction module;

[0079] S202. Convert the mouse position information into coordinate points of the design drawing, and search the corresponding area block at a deeper zoom level from the rendering data based on the coordinate points of the design drawing, and traverse the components and / or connections in the area block;

[0080] The calculation method for converting the mouse position information into the design coordinates is:

[0081] ,

[0082] ,

[0083] Where (realX, realY) are the real coordinates in the design drawing, (x, y) are the coordinates of the mouse on the canvas, transform.x and transform.y represent the transformation amounts on the x and y axes, respectively, and transform.k represents the scale. Zoom is determined by scrolling the mouse wheel, and the transformation amounts on the x and y axes are determined by the mouse's displacement.

[0084] S203. Mark the components and / or connections in the area block, and erase and redraw all area blocks with the marked components and / or connections;

[0085] S203. The redrawn area block at the current zoom level is passed to the graphical interface interaction module, which stitches it together to form a new design;

[0086] S204 determines whether the drag operation is completed. If not, repeat S201-S203. If completed, the updated area block is passed to the business processing module, the components and / or connection marks are removed, and the area block is redrawn;

[0087] S205: Each area block is transferred to the graphical interface interaction module to complete the splicing.

[0088] Based on the above system, the present invention also selected a case containing 5 million primitives and ran it three times using the system involved in the present invention and the standard tool (golden tool) in the EDA industry with the same hardware resources. The comparison results are as follows: Figure 6 As shown, the first screen rendering time of the present invention is only 1 / 2 to 1 / 3 of that of the golden tool. In addition, this is only a comparison of the first screen rendering. Since the present invention does not require frequent large-scale detection and rendering, the interactive experience is smoother than that of traditional EDA rendering solutions.

[0089] The present invention has been described in detail above with reference to the embodiments. However, the contents described are only preferred embodiments of the present invention and should not be considered as limiting the scope of the present invention. All equivalent changes and improvements made within the scope of the present invention should still fall within the scope of the patent coverage of the present invention.

Claims

1. An electronic design automation system based on network front-end technology, characterized by: It includes: Data parsing module, used to monitor the inflow of EDA data and parse the inflowing EDA data; The business processing module processes the parsed EDA data into lightweight business data. The business processing module includes multiple off-screen rendering threads. The business processing module determines the zoom level based on user operations and divides the canvas into multiple areas. Each rendering thread synchronously extracts the lightweight business data in the corresponding area from the lightweight data model module and renders it, passing the rendering results to the graphical interface interaction module. The specific steps of the business processing module for processing the parsed EDA data into lightweight business data are as follows: (1) Traverse the component graphic array in the EDA data, generate rendering data about the components, and add the rendering data of the components to the lightweight data model module; (2) Traverse the connection array in the EDA data to generate rendering data about the connection, and add the rendering data of the connection to the lightweight data model module; The rendering step of the business processing module includes: (3) Extracting the boundary information of the canvas; (4) Calculate the length and width of the design drawing based on the coordinates of the upper left corner and the lower right corner; (5) Calculate the scaling amount based on the length and width of the design drawing; (6) Set the minimum number of blocks n and the zoom level level to divide the canvas into regions; (7) Generate a set of data structures about the mapping relationship between zoom levels and area blocks. Based on the data structures of the mapping relationship, each rendering thread searches for the graphic objects and / or connections in the corresponding area blocks from the lightweight data model module, completes the rendering of each area block, and passes it to the graphical interface interaction module; Lightweight data model module, used to store lightweight business data; The graphical interface interaction module is used to splice the rendering results passed by each rendering thread to form a complete design drawing, display the design drawing to the user and allow the user to operate.

2. The electronic design automation system based on network front-end technology according to claim 1, characterized in that: The EDA data monitored by the data parsing module includes multiple disassembled data packets. Parsing the EDA data includes collecting and splicing the multiple data packets, and decoding the spliced EDA data.

3. The electronic design automation system based on network front-end technology according to claim 1, characterized in that: In step (7), after each rendering thread completes the rendering of the corresponding area block, the rendering image corresponding to each area block at the zoom level is cached in the lightweight data model module.

4. The electronic design automation system based on network front-end technology according to claim 1, characterized in that: The graphical interface interaction module allows users to perform operations, including panning and zooming of the design drawing and dragging of a certain graphic in the design drawing.

Citation Information

Patent Citations

  • An electronic design automation system based on voice interaction

    CN117744543B

  • Chip layout cloud parallel rendering and rendering data scheduling method and device and cloud

    CN118428288A