Method, device and storage medium for processing eye diagram data
By identifying user operation types and employing linear prefetching, skip loading, and matrix block loading strategies, eye diagram data processing in EDA simulations is optimized, solving the problems of high memory overhead and system crashes, and achieving high-efficiency data processing and computational performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- JULIN TECH (SHANGHAI) CO LTD
- Filing Date
- 2026-03-11
- Publication Date
- 2026-06-12
AI Technical Summary
In existing electronic design automation (EDA) simulations, the way waveform data is processed results in large memory overhead, cannot effectively reduce data volume, leads to a high risk of system crash, and cannot meet the requirements for high-precision calculations.
By identifying user operation types, and employing linear prefetching, skip loading, and matrix block loading strategies, eye diagram data is partially read from the first storage space to the second storage space, thus constructing a memory scheduling mechanism and optimizing the data loading process.
It improves the processing efficiency of eye diagram data, avoids memory overflow and system lag, reduces data exchange overhead, and enhances the smoothness of simulation post-processing and computational response performance.
Smart Images

Figure CN121835568B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of electronic design automation technology, and in particular to a method, apparatus and storage medium for processing eye diagram data. Background Technology
[0002] With the continuous expansion of integrated circuit design scale, the amount of data generated by Electronic Design Automation (EDA) simulation is growing exponentially. In the post-processing stage of simulation results, the waveform display in EDA software provides engineers with waveform data display and interactive functions by reading the raw data of waveform files. Currently, waveform processing typically involves extracting and loading large amounts of continuous waveform data into computer memory for use by the business layer for drawing. However, this data processing method has significant drawbacks when dealing with massive amounts of simulation data. The sheer size of the waveform data results in enormous memory overhead. Even more challenging is the unique nature of EDA products; their post-processing cannot compromise accuracy, making it impossible to reduce data size using conventional lossy compression methods. With limited computer memory resources, loading massive amounts of lossless data can easily lead to malfunctions or even system crashes. Therefore, while ensuring accuracy, the reading efficiency in EDA waveform data processing deserves attention. Summary of the Invention
[0003] In view of this, the present disclosure provides a method, apparatus and storage medium for processing eye diagram data, in order to improve the processing efficiency of eye diagram data.
[0004] In a first aspect, a method for processing eye diagram data is provided, comprising: acquiring eye diagram data generated by electronic design automation software, the eye diagram data including: X-axis data in the time dimension, Y-axis data in the amplitude dimension, and Z-axis data in the probability dimension; storing the eye diagram data in a first storage space; responding to a user's operation command on the eye diagram data, identifying the business operation type corresponding to the operation command, the business operation type including: displaying the eye diagram or calculating the eye diagram data; according to the business operation type, using a corresponding target data loading strategy to partially read the eye diagram data from the first storage space to a second storage space, wherein the reading speed of the second storage space is higher than that of the first storage space, and the target data loading strategy includes at least one of the following: a linear prefetch strategy for sequential traversal operations, a skip loading strategy for random probing operations, and a matrix block loading strategy for region calculation operations; and executing the operation command based on the eye diagram data in the second storage space.
[0005] The above embodiments can construct a memory scheduling mechanism based on business scenarios by responding to users' eye diagram data operation commands. This eliminates the inefficient method of blindly loading or caching massive amounts of data by traditional waveform software. While ensuring the accuracy of EDA scientific calculations, it enables on-demand allocation of computer memory resources, effectively avoids the risks of memory overflow and system lag, reduces the overhead of invalid data exchange between high and low speed storage media, and significantly improves the smoothness of post-processing and computational response performance of large-scale simulated eye diagram data.
[0006] Optionally, storing eye diagram data in a first storage space includes: converting the eye diagram data into a vector sequence and storing it in the first storage space; wherein the vector sequence includes at least: an X-axis vector sequence corresponding to the time dimension, a Y-axis vector sequence corresponding to the magnitude dimension, and a Z-axis vector sequence corresponding to the probability dimension.
[0007] Optionally, the linear prefetch strategy includes: when it is detected that the user is traversing the eye diagram data from beginning to end, predicting the direction of the next eye diagram data access; and according to the direction of the eye diagram data access, swapping the next adjacent data segment that exceeds the current memory area data range in the first storage space to the second storage space.
[0008] Optionally, the Y-axis data is stored in a monotonically increasing manner in the first storage space; the jump loading strategy includes: obtaining the target mouse position specified by the operation command, and parsing the target X coordinate and target Y coordinate of the target mouse position; using a binary search algorithm to find the target Y-axis position that matches the target Y coordinate in the first storage space; extracting the corresponding X-axis vector sequence from the first storage space according to the target Y-axis position, and reading the X-axis vector sequence into the second storage space; and obtaining the first probability value corresponding to the target X coordinate based on the X-axis vector sequence in the second storage space.
[0009] Optionally, the skip loading strategy further includes: when the first probability value is zero, determining the target retrieval area based on the target X coordinate and target Y axis position, combined with a preset coordinate offset range, wherein the target retrieval area includes the target Y axis data range and the corresponding target X axis data segment range; skipping to obtain the X-axis vector segment corresponding to each row within the target Y axis data range and within the target X axis data segment range from the first storage space, and swapping them into the second storage space; using the X-axis vector segment read into the second storage space to perform fuzzy calculation to obtain a second probability value greater than zero.
[0010] Optionally, the matrix block loading strategy includes: in response to the operation command to calculate intraocular edge information, dividing the eye diagram data in the first storage space into multiple data matrix blocks based on a preset data block size threshold; sequentially reading the multiple data matrix blocks into the second storage space, and calculating the contour lines of the data matrix blocks.
[0011] Optionally, executing operation instructions based on eye diagram data in the second storage space further includes: merging the contour lines of multiple adjacent data matrix blocks; identifying and eliminating the repeated or adjacent parts of the contour lines in adjacent data matrix blocks to generate intraocular edge information of eye diagram data.
[0012] Optionally, the operation instructions are executed based on the eye diagram data in the second storage space, including: if the business operation type is a drawing business that displays the eye diagram, then the eye diagram data in the second storage space is compressed according to the periodicity and linear repetition characteristics before being displayed and drawn; if the business operation type is a calculation business that calculates the eye diagram data, then the uncompressed raw data in the second storage space is directly provided to the calculation module for calculation.
[0013] Secondly, an eye diagram data processing apparatus is provided, comprising: an acquisition unit for acquiring eye diagram data generated by electronic design automation software, the eye diagram data including: X-axis data in the time dimension, Y-axis data in the amplitude dimension, and Z-axis data in the probability dimension; a storage unit for storing the eye diagram data in a first storage space; an instruction recognition unit for responding to a user's operation instruction on the eye diagram data and recognizing the business operation type corresponding to the operation instruction, the business operation type including: displaying the eye diagram or calculating the eye diagram data; a reading unit for reading the eye diagram data partially from the first storage space to a second storage space according to the business operation type and using a corresponding target data loading strategy, wherein the reading speed of the second storage space is higher than that of the first storage space, and the target data loading strategy includes at least one of the following: a linear prefetch strategy for sequential traversal operations, a skip loading strategy for random probing operations, and a matrix block loading strategy for region calculation operations; and an instruction execution unit for executing the operation instruction based on the eye diagram data in the second storage space.
[0014] Thirdly, a computer-readable storage medium is provided having instructions stored thereon, which, when read by a processor, implement the eye diagram data processing method provided in the first aspect. Attached Figure Description
[0015] The accompanying drawings used in the description of the embodiments of this disclosure are briefly introduced below:
[0016] Figure 1 A flowchart illustrating a method for processing eye diagram data provided in some embodiments of this application is shown.
[0017] Figure 2 A schematic diagram of an 8×8 eye diagram data block provided in some embodiments of this application is shown;
[0018] Figure 3A flowchart illustrating a skip loading strategy provided in some embodiments of this application is shown;
[0019] Figure 4 The following diagram illustrates the changes in the vector reading process based on the skip loading strategy in some embodiments of this application;
[0020] Figure 5 A flowchart illustrating a skip loading strategy provided in some embodiments of this application is shown;
[0021] Figure 6 This illustration shows a schematic diagram of a target retrieval area provided in some embodiments of this application;
[0022] Figure 7 A schematic diagram of a data matrix block outline proposed in some embodiments of this application is shown;
[0023] Figure 8 This illustration shows a schematic diagram of a merged intraocular margin provided in some embodiments of this application;
[0024] Figure 9 A schematic diagram of the structure of an eye diagram data processing apparatus provided in some embodiments of this application is shown. Detailed Implementation
[0025] To more clearly illustrate the technical solutions in the embodiments of this disclosure, examples of implementation methods of this disclosure will be described below with reference to the accompanying drawings. The accompanying drawings described below are merely some embodiments of this disclosure. For those skilled in the art, other drawings and other implementation methods can be obtained based on these drawings without creative effort. Adjustments and improvements made without departing from the concept of this disclosure are all within the protection scope of this disclosure.
[0026] To keep the drawings simple, each figure only schematically shows the parts relevant to the embodiments, and they do not represent the actual structure of the product. In addition, for the sake of clarity and ease of understanding, some figures only schematically show parts of components with the same structure or function, and there may actually be more or fewer components with the same structure or function.
[0027] In this disclosure, unless otherwise expressly specified and limited, ordinal numbers, such as “first”, “second”, etc., are used only to distinguish and describe related objects, and should not be construed as indicating or implying the relative importance or order between related objects; furthermore, they do not represent the quantity of related objects. “Multiple” includes two or more, and other quantifiers are similar. “ / ” is used to describe the relationship between related objects, indicating an “or” relationship between them. “And / or” is used to describe the relationship between related objects, including any combination relationship between them, such as “a and / or b” including: “a alone”, “b alone”, or “a and b”. “One or more” or “at least one” of multiple objects refers to any object or any combination of multiple objects, such as “one or more of a1, a2, a3” or “at least one of a1, a2, a3” including: “a1 alone”, “a2 alone”, “a3 alone”, “a1 and a2”, “a1 and a3”, “a2 and a3”, or “a1, a2 and a3”.
[0028] The waveform display module in EDA software is a core component of integrated circuit simulation and verification. It reads and visualizes waveform data from underlying files, providing engineers with intuitive interactive analysis capabilities to evaluate signal integrity (e.g., eye diagram quality). In current engineering applications, to meet the display and calculation requirements of waveforms, large amounts of continuous raw waveform data are typically loaded into computer memory as a whole, or a single static sequential caching mechanism is used for data scheduling. However, the waveform data output by EDA simulations, especially three-dimensional eye diagram data containing time, voltage, and probability dimensions, is not only extremely large in volume, but also subject to complex and variable data retrieval behaviors from the business side. Because electronic design automation simulation scenarios have high accuracy requirements, the system cannot use lossy compression schemes to reduce file size. If the underlying data layer still relies solely on traditional whole-load or static caching strategies, the system will be unable to flexibly predict and adapt to data retrieval needs under different business operations, easily leading to a large amount of redundant data occupying limited memory resources, or generating frequent and inefficient retrieval overhead between hard disk and memory. To address this, this application proposes a method, apparatus, and storage medium for processing eye diagram data. By optimizing the storage and retrieval process of eye diagram data and selecting a targeted eye diagram data loading strategy based on the specific operation instruction type identified on the business side, the conflict between the large volume of eye diagram data and limited memory resources can be avoided, thereby improving the processing efficiency of eye diagram data.
[0029] The following description is in conjunction with the accompanying drawings:
[0030] Figure 1 The diagram illustrates a flowchart of an eye diagram data processing method provided in some embodiments of this application. The eye diagram data processing method includes at least the following steps:
[0031] S110: Obtain eye diagram data generated by electronic design automation software. The eye diagram data includes: X-axis data in the time dimension, Y-axis data in the amplitude dimension, and Z-axis data in the probability dimension.
[0032] S120: Store the eye diagram data in the first storage space;
[0033] S130: In response to the user's operation command on eye diagram data, identify the business operation type corresponding to the operation command. The business operation type includes: displaying eye diagram or calculating eye diagram data.
[0034] S140: Based on the business operation type, the eye diagram data is partially read from the first storage space to the second storage space using the corresponding target data loading strategy. The reading speed of the second storage space is higher than that of the first storage space. The target data loading strategy includes at least one of the following: a linear prefetch strategy for sequential traversal operations, a skip loading strategy for random exploration operations, and a matrix block loading strategy for region calculation operations.
[0035] S150: Execute operation instructions based on eye diagram data in the second storage space.
[0036] In the processing of the above eye diagram data, eye diagram data is a special three-dimensional waveform data that characterizes signal integrity. Specifically, it includes X-axis data representing the time dimension, Y-axis data representing the voltage or amplitude dimension, and Z-axis data representing the probability dimension of the signal waveform hitting the crossover point between a specific time and amplitude. After acquiring the aforementioned high-precision, massive eye diagram data, the system stores it in a first storage space. This first storage space can be a persistent physical storage medium with large capacity, such as a computer's local disk or solid-state drive, to properly preserve the vast simulation results. Subsequently, it can respond to various operation commands issued by the user regarding the eye diagram data, and parse and identify the specific business operation type corresponding to the operation command. These business operation types can cover display eye diagram services used for interface visualization, and calculated eye diagram data services used for evaluating signal quality indicators. Because EDA simulation eye diagram data is extremely large and requires very high computational accuracy, to avoid system crashes caused by loading the entire massive file, a target data loading strategy can be automatically adopted based on the identified specific business operation type. This strategy reads the necessary eye diagram data from the first storage space to the second storage space on demand, partially from the first storage space. The second storage space can be the computer's RAM or a high-speed buffer, whose hardware read speed is significantly higher than that of the first storage space. When the user performs a business operation, such as smoothly dragging along the time axis to view a waveform, a linear prefetch strategy for sequential traversal operations can be matched to predict the user's browsing direction in advance and load the next adjacent data segment into memory sequentially. For example, when the user randomly clicks or hovers the mouse at specific coordinates on the waveform interface to view values, a jump loading strategy for random probing operations can be matched. This involves skipping irrelevant data intervals, directly jumping to the underlying data, and extracting only the data segment related to the probe point into memory. For example, when a user issues measurement or algorithm commands for a specific region of an eye diagram, a matrix block loading strategy tailored to the region's computational operation can be matched. This divides the massive overall data into multiple local data blocks, loading only the small matrix blocks involved in the current computation into memory each time. Ultimately, the corresponding display rendering or algorithm computation commands can be quickly executed based on the local eye diagram data that has been efficiently loaded into the second storage space. Through the above implementation, this application's solution can construct a memory scheduling mechanism based on business scenarios, abandoning the inefficient method of blindly loading or caching massive amounts of data in traditional waveform software. While ensuring the accuracy of EDA scientific calculations, it achieves on-demand allocation of computer memory resources, effectively avoiding the risks of memory overflow and system lag, reducing the overhead of invalid data exchange between high- and low-speed storage media, and significantly improving the smoothness of post-processing and computational response performance of large-scale simulated eye diagram data.
[0037] In some embodiments of this application, step S120, storing eye diagram data in a first storage space, includes: converting the eye diagram data into a vector sequence and storing it in the first storage space; wherein the vector sequence includes at least: an X-axis vector sequence corresponding to the time dimension, a Y-axis vector sequence corresponding to the magnitude dimension, and a Z-axis vector sequence corresponding to the probability dimension.
[0038] The raw eye diagram data generated by electronic design automation (EDA) simulation software is displayed as a three-dimensional matrix graph composed of time, voltage, and probability. However, the physical address allocation of the computer's underlying storage space, such as disks and memory, is inherently linear and sequential. To bridge this gap between the logical data structure and the physical hardware storage structure, this application decomposes the multidimensional matrix data into a one-dimensional vector sequence, i.e., a one-dimensional array. Figure 2 The diagram illustrates an 8×8 eye diagram data block provided in some embodiments of this application. In this diagram, the data is stored as an X-axis vector sequence containing 8 time coordinate values, a Y-axis vector sequence containing 8 voltage coordinate values, and a Z-axis vector sequence containing 64 specific hit frequency values. Furthermore, considering that in actual eye diagram measurement and subsequent interaction scenarios, it is necessary to fix a specific amplitude (i.e., a fixed Y-axis position) and traverse horizontally to find all time points under that amplitude (i.e., horizontal X-axis data), this means that the data search frequency and traversal weight along the X-axis direction are much higher than those along the Y-axis direction. Therefore, when converting the matrix into a vector sequence, the row direction can be prioritized as the reference, and the continuous matrix can be divided into multiple continuous X-axis vector segments for persistent arrangement. By reorganizing the underlying structure of a 3D matrix into a linear vector sequence, massive eye diagram data can be serialized and archived in the first storage space. This allows subsequent programs to directly and continuously retrieve the required vector segments from the first storage space into memory when they need to jump to a specific voltage value to extract the corresponding data, thus avoiding fragmented retrieval across storage address spaces.
[0039] In some embodiments of this application, the linear prefetch strategy includes: when it is detected that a user is traversing eye diagram data from beginning to end, predicting the direction of the next eye diagram data access; and according to the direction of the eye diagram data access, swapping the next adjacent segment of data in the first storage space that exceeds the current memory area data range to the second storage space.
[0040] In practical applications of waveform displays in electronic design automation (EDA) simulation software, the most common basic operation performed by users is dragging the progress bar or panning the view to continuously observe the development trend of signal waveforms along the time axis (X-axis). The system's data layer monitors the sequence of data access locations on the business side in real time. When it identifies this traversal behavior with a clear temporal order, this application does not passively wait for data requests but actively initiates a forward-looking read prediction mechanism. Taking an eye diagram data segment containing 1000 consecutive coordinate points (i.e., the X and Y coordinate combinations converted into a vector sequence) as an example, due to the limited capacity of the second storage space, the system may only retain the data of the first 1 to 10 positions in the current memory for rendering the current screen. As the user drags the view backward, when the data of these 1 to 10 positions is accessed and consumed by the business layer, it is predicted that the subsequent operation trajectory on the business side will inevitably extend backward. Based on this predicted direction, data exchange can be triggered in the background to smoothly swap the next segment of data (i.e., positions 11 to 20) immediately adjacent to the current memory data block in the first storage space into the memory area, and so on. For example, for a linear prefetch strategy for sequential traversal operations, the system can accurately predict the data access direction by monitoring the position changes of the visible window in real time. For instance, when a user drags a progress bar or pans a waveform view, the system continuously acquires the coordinate position of the current visible window on the time axis. By simply comparing the coordinate changes at adjacent moments, the system can intuitively determine the user's browsing direction (e.g., looking backward or backward) and identify it as the access direction of the eye diagram data. After determining the access direction, the distance between the front boundary of the visible window and the boundary of the currently loaded data in the memory area can be calculated in real time. Once this distance is detected to have narrowed to within a preset buffer threshold (i.e., the user is about to see the end of the memory data), and the visible window continues to move in the same direction, the predictive loading mechanism is triggered. At this point, following the predicted direction, the next segment of data immediately adjacent to the current memory data block in the first storage space can be proactively swapped to the second storage space in advance. Through this dynamic swapping and relay mechanism of adjacent data segments based on user behavior prediction, it is possible to achieve fluid reading of massive continuous waveform data, ensuring timely and accurate data retrieval each time, and providing users with an extremely smooth and lag-free visual interaction experience during waveform data traversal.
[0041] In some embodiments of this application, the Y-axis data is stored in a monotonically increasing manner in the first storage space; Figure 3 The following is a flowchart illustrating a skip loading strategy provided in some embodiments of this application, including:
[0042] S310: Obtain the target mouse position specified by the operation command, and parse out the target X coordinate and target Y coordinate of the target mouse position;
[0043] S320: Use the binary search algorithm to find the target Y-axis position that matches the target Y-coordinate in the first storage space;
[0044] S330: Extract the corresponding X-axis vector sequence from the first storage space according to the target Y-axis position, and read the X-axis vector sequence into the second storage space;
[0045] S340: Based on the X-axis vector sequence in the second storage space, obtain the first probability value corresponding to the target X coordinate.
[0046] In practical engineering analysis scenarios, when a user randomly probes a specific signal location using the mouse pointer on the waveform display interface, this application can obtain the target mouse position specified by the operation command in real time and map and parse it into the corresponding target X coordinate and target Y coordinate. For example, when a user attempts to view the specific hit rate of a certain edge point in the open area of the eye diagram in the eye diagram interface, hovering or clicking the mouse on a specific pixel will be parsed by the system into a specific coordinate pair, such as a target X coordinate of 2 (representing a specific time point) and a target Y coordinate of 6 (representing a specific voltage or amplitude). Thanks to the strict monotonically increasing order property of Y-axis data in persistent storage media, the system can abandon the inefficient full-data line-by-line scanning when processing addressing requests, and instead directly call the binary search algorithm to perform a fast binary search in the huge first storage space, thereby accurately locating the target Y-axis physical position that matches the target Y coordinate. After successfully locating the target's Y-axis position, it can be used as the vertical anchor point for data extraction. Since the Y-axis position is now fixed, the system does not need to load data from other voltage rows. It only needs to extract the corresponding single X-axis vector sequence horizontally from the first storage space within the eye diagram's range, and then read this minimal X-axis vector sequence into the faster second storage space. Finally, it directly locates the target within this X-axis vector sequence already loaded into the second storage space, obtaining the Z-axis data corresponding to the target's X-coordinate, thus deriving the first probability value at that coordinate point. For example, Figure 4 The diagram illustrates the changes in the vector reading process based on the skip loading strategy in some embodiments of this application. Combined with... Figure 2 and Figure 4 The example eye diagram data matrix shown assumes that the first storage space stores a data sequence containing 8 X-axis coordinates (X1 to X8), 8 Y-axis coordinates (Y1 to Y8), and 64 Z-axis probability values (Z11 to Z88). In actual engineering analysis scenarios, when an engineer uses a mouse pointer to probe a specific signal location on the waveform display interface, the system first parses the target X-coordinate and target Y-coordinate corresponding to the target mouse position, such as... Figure 4As shown, the binary search mechanism traverses irrelevant rows, quickly hitting and locking the target Y-axis position as marked. Figure 4 In the left-middle image, the grayscale markers Y3 and Y7 are used as vertical anchor points for data extraction after successfully locating the target's Y-axis position. Since the vertical coordinates are now fixed, it's unnecessary to load the entire matrix into memory. Instead, the data is extracted directly from the vicinity of the eye diagram's X-axis range. Taking Y3 as an example, a single X-axis vector sequence corresponding to Y3 is extracted horizontally from the first storage space (i.e., the entire row of data containing Z13, Z23, Z33, Z43, Z53, Z63, Z73, and Z83). This tiny single-row vector sequence is then read into the faster second storage space. Based on the target's X-coordinates, the corresponding Z-axis data is obtained, for example... Figure 4 In the right-hand image, Z33 and Z63, highlighted in grayscale, represent the first probability value at that coordinate point. This application leverages the vertically locally ordered physical characteristics of eye diagram underlying data to transform traditional massive file reading into on-demand, skip-based, single-line loading based on binary search. This reduces the complexity of retrieving underlying data, enabling EDA waveform analysis tools to respond quickly to users' random mouse click commands.
[0047] In some embodiments of this application, Figure 5 A flowchart illustrating a skip loading strategy provided in some embodiments of this application is shown. The process includes:
[0048] S510: When the first probability value is zero, the target retrieval area is determined based on the target X coordinate and the target Y axis position, combined with the preset coordinate offset range. The target retrieval area includes the target Y axis data range and the corresponding target X axis data segment range.
[0049] S520: Jump from the first storage space to obtain the X-axis vector fragment corresponding to each row within the target Y-axis data range and within the target X-axis data fragment range, and swap them into the second storage space;
[0050] S530: Perform fuzzy calculations using the X-axis vector fragment read into the second storage space to obtain a second probability value greater than zero.
[0051] In the blank area of the eye diagram, when the first probability value obtained after location is absolute zero, simply showing zero to the business side often fails to help engineers analyze the surrounding signal jitter and attenuation trends. At this point, the current target X-coordinate and target Y-axis position can be used as a central reference, combined with a preset coordinate offset range, such as a local neighborhood step size expanding outwards, to dynamically determine a slightly expanded target retrieval area. This target retrieval area defines a target Y-axis data range spanning one or more rows vertically, and the range of truncated target X-axis data segments corresponding to each row within this range. Subsequently, skipping retrieval can be performed from the first storage space, extracting only the X-axis vector segments corresponding to each row within the target Y-axis data range that are strictly within the target X-axis data segment range, and centrally exchanging them into the second storage space. Finally, these local X-axis vector segment sets read into the second storage space are used for spatial interpolation or weighted averaging fuzzy calculations to fit and obtain a second probability value greater than zero, which is then fed back to the business layer. Figure 6 A schematic diagram of a target retrieval region provided in some embodiments of this application is shown. For example... Figure 6 As shown, assuming the target mouse position explored by the user is resolved as the target X coordinate X2 and the target Y-axis position Y6 (i.e., ... Figure 6 If the probability value Z26 at coordinate (2,6) is found to be strictly equal to 0, then a closer valid value greater than 0 should be searched fuzzily. In this case, a region near (2,6) can be selected as the target retrieval region. For example, if the preset coordinate offset range is set to 1 unit each in the up, down, left, and right directions, then the target Y-axis data range is defined as Y5 to Y7, and the corresponding target X-axis data segment range is defined as X1 to X3. Figure 6 As shown, a jump acquisition can be performed randomly to extract the X-axis vector segments in row Y5 (containing Z15, Z25, and Z35), row Y6 (containing Z16, Z26, and Z36), and row Y7 (containing Z17, Z27, and Z37). These three small data segments are extracted and swapped into the second storage space. Furthermore, a smoothed second probability value can be calculated using the data blocks from these nine neighboring points. Through this implementation method combining local segment jump loading and fuzzy computation, this application can provide users with weak signal boundary trends of engineering analysis value when facing anomaly detection points with a probability of zero. Simultaneously, by limiting the swapping of only a portion of the X-vector segments within the required Y range into the second storage space, the data hit rate of the memory buffer can be improved, avoiding the data reading overhead and memory waste caused by blindly loading the entire waveform matrix or multiple complete long sequences into memory to estimate a fuzzy value.
[0052] In some embodiments of this application, the matrix block loading strategy includes: in response to the operation instruction to calculate intraocular edge information, dividing the eye diagram data in the first storage space into multiple data matrix blocks based on a preset data block size threshold; sequentially reading the multiple data matrix blocks into the second storage space, and calculating the contour lines of the data matrix blocks.
[0053] When the business side issues complex global calculation instructions involving intraocular edge information, such as calculating eye height, eye width, or inscribed rectangles of the eye diagram, the algorithm typically needs to traverse a large area of the eye diagram data to find the inner boundary of the signal trajectory. However, due to the enormous size of the full eye diagram data, the computer's second storage space often cannot accommodate it all at once. To resolve the contradiction between hardware capacity limitations and the need for global computation of massive amounts of data, this application can set a safe preset data block size threshold based on the upper limit of the available memory buffer allocated to the business by the current system. For example, the maximum allowed loading size at one time can be limited to a small matrix with a specific number of rows and columns. Logically, the massive overall eye diagram data in the first storage space can be cut and divided into multiple local data matrix blocks with a size no larger than the threshold. Subsequently, these multiple segmented data matrix blocks are read into the second storage space, for example, sequentially according to spatial arrangement order. Whenever a local data matrix block is successfully loaded into memory, a graphics or edge collision algorithm can be called to calculate its corresponding local contour line segment for the data matrix block currently existing in memory. Once the outline of the current matrix block has been calculated, the memory space it occupies can be released, and then the next data matrix block can be read for calculation.
[0054] Figure 7 A schematic diagram of a data matrix block outline proposed in some embodiments of this application is shown. It is assumed that the current memory (second storage space) limits the data block size threshold to a maximum of 4 columns of data loaded at a time. The overall eye diagram data can be evenly divided along the time axis into... Figure 7 Two data matrix blocks, one on the left and one on the right. For example... Figure 7 As shown in the left part, the first data matrix block containing the four columns of data X1 to X4 is first read across the medium into the second storage space. A graphics algorithm is then used to independently explore this local matrix block, searching for edge collision points where the probability value changes (i.e., the probability value changes from 0 to non-zero). The consecutive nodes Z24, Z33, Z42, Z43, Z44, Z45, Z46, Z47, Z36, and Z25, highlighted in dark gray as shown in the figure, are precisely marked, thus calculating the outline of this part. After the calculation of the left part of the data matrix block is completed, this memory space is released or overwritten, and then... Figure 7As shown on the right, the second data matrix block containing four adjacent columns of data (X5 to X8) is sequentially swapped and loaded into the second storage space. Then, using the same edge collision calculation logic, consecutive nodes Z42, Z53, Z64, Z65, Z56, Z47, Z46, Z45, Z44, Z43, and Z42 (highlighted in dark gray as shown in the figure) are independently searched and marked in memory, thus obtaining the outline of this section. By dividing the eight columns of data into two, loading them in batches, and calculating them independently, feature extraction from the original large-size eye diagram data can be completed while directly halving the peak physical memory consumption.
[0055] This application breaks the limitation of physical memory capacity on global computation tasks of ultra-large waveform data by implementing a matrix block loading and local independent computation method that breaks down a large whole into smaller parts. Without sacrificing the accuracy of the underlying raw data, it ensures that large eye diagram feature extraction calculations can run smoothly, avoids the risk of memory overflow and software crash caused by swallowing massive amounts of data at once, and improves the stability of simulation calculations.
[0056] In some embodiments of this application, executing operation instructions based on eye diagram data in the second storage space further includes: merging the contour lines of multiple adjacent data matrix blocks; identifying and eliminating the repeated or adjacent parts of the contour lines in adjacent data matrix blocks to generate intraocular edge information of the eye diagram data.
[0057] After extracting contour lines sequentially using a matrix block loading strategy, multiple independently calculated contour line segments can be aggregated. Since these contour lines are generated independently within isolated data matrix blocks, redundant data with overlapping or connectivity inevitably occurs at the physical junctions of adjacent matrix blocks. For example, two adjacent matrix blocks may repeatedly probe the same boundary feature at the seam. To obtain continuous, true signal inner boundaries, these contour lines can be merged and spliced. During the splicing process, overlapping or adjacent portions of the contour lines at the edges of adjacent data matrix blocks are identified, logically determined as physically connected regions of the same continuous trajectory, and deduplication and elimination operations are performed, ultimately forming a completely closed, end-to-end global intraocular edge information. Figure 8 This illustration shows a schematic diagram of a merged intraocular margin provided in some embodiments of this application. When each step is completed... Figure 7After calculating the outline shown, the boundary nodes of the left part (i.e., Z24, Z33, Z42, Z43, Z44, Z45, Z46, Z47, Z36, Z25, highlighted in dark gray) and the boundary nodes of the right part (i.e., Z42, Z53, Z64, Z65, Z56, Z47, Z46, Z45, Z44, Z43, Z42, etc., highlighted in dark gray) can be merged. During this stitching process, the data adjacency and overlap between columns X4 and X5 are detected, and the data at this boundary is connected, merged, and eliminated, thus seamlessly stitching the local curves of the left and right parts together across the seam, ultimately forming a unified whole from a global perspective. Figure 8 The output presents a complete, closed, ring-shaped outline resembling an open "eye," representing the complete intraocular edge information of the eye map. Through the aforementioned merging process, while mitigating the risk of memory overflow by utilizing block loading, a complete closed loop of independent block computation and seamless boundary stitching can be achieved. This ensures that the final output of the global intraocular edge information after block processing possesses mathematical continuity and uniqueness, providing underlying data support for the subsequent accurate measurement of key engineering indicators such as eye height and eye width at the business layer.
[0058] In some embodiments of this application, the operation instructions are executed based on the eye diagram data in the second storage space, including: if the business operation type is a drawing business that displays an eye diagram, then the eye diagram data in the second storage space is compressed according to the periodicity and linear repetition characteristics before being displayed and drawn; if the business operation type is a calculation business that calculates eye diagram data, then the uncompressed raw data in the second storage space is directly provided to the calculation module for calculation.
[0059] Figure 9 A schematic diagram of an eye diagram data processing apparatus 900 provided in some embodiments of this application is shown. The eye diagram data processing apparatus 900 includes: an acquisition unit 910 for acquiring eye diagram data generated by electronic design automation software, the eye diagram data including: X-axis data in the time dimension, Y-axis data in the amplitude dimension, and Z-axis data in the probability dimension; a storage unit 920 for storing the eye diagram data in a first storage space; an instruction recognition unit 930 for recognizing the business operation type corresponding to the user's operation instruction on the eye diagram data, the business operation type including: displaying the eye diagram or calculating the eye diagram data; a reading unit 940 for partially reading the eye diagram data from the first storage space to a second storage space according to the business operation type and using a corresponding target data loading strategy, wherein the reading speed of the second storage space is higher than that of the first storage space, and the target data loading strategy includes at least one of the following: a linear prefetch strategy for sequential traversal operations, a skip loading strategy for random probing operations, and a matrix block loading strategy for region calculation operations; and an instruction execution unit 950 for executing the operation instruction based on the eye diagram data in the second storage space.
[0060] Based on the same technical concept, this application also provides a computer-readable storage medium storing instructions thereon, which, when read by a processor, implement the eye diagram data processing method provided in the above embodiments.
[0061] In the above embodiments, the descriptions of each embodiment have their own emphasis. Parts not described in detail or in a particular embodiment can be referred to in the relevant descriptions of other embodiments. Furthermore, the above embodiments can be freely combined as needed.
Claims
1. A method of processing eye diagram data, characterized by, include: Obtain eye diagram data generated by electronic design automation software, wherein the eye diagram data includes: X-axis data in the time dimension, Y-axis data in the amplitude dimension, and Z-axis data in the probability dimension; Storing the eye diagram data in the first storage space includes: converting the eye diagram data into a vector sequence and storing it in the first storage space; wherein the vector sequence includes at least: an X-axis vector sequence corresponding to the time dimension, a Y-axis vector sequence corresponding to the amplitude dimension, and a Z-axis vector sequence corresponding to the probability dimension. In response to a user's operation command on the eye diagram data, the business operation type corresponding to the operation command is identified, and the business operation type includes: displaying the eye diagram or calculating the eye diagram data; According to the business operation type, the eye diagram data is partially read from the first storage space to the second storage space using the corresponding target data loading strategy. The reading speed of the second storage space is higher than that of the first storage space. The target data loading strategy includes at least one of the following: a linear prefetch strategy for sequential traversal operations, a skip loading strategy for random exploration operations, and a matrix block loading strategy for region calculation operations. The linear prefetch strategy includes: when it is detected that a user traverses the eye diagram data from beginning to end, predicting the direction of the next eye diagram data access; and according to the direction of the eye diagram data access, exchanging the next segment of adjacent data that exceeds the current range of the second storage space in the first storage space to the second storage space. When the Y-axis data is stored in a monotonically increasing manner in the first storage space, the jump loading strategy includes: obtaining the target mouse position specified by the operation instruction, and parsing the target X coordinate and target Y coordinate of the target mouse position; using a binary search algorithm to find the target Y-axis position that matches the target Y coordinate in the first storage space; extracting the corresponding Z-axis vector sequence from the first storage space according to the target Y-axis position, and reading the Z-axis vector sequence into the second storage space; and obtaining the first probability value of the Z-axis data corresponding to the target X coordinate based on the Z-axis vector sequence in the second storage space. The matrix block loading strategy includes: responding to the operation instruction to calculate intraocular edge information, dividing the eye diagram data in the first storage space into multiple data matrix blocks based on a preset data block size threshold; sequentially reading the multiple data matrix blocks into the second storage space, and calculating the contour lines of the data matrix blocks; The operation instructions are executed based on the eye diagram data in the second storage space.
2. The method of processing eye diagram data according to claim 1, wherein, The skip loading strategy also includes: When the first probability value is zero, the target retrieval area is determined based on the target X coordinate and the target Y axis position, combined with a preset coordinate offset range. The target retrieval area includes the target Y axis data range and the corresponding target X axis data segment range. Jump from the first storage space to obtain the Z-axis vector fragment corresponding to each row within the target Y-axis data range and within the target X-axis data fragment range, and swap them into the second storage space; Fuzzy calculations are performed using the Z-axis data from the Z-axis vector segment read into the second storage space to obtain a second probability value greater than zero.
3. The method for processing eye diagram data according to claim 1, characterized in that, The step of executing the operation instruction based on the eye diagram data in the second storage space further includes: Merge the outlines of multiple adjacent data matrix blocks; Identify and eliminate repeated or adjacent portions of the contour lines in adjacent data matrix blocks to generate intraocular edge information of the eye diagram data.
4. The method for processing eye diagram data according to any one of claims 1 to 3, characterized in that, The execution of the operation instruction based on the eye diagram data in the second storage space includes: If the business operation type is the eye diagram display drawing business, then the eye diagram data in the second storage space is compressed according to the periodicity and linear repetition characteristics before being displayed and drawn; If the business operation type is a calculation business that calculates the eye diagram data, then the uncompressed raw data in the second storage space is directly provided to the calculation module for calculation.
5. An apparatus for processing eye diagram data, characterized in that, include: The acquisition unit is used to acquire eye diagram data generated by electronic design automation software. The eye diagram data includes: X-axis data in the time dimension, Y-axis data in the amplitude dimension, and Z-axis data in the probability dimension. Storage unit, used to store the eye diagram data in the first storage space; The instruction recognition unit is used to respond to the user's operation instruction on the eye diagram data and identify the business operation type corresponding to the operation instruction. The business operation type includes: displaying the eye diagram or calculating the eye diagram data. A reading unit is configured to, based on the business operation type, employ a corresponding target data loading strategy to partially read the eye diagram data from the first storage space to the second storage space, wherein the reading speed of the second storage space is higher than that of the first storage space. The target data loading strategy includes at least one of the following: a linear prefetch strategy for sequential traversal operations, a skip loading strategy for random probing operations, and a matrix block loading strategy for region calculation operations; wherein the linear prefetch strategy includes: when it is detected that the user traverses the eye diagram data from beginning to end, predicting the direction of the next eye diagram data access; based on the direction of the eye diagram data access, exchanging the next adjacent data segment that exceeds the current data range of the second storage space in the first storage space to the second storage space; when the Y-axis data is monotonically increasing in the first storage space, ... The jump loading strategy includes: obtaining the target mouse position specified by the operation command, and parsing the target X coordinate and target Y coordinate of the target mouse position; using a binary search algorithm to find the target Y-axis position that matches the target Y coordinate in the first storage space; extracting the corresponding Z-axis vector sequence from the first storage space according to the target Y-axis position, and reading the Z-axis vector sequence into the second storage space; obtaining the first probability value of the Z-axis data corresponding to the target X coordinate based on the Z-axis vector sequence in the second storage space; the matrix block loading strategy includes: responding to the calculation of intraocular edge information in the operation command, dividing the eye diagram data in the first storage space into multiple data matrix blocks based on a preset data block size threshold; sequentially reading the multiple data matrix blocks into the second storage space, and calculating the contour lines of the data matrix blocks; An instruction execution unit is configured to execute the operation instructions based on the eye diagram data in the second storage space.
6. A computer-readable storage medium, characterized in that, It stores instructions that, when read by a processor, implement the eye diagram data processing method as described in any one of claims 1 to 4.