Propagation of unknown values in logic simulation of digital circuit design

CN122847709APending Publication Date: 2026-09-29SIMENS INDASTRI SOFTVEAR INK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480088888.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-02-29
Publication Date
2026-09-29

Smart Images

  • Figure CN122847709A_ABST
    Figure CN122847709A_ABST
Patent Text Reader

Abstract

Systems and methods are provided for determining the propagation of unknown values ​​in logic simulation of digital circuit designs. One method may include accessing (402) a digital circuit design (210) and resolving (404) the digital circuit design (210) to detect state elements. The method may also include performing (406) a logic simulation on the digital circuit design (210), the logic simulation including tracking the propagation of x-values ​​in the digital circuit, where the x-values ​​represent unknown values ​​of the outputs of elements in the digital circuit design. During the logic simulation, method steps may include tracking (408) the state elements of the digital circuit design (210) to determine when any output of the state elements during the logic simulation is the x-value, and triggering (410) an x-propagation response when the x-value output detected based on the state elements of the digital circuit design (210) satisfies an x-propagation criterion.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Electronic circuits (such as integrated circuits) are used in almost every aspect of modern society, from cars to microwave ovens to personal computers. Circuit design can involve many steps, known as the "design flow." Specific steps in the design flow typically depend on the type of circuit being designed, its complexity, the design team, and the circuit manufacturer or foundry that will produce it. Electronic Design Automation (EDA) applications support the design and verification of circuits before manufacturing. EDA applications can implement various processes, such as functions, tools, or features, to analyze, test, or verify circuit designs at different stages of the design flow. Attached Figure Description

[0002] Some examples are described in the following detailed description and with reference to the accompanying drawings.

[0003] Figure 1 An example of a computational system is shown that determines the propagation of unknown values ​​in logic simulation supporting digital circuit design.

[0004] Figure 2 An example is shown of a digital circuit design based on this disclosure for tracking the detected state element to track the propagation of the x value.

[0005] Figure 3 An example visualization of x values ​​supported by the propagation determination technique of this disclosure is shown.

[0006] Figure 4 An example is shown of the logic that the system can implement to support the determination of the propagation of unknown values ​​in the logic simulation of digital circuit design.

[0007] Figure 5 An example of a computational system is shown that determines the propagation of unknown values ​​in logic simulation supporting digital circuit design. Detailed Implementation

[0008] With the advancement of modern technology, circuits have become an increasingly prevalent and indispensable part of modern society. As part of the circuit design process, digital circuit designs are generated to implement various circuit functions. Digital circuit design (also known as logic circuit design or logic design) can refer to any circuit design that represents a circuit design using logic elements. For example, a digital circuit design can be described based on the signal exchange between hardware registers (or other state elements) and the logical operations performed on these signals (e.g., through combinational logic). In some examples, digital circuit designs are represented using a hardware design language (HDL) (e.g., the Very High Speed ​​Integrated Circuit Hardware Design Language (VHDL)) or in other ways using a hardware design language (HDL).

[0009] To verify the functionality of a digital circuit design, a logic simulation can be performed. In digital logic simulation, stimuli are applied to the inputs of the digital circuit design, and the simulator tools can use the provided stimuli and design code to simulate the behavior of the digital circuit design. Typically, signals in a digital circuit design can have values ​​of "0", "1", or unknown values. Unknown values ​​in a digital circuit design are also referred to as x-values. An x-value can mean that the value of a given signal in a digital circuit design can be either "0" or "1" and cannot be known deterministically. There are several possible sources of x-values ​​in a digital circuit design, including uninitialized registers or memories, inputs to circuits without known values, signals from power-down modules, and so on.

[0010] If not handled properly, x-values ​​in digital circuit design can lead to serious problems, especially when the circuit may not behave as designed. For example, if an x-value propagates to the state machine of the circuit design, the current state of the digital circuit design may become nondeterministic, and the circuit behavior may become unpredictable. In some digital circuit designs, x-values ​​are not such a common problem because such designs may require initializing all registers to known values ​​or requiring all circuit design modules to be powered on during operation (e.g., no design module that causes an x-value to power down). However, the latest developments in cutting-edge circuits require increasingly faster and lower-power designs. To achieve this, modern circuit designs may allow certain registers not to be reset to reduce wiring resource requirements, and modules may be powered down during operation to save power. Therefore, modern circuit designs may be increasingly susceptible to x-value problems that lead to inconsistent or erroneous circuit behavior. Thus, the detection and handling of x-values ​​in digital circuit design is becoming increasingly important in modern circuit design.

[0011] Logic simulation provides a mechanism for identifying x-values ​​in logic circuit designs. Detection of x-values ​​in a digital circuit design during simulation can indicate the presence of unknown circuit values ​​during the design phase that should be resolved and fixed before hardware manufacturing. However, debugging x-values ​​using conventional mechanisms can be a tedious and error-prone process. In a conventional logic simulation environment, x-values ​​are typically detected when unexpected x-values ​​are observed in specific circuit signals (such as design outputs or critical registers). Therefore, conventional systems can detect x-values ​​when the logic simulation is complete and the circuit outputs exhibit x-value activity. In this conventional technique, x-values ​​can be observed only for a small subset of signals in the critical parts of the digital circuit design. However, this x-value detection may only occur after the x-value has propagated to important circuit parts (such as the system outputs), and is typically after the logic simulation is complete.

[0012] To debug and trace the origin of an x-value in a digital circuit design, conventional systems allow users to perform backward tracing from a specific circuit signal that outputs the x-value (e.g., a register output). This backward tracing can then involve manually tracking the x-value signal backward in the circuit direction to identify the possible source of the x-value. For example, a simulation system can support manual backward tracing by examining the simulated value of the fan-in variable of the observed x-value output and tracing the x-value until its source is found. This process may need to be repeated thousands of times, as the source of the x-value may be several registers back in the circuit pipeline. As another challenge, the origin of the x-value may occur in the circuit design several clock cycles earlier than the circuit location where the x-value is detected, making accurate x-value source detection increasingly tedious and difficult.

[0013] Some conventional electronic design automation (EDA) tools implement specific features for reverse tracing x-values, often as part of a debugger tool (which is part of the EDA application). This debugger facilitates or provides the ability to inspect the fan-in cone of a given register output and can trace x-values ​​according to the design logic of the digital circuit design. The debugger can then provide the user with the identified source of the x-value. The user can then examine the identified source of the x-value to see if it is the actual cause of the observed x-value. If not, subsequent tracing can be initiated from another manually selected signal. These steps may need to be manually repeated several times by the user to determine the source of the x-value in the digital circuit design, and the entire process is further repeated for each detected x-value.

[0014] The aforementioned conventional x-value determination techniques and tools face several limitations in x-value reverse tracing. For example, the output signal of a flip-flop or other digital circuit design element may have x-values ​​as data inputs over many clock cycles. Debugger tools may struggle to determine the specific time or clock cycle that should be reverse-traced and may need to initiate a separate trace for each clock cycle in which an x-value input occurs. Due to this data explosion of reverse tracing possibilities across multiple clock cycles, conventional reverse tracing techniques can be time-consuming, computationally resource-intensive, and may still fail to actually identify the root cause of the x-value. As another limitation, clock-gated flip-flops can have x-values ​​as data inputs and have a transition from "0" to "x-value" at the clock edge. Therefore, it may be difficult to determine which x-value should be traced. As yet another example of limitation, the behavioral model, memory, or other digital circuit design element outputting x-values ​​may have multiple data inputs, many of which could be x-values. Automatically identifying the source of x-values ​​at the output can be difficult for conventional tools, further complicating detection and leading to debugging errors. While conventional debugger tools can help designers reverse-trace x-values ​​more efficiently, a significant amount of manual work is still required. This is especially true because conventional debugging tools typically only identify x-values ​​at critical or scattered circuit locations, and only after the identified x-values ​​have propagated through the digital circuit design for several clock cycles.

[0015] The disclosure herein provides systems, methods, apparatus, and logic for determining the propagation of unknown values ​​in logic simulation for digital circuit design. Compared to conventional backtracking, the propagation determination technique of this disclosure can support the determination of the root cause of unknown values ​​in digital circuit design with increased efficiency and effectiveness. In contrast to manual, error-prone backtracking techniques, the propagation determination features described herein can analyze and trace the output signals of any detected state elements of a digital circuit design, which may include both critical and non-critical output signals. By monitoring various output signals of registers, flip-flops, memories, state machines, or other state elements of the digital circuit design, the propagation determination technique described herein can detect unknown values ​​during the early propagation phase and identify the root cause of the x-value at an earlier point in the simulation time before the x-value has propagated widely after several clock cycles.

[0016] This paper describes various metrics that can be used to detect and characterize the propagation of x-values, tracking their propagation and triggering responses. Furthermore, the propagation determination techniques disclosed herein support a variety of visualization techniques that allow circuit designers or users to more effectively and efficiently view the propagation of x-values ​​throughout the entire circuit design. Tracking the location of x-values ​​over time and visualizing this propagation allows for faster and more efficient identification and determination of x-value propagation and sources, including on a per-design-module basis. In contrast to conventional reverse tracing techniques that focus on a single output signal and trace fan-in for x-value investigation, the propagation determination described herein provides monitoring and a view of the propagation of x-values ​​across the entire design scope, allowing for root cause determination and source identification of x-values ​​without the tedious reverse tracing operations required for individual signals. Therefore, the techniques described herein can improve the efficiency of digital circuit design debugging and x-value determination.

[0017] The features and technical benefits identified based on these and other disclosures will be described in more detail herein.

[0018] Figure 1 An example of a computing system 100 for determining the propagation of unknown values ​​in logic simulation supporting digital circuit design is illustrated. The computing system 100 may take the form of a single or multiple computing devices, such as application servers, compute nodes, desktop or laptop computers, smartphones or other mobile devices, tablets, embedded controllers, and so on. In some implementations, the computing system 100 hosts, instantiates, executes, supports, or implements EDA applications or EDA systems that support circuit design and analysis, and therefore can provide or implement any of the propagation determination techniques described herein.

[0019] As an example implementation supporting any propagation-determining combination of features described herein Figure 1 The computing system 100 shown includes an x-propagation determination engine 110. The computing system 100 can implement the x-propagation determination engine 110 (including its components) in various ways, such as as hardware and programming. Programming for the x-propagation determination engine 110 can take the form of processor-executable instructions stored on a non-transitory machine-readable storage medium, and the hardware for the x-propagation determination engine 110 can include a processor that executes these instructions. The processor can take the form of a single-processor or multi-processor system, and in some examples, the computing system 100 uses the same computing system features or hardware components (e.g., a common processor or a common storage medium) to implement multiple engines.

[0020] In operation, the x-propagation determination engine 110 can access and parse a digital circuit design to detect state elements within the design. Detected state elements may include any registers, flip-flops, memory elements, or combinations thereof within the digital circuit design. In operation, the x-propagation determination engine 110 can also perform logic simulation on the digital circuit design, which includes tracking the propagation of x values ​​within the digital circuit. As described herein, x values ​​can represent unknown values ​​of the outputs of elements in the digital circuit design. During logic simulation, the x-propagation determination engine 110 can track the state elements of the digital circuit design to determine when any output of a state element during the logic simulation is an x ​​value, and trigger an x-propagation response when an output based on an x ​​value detected for a state element of the digital circuit design satisfies an x-propagation criterion.

[0021] The following describes these and other features of the propagation determination technique disclosed herein in more detail.

[0022] Figure 2 An example is shown of a method for tracking the propagation of the x-value in digital circuit design according to this disclosure. Figure 2 In the example, the x-propagation determination engine 110 accesses the digital circuit design 210. The digital circuit design 210 can be any representation of a circuit with digital logic (as opposed to a physical layout or physical circuit design). As an example, the digital circuit design 210 accessed by the x-propagation determination engine 110 can be a gate-level circuit design, a register-transfer-level (RTL) design (e.g., a synthesizable RTL design), or any other suitable format in which circuit elements are represented at a logic level. The x-propagation determination engine 110 can access the digital circuit design 210 in any suitable manner, such as by loading the digital circuit design 210 from local memory, receiving the digital circuit design 210 across a communication network, by user-selected RTL files or other circuit design files, or in various other ways.

[0023] To support the propagation determination of the x value, the x propagation determination engine 110 can parse the digital circuit design 210 to detect state elements within the digital circuit design 210. A state element can refer to any circuit element capable of remembering an input value, for example, storing an input value based on a clock cycle. Example state elements can therefore include registers, flip-flops, memory elements, and so on. Parsing and detecting state elements can include any mechanism or technique by which the x propagation determination engine 110 can identify state elements in the digital circuit design 210. As an example, the x propagation determination engine 110 can parse the digital circuit design 210 by analyzing, traversing, or otherwise processing the digital circuit design 210 to identify instances of registers, flip-flops, or other state elements within the digital circuit design 210. The x propagation determination engine 110 can detect some or all instances of state elements included in the digital circuit design.

[0024] The detection of state elements in the digital circuit design 210 allows the x-propagation determination engine 110 to monitor each detected state element during logic simulation. To support this feature, the x-propagation determination engine 110 can detect state elements in the digital circuit design prior to logic simulation. Design resolution and state element detection can occur before logic simulation or as part of a preprocessing step that occurs as an initial step in logic simulation. While monitoring detected state elements, the x-propagation determination engine 110 can track the output signals of the detected state elements during logic simulation to identify x values ​​in the digital circuit design 210.

[0025] To support state element tracking, the x-propagation determination engine 110 can utilize any supported or suitable mechanism to track the output signal of detected state elements. For example, the x-propagation determination engine 110 can insert a callback operation for each detected state element. Such a callback operation can send a callback signal to the x-propagation determination engine 110 whenever the output signal of the tracked state element changes value during logic simulation. As another example, the x-propagation determination engine 110 can record, track, or otherwise store the output value of each detected state element at each clock cycle during logic simulation. This document anticipates any form of signal monitoring or tracking, supported by the x-propagation determination engine 110, for monitoring the output signals of detected state elements in digital circuit designs.

[0026] Note that the x-propagation determination engine 110 does not need to detect or monitor the output signals of combinational logic (e.g., logic gates) or other non-state elements in the digital circuit design 210, although such an option is certainly possible. By abandoning the tracking of combinational logic and instead focusing on the output signals of state elements (e.g., registers and flip-flops), the x-propagation determination engine 110 can reduce the number of signals monitored during logic simulation. This reduction in monitoring can reduce the computational resources required or used to implement the propagation determination features for the various x values ​​described herein.

[0027] The x-propagation determination engine 110 can perform logic simulation on the digital circuit design 210 during or after the detection of state elements and any corresponding processing (e.g., callback operation insertion) in the digital circuit design 210. The x-propagation determination engine 110 can implement support for any type of input stimulus or logic simulation feature, and thus perform the logic simulation accordingly. By tracking the output signals of the detected state elements during logic simulation, the x-propagation determination engine 110 can track and identify the propagation of x values ​​as they occur, rather than through a post-simulation reverse tracing process as in conventional systems.

[0028] During logic simulation execution, the x-propagation determination engine 110 can apply any number of x-propagation criteria to monitor the digital circuit design. As used herein, an x-propagation criterion can refer to any condition based on the x-value output detected by state elements for the digital circuit design. This document presents a variety of metrics and criteria that the x-propagation determination engine 110 can apply as x-propagation criteria, either individually or in combination. Through any x-propagation criteria or combinations thereof described, the x-propagation determination engine 110 can detect or characterize x-propagation activity at different locations or time periods during the logic simulation. Therefore, the x-propagation criteria described herein can provide a variety of metrics that the x-propagation engine 110 can use to detect and analyze x-value activity in the logic simulation of the digital circuit design.

[0029] As an example of a criterion, the x-propagation determination engine 110 can apply an x-propagation criterion that is satisfied when, during a given time period of logic simulation, the threshold number or percentage of state elements tracked during the logic simulation has an x-value output. The threshold (also referred to herein as N% or N_number) can be user-specified and can be any configurable or predetermined value. As another example, the x-propagation determination engine 110 can apply an x-propagation criterion based on the propagation of x-values ​​between specific or different partitions of a circuit design, such as design modules, design cells, design elements at different levels, etc. As used herein, a design module can refer to any sub-circuit or partition of a broader digital circuit design. Design modules can have any level in a circuit design and can provide any type of functionality within the circuit. Therefore, a design module itself can be a circuit that is a sub-part of a digital circuit design. Multiple instances of design modules with the same module design can be included in a digital circuit design. When, during a given time period of logic simulation, the x-value output is determined to have propagated from one design module (e.g., a design module instance) in the digital circuit design to a different design module (e.g., another design module instance) in the digital circuit design, the x-propagation criterion based on the design module can be satisfied.

[0030] As another example of a criterion, the x-propagation determination engine 110 can apply an x-propagation criterion that is satisfied when, during a given time period during logic simulation, an x-value output is detected as the output of a highly critical register or other highly critical state element in the digital circuit design. The criticality metric can be specified by user input, and the x-propagation determination engine 110 can classify detected state elements in the digital circuit design into different criticality categories according to any suitable classification scheme, type, or classification implementation.

[0031] Continuing with the criterion example, the x-propagation determination engine 110 can apply an x-propagation criterion that is satisfied when, during a given time period of logic simulation, the threshold percentage of a state element being tracked during the logic simulation changes from a known value (e.g., "0" or "1") to an x-value. Such an x-propagation criterion can specifically track changes in output values ​​from known "1" or "0" values ​​to unknown values, which can emphasize monitoring the propagation of x-values ​​on previously undamaged state elements and can support x-propagation analysis with improved accuracy and high precision.

[0032] While this article presents some examples of x-propagation criteria, the x-propagation determination engine 110 can apply any additional or alternative x-propagation criteria based on the x-value output detected in the digital circuit design.

[0033] Note that the x-propagation determination engine 110 can apply any x-propagation criterion described herein to the entire digital circuit design or any specific sub-level, partition, or sub-section of the digital circuit design. As an illustrative example, the x-propagation determination engine 110 can determine that an x-propagation criterion is satisfied when N% of the monitored state elements in the entire digital circuit design are damaged (e.g., have x-value output signals), or alternatively, when N% of the monitored state elements in (any) design module of the digital circuit design have x-value output signals. Therefore, the x-propagation criterion can be applied at any granularity within the digital circuit design. As yet another feature, the x-propagation determination engine 110 can apply different N-value percentage thresholds for different partitions of the circuit design, for example, a 10% threshold for a first design module (or an instance thereof), 15% for a second design module (or an instance thereof), and a 1% threshold for the entire digital circuit design.

[0034] As another exemplary feature of this disclosure, the x-propagation determination engine 110 can determine the satisfaction of an x-propagation criterion at any time interval during logic simulation. As used herein, a time interval may refer to a specific point in time or a specific time range during logic simulation. Therefore, the x-propagation determination engine 110 can determine the satisfaction of an x-propagation criterion, wherein at any specific point in time during logic simulation such a criterion is satisfied, or additionally or alternatively, when such a criterion is satisfied over the entire time range (e.g., within a 2.5-second time range), >5% of the flip-flops in a particular design module have x-value outputs. Any suitable time metric is contemplated regarding x-propagation criterion satisfaction and the corresponding response.

[0035] In response to the determination that the x-propagation criterion is met, the x-propagation determination engine 110 may trigger an x-propagation response. This document anticipates any suitable action as an x-propagation response performed by the x-propagation determination engine 110. Example x-propagation responses may therefore include providing a visual indicator or user alert when the x-propagation criterion is met, or marking a given time period during logic simulation when the x-propagation criterion is met. An x-propagation response may also include any actions or procedures taken by the x-propagation determination engine 110 to support the visualization of x-values ​​as further described herein.

[0036] In any of the ways described herein, the x-propagation determination engine 110 can detect and monitor state elements in a digital circuit design. Tracking the output signals of the detected state elements allows the x-propagation determination engine 110 to determine the satisfaction of x-propagation criteria applied to track the propagation of x-values ​​in the digital circuit design. By tracking the propagation of x-values ​​in real time via x-propagation criteria, the propagation determination technique of this disclosure can support tracking unknown values ​​(including root causes of x-values) with increased efficiency and accuracy. Backtracking is not required after the execution of the logic simulation indicates the presence of an x-value. Instead, such x-value detection and propagation can be tracked simultaneously by the x-propagation determination engine 110 during the logic simulation itself. Tagged time periods of suspicious root causes or increased propagation activity can be determined by monitoring state elements without the need for time-consuming and error-prone backtracking of individual circuit signals.

[0037] As another technical benefit of this disclosure, the propagation determination technique of this disclosure may include various x-value visualization features, which can assist in x-value debugging and improve the efficiency and effectiveness of debugging systems in identifying the root causes and propagation of x-values ​​in digital circuit designs. See below for further details. Figure 3 Describe the visualization features of various x-values.

[0038] Figure 3 An example visualization of x values ​​supported by the propagation determination technique of this disclosure is shown. Figure 3 In the example, the x propagation determination engine 110 implements a graphical user interface (GUI) 300, which can visualize any suitable data on the propagation of x values ​​tracked during logic simulation, including according to any number of x propagation criteria.

[0039] In some implementations, the x-propagation engine 110 can visualize x-value activity based on partitions of the digital circuit design via the GUI 300. The x-propagation determination engine 110 supports any partition granularity via the GUI 300. For example, the GUI 300 can visualize the x-value activity of multiple design modules of a digital circuit design, where each design module is independently characterized based on the monitored x-value activity. By doing so, the GUI 300 can help users quickly and efficiently identify specific design modules of the digital circuit design that exhibit anomalous or additional x-value propagation activity. This design module-based visualization can also help analyze when (e.g., time period) and where (e.g., circuit location) x-values ​​are introduced during circuit operation and how these x-values ​​propagate throughout the digital circuit design.

[0040] The GUI 300 implemented by the x-propagation determination engine 110 can visualize x-value activity on a design module-specific basis based on any number or combination of visualization metrics, including those presented or based on various x-propagation criteria herein. As an example visualization metric, the x-propagation determination engine 110 can apply the “XFF” visualization metric, which measures the number (or percentage) of state elements (e.g., flip-flops) with x-value outputs within a given design module. Such a visualization metric can be similar to the N% x-propagation criterion described herein. The x-propagation determination engine 110 can use the output signals of detected state elements monitored during logic simulation to measure the “XFF” visualization metric for various design modules of a digital circuit design. By doing so, the x-propagation determination engine 110 can calculate the “XFF” metric value for any design module of a digital circuit design at any given point in time or time range during logic simulation, which the x-propagation determination engine 110 can visualize via the GUI 300.

[0041] As another example metric, the x-propagation determination engine 110 can apply the "XCFF" visualization metric, which measures the number (or percentage) of state elements (e.g., flip-flops) within a given design module that have output values ​​that change from a known value of "0" or "1" to an x ​​value at a given point in time or within a time range. In a similar manner to the "XFF" visualization metric, the x-propagation determination engine 110 can measure the "XCFF" visualization metric for various design modules that constitute a digital circuit design or its sub-parts. While two example metrics are presented herein, the x-propagation determination engine 110 can consistently apply any suitable additional or alternative visualization metrics.

[0042] To visualize multiple design modules based on visualization metrics, the X-Propagation Determination Engine 110 can utilize heatmaps. Example heatmaps are available in... Figure 3 The diagram shows a heatmap 302 of a GUI 300 implemented by an x-propagation determination engine 110. The x-propagation determination engine 110 can provide the heatmap 302 as a given visualization metric for multiple design modules of a digital circuit design. Each individual partition of the heatmap 302 can represent an instance of various design modules forming the digital circuit design, and the x-propagation determination engine 110 can vary the size of the partitions in the heatmap 302 to reflect (e.g., proportionally) the number of monitored state elements in the corresponding design module instance represented by the partition. Thus, a larger partition in the heatmap 302 can correspond to a design module instance with a larger number of monitored state element outputs, and vice versa.

[0043] When visualizing heatmap 302, the x-propagation determination engine 110 can visualize each partition of heatmap 302 using color or pattern based on the values ​​of specific visualization metrics visualized via GUI 300, such as XFF or XCFF visualization metrics determined for each corresponding design module instance. Any suitable color or pattern scheme can be used, for example, green for 0% XFF or XCFF values, red for 100% XFF or XCFF values, with gradient shading at other % breakpoints or ranges. Figure 3 In the example shown, the x-propagation determination engine 110 patterns the partitions in an increasingly darker scheme to reflect the increasingly higher values ​​of the visualization metrics (whether XFF or XCFF). This paper anticipates any suitable heatmap visualization scheme to distinguish the different values ​​or ranges of values ​​of the applied visualization metrics among various design modules of a digital circuit design.

[0044] To support x-value propagation analysis, the GUI 300 implemented by the x-propagation determination engine 110 can support visualization over time. As an example, the x-propagation determination engine 110 can implement heatmap 302 or any other part of the GUI 300 to support rolling time features, where the color of the visualized partitions of the heatmap changes over time as the visualized metric of the design module instance changes during logic simulation. By doing so, x-value propagation activities can be visualized, and x-value leakage and propagation can be identified with increased ease and efficiency.

[0045] As an illustrative debugging example, the x-propagation determination engine 110 can provide a time-rolling capability for digital circuit designs. In response to user input for time rolling, heatmap partitions for a given design module in the digital circuit design can change color to indicate the propagation and activity of increasing x-values ​​(e.g., increasing XFF or XCFF values). This can indicate that the number of x-values ​​propagating within that rolling time range has increased, and the user can identify leaks in the increase of x-values ​​for a given design module during that time period. The user can then delve further into that specific design module, and the x-propagation determination engine 110 can support further visualization of lower-level design modules (e.g., submodules) that form that specific design module. For example, the GUI 300 can support selecting that specific design module and visualizing heatmaps of any lower-level submodules that form the given design module (including over the identified time range). This visualization of a given design module at a lower granularity allows for further investigation into the occurrence and propagation of x-values.

[0046] Furthermore, the x-propagation determination engine 110 can visualize the values ​​of visual metrics for various design module instances at different points in time and time ranges (including marked time periods during logic simulation where any x-propagation criteria have been satisfied). These marked times can act as bookmarks or saved snapshots during logic simulation, which the x-propagation determination engine 110 can suggest as initial investigation points for the user. This snapshot and automatic time capture via x-propagation responses triggered during logic simulation can provide specific points where the number or percentage of state elements corrupted by x-value outputs exceeds a specified threshold, e.g., >N%.

[0047] The x-propagation determination engine 110 can support the display of any type of data related to the propagation of x-values ​​via the GUI 300. This article describes various features of the heatmap, including those obtained through... Figure 3 The heatmap 302 is shown in the image. As another example, the x-propagation determination engine 110 can support the ability to select any time period via the GUI 300, including selecting to display a specific point in time or time range. Additionally or alternatively, the x-propagation determination engine 110 can support visualization of design modules at any partition or granularity within a digital circuit design.

[0048] Visualization of specific design module instances can be supported, including any level and sub-section of a digital circuit design. As yet another example, the x-propagation determination engine 110 can provide a list of data in the GUI 300, such as indicating specific registers, flip-flops, or other state elements within a given design module or circuit partition that have x-value outputs over a given time period. While examples of various visualization capabilities are described herein, the x-propagation determination engine 110 can implement any suitable visualization to support the propagation determination of x-values ​​according to this disclosure.

[0049] This paper describes various features used for x-propagation determination. Any combination of the features described herein can be implemented by the x-propagation determination engine 110 to support the detection, characterization, analysis, or visualization of x-value activity in digital circuit design.

[0050] Figure 4 An example of logic 400 that the system can implement to support the propagation determination of unknown values ​​in logic simulation for digital circuit design is shown. For example, computing system 100 may implement logic 400 as hardware, executable instructions stored on a machine-readable medium, or a combination of both. Computing system 100 may implement logic 400 via x-propagation determination engine 110, through which computing system 100 may execute or implement logic 400 as a method to support the propagation determination of unknown values ​​in logic simulation for digital circuit design. The following description of logic 400 uses x-propagation determination engine 110 as an example. However, various other implementation options of the system are possible.

[0051] When implementing logic 400, the x-propagation determination engine 110 can access and parse the digital circuit design (402) to detect state elements (404) in the digital circuit design. Detected state elements may include any registers, flip-flops, memory elements, or combinations thereof in the digital circuit design. When implementing logic 400, the x-propagation determination engine 110 can also perform a logic simulation of the digital circuit design, which includes tracking the propagation of x values ​​in the digital circuit (406). As described herein, x values ​​can represent unknown values ​​of the outputs of elements in the digital circuit design. During the logic simulation execution, the x-propagation determination engine 110 can track the state elements of the digital circuit design to determine when any output of a state element during the logic simulation is an x ​​value (408), and trigger an x-propagation response (410) when the x-value output detected based on the state elements of the digital circuit design satisfies the x-propagation criterion, doing so in any manner described herein.

[0052] Figure 4 The logic 400 shown provides an illustrative example by which computing system 102 can support, implement, or provide the ability to determine critical sub-parts for circuit design. Additional or alternative steps in logic 400 are contemplated herein, including any propagation determination techniques described herein via x-propagation determination engine 110.

[0053] Figure 5 An example of a computing system 500 for determining the propagation of unknown values ​​in logic simulation supporting digital circuit design is shown. The computing system 500 may include a processor 510, which may take the form of a single processor or multiple processors. The processor(s) 510 may include a central processing unit (CPU), a microprocessor, or any hardware device suitable for executing instructions stored on a machine-readable medium. The computing system 500 may include a machine-readable medium 520. The machine-readable medium 520 may take the form of any non-transitory electronic, magnetic, optical, or other physical storage device storing executable instructions, such as… Figure 5 The x propagation determination instruction 522 is shown in the figure. Therefore, the machine-readable medium 520 can be, for example, random access memory (RAM) such as dynamic RAM (DRAM), flash memory, spin-torque memory, electrically erasable programmable read-only memory (EEPROM), storage drive, optical disk, etc.

[0054] The computing system 500 can execute instructions stored on the machine-readable medium 520 via the processor 510. Executing the instructions (e.g., x-propagation determination instruction 522) can cause the computing system 500 to perform any propagation determination feature described herein, including any feature based on the x-propagation determination engine 110.

[0055] For example, execution of x-propagation determination instruction 522 by processor 510 can cause computing system 500 to access and parse a digital circuit design to detect state elements in the digital circuit design. Detected state elements may include any registers, flip-flops, memory elements, or combinations thereof in the digital circuit design. Execution of x-propagation determination instruction 522 by processor 510 can also cause computing system 500 to perform a logic simulation of the digital circuit design, which includes tracking the propagation of x values ​​in the digital circuit. As described herein, x values ​​can represent unknown values ​​of the outputs of elements in the digital circuit design. Execution of x-propagation determination instruction 522 by processor 510 can also cause computing system 500 to track state elements of the digital circuit design during logic simulation execution to determine when any output of a state element during logic simulation is an x ​​value, and trigger an x-propagation response, in any manner described herein, when the x-value output detected based on the state elements of the digital circuit design satisfies the x-propagation criterion.

[0056] Any additional or alternative propagation determination features described herein can be implemented via x-propagation determination instruction 522.

[0057] The systems, methods, apparatus, and logic described above, including the x-propagation determination engine 110, can be implemented in many different ways as a variety of different combinations of hardware, logic, circuitry, and executable instructions stored on a machine-readable medium. For example, the x-propagation determination engine 110 may include circuitry in a controller, microprocessor, or application-specific integrated circuit (ASIC), or may be implemented using discrete logic or components, or combinations of other types of analog or digital circuitry, integrated on a single integrated circuit or distributed among multiple integrated circuits. Products, such as computer program products, may include storage media and machine-readable instructions stored on the media that, when executed in an endpoint, computer system, or other device, cause the device to perform operations according to any of the foregoing descriptions, including any features of the x-propagation determination engine 110.

[0058] The processing power of the systems, devices, and engines described herein (including the x-propagation determination engine 110) can be distributed across multiple system components, such as across multiple processors and memories, optionally including multiple distributed processing systems or cloud / network elements. Parameters, databases, and other data structures can be stored and managed separately, can be merged into a single memory or database, can be logically and physically organized in many different ways, and can be implemented in many ways, including data structures such as linked lists, hash tables, or implicit storage mechanisms. Programs can be parts of a single program (e.g., subroutines), standalone programs, distributed across multiple memories and processors, or implemented in different ways, such as in libraries (e.g., shared libraries).

[0059] While various examples have been described above, more implementations are possible.

Claims

1. A method comprising: By computing system: Access (402) Digital Circuit Design (210); The digital circuit design (210) is analyzed (404) to detect state elements in the digital circuit design (210), wherein the state elements include registers, flip-flops, memory elements or any combination thereof; Performing (406) logic simulation on the digital circuit design (210), the logic simulation including tracking the propagation of x values ​​in the digital circuit, wherein the x values ​​represent unknown values ​​of the outputs of the digital circuit design elements, including during the logic simulation: Track (408) the state elements of the digital circuit design (210) to determine when any output of the state elements is the x value during the logic simulation; as well as When the x-value output detected by the state element for the digital circuit design (210) satisfies the x-propagation criterion, the x-propagation response (410) is triggered.

2. The method according to claim 1, wherein, The x propagation criterion is satisfied when, during a given time period of the logic simulation, the threshold percentage of the state element tracked during the logic simulation has the x value as output.

3. The method according to claim 1, wherein, The x propagation criterion is satisfied when, during a given time period of the logic simulation, the x-value output is determined to have propagated from one design module in the digital circuit design (210) to a different design module in the digital circuit design (210).

4. The method according to claim 1, wherein, The x propagation criterion is satisfied when the x-value output is detected as the output of a highly critical register in the digital circuit design (210) during a given time period of the logic simulation, and the criticality metric of the highly critical register is specified by user input.

5. The method according to claim 1, wherein, The x propagation criterion is satisfied when, during a given time period of the logic simulation, the threshold percentage of the state element tracked during the logic simulation has an output that changes from a known value to the x value.

6. The method according to any one of claims 2 to 5, wherein, The x-propagation response includes: marking the given time period during which the x-propagation criterion is satisfied during the logic simulation.

7. The method according to any one of claims 1 to 6, further comprising: Visualizing the x-value activity of the state elements of the digital circuit design (210) during a specific time period of the logic simulation, including by: The circuit design module is visualized as a plurality of design modules, wherein the plurality of design modules are sized differently based on the number of state elements of the digital circuit design (210) included in each of the plurality of design modules; as well as Based on the calculated visualization metrics, colors or patterns are applied to each of the plurality of design modules in the visualization. The visualization metric is the number or percentage of state elements that have an x-value output signal in each of the plurality of design modules during the specific time period, or The visualization metric is the number or percentage of state elements in each of the plurality of design modules that have an output signal that changes from a known value to the x value during the specific time period.

8. A system comprising: Processor (510); and A non-transitory machine-readable medium (520) including instructions (522), which, when executed by the processor (510), cause the computing system (100, 500) to: Access Digital Circuit Design (210); The digital circuit design (210) is analyzed to detect state elements in the digital circuit design (210), wherein the state elements include registers, flip-flops, memory elements or any combination thereof; Performing a logic simulation on the digital circuit design (210), the logic simulation including tracking the propagation of x values ​​in the digital circuit, wherein the x values ​​represent unknown values ​​of the outputs of the digital circuit design elements, including during the logic simulation: Track (408) the state elements of the digital circuit design (210) to determine when any output of the state elements is the x value during the logic simulation; as well as When the x-value output detected by the state element for the digital circuit design (210) satisfies the x-propagation criterion, the x-propagation response (410) is triggered.

9. The system according to claim 8, wherein, The x propagation criterion is satisfied when, during a given time period of the logic simulation, the threshold percentage of the state element tracked during the logic simulation has the x value as output.

10. The system according to claim 8, wherein, The x propagation criterion is satisfied when, during a given time period of the logic simulation, the x-value output is determined to have propagated from one design module in the digital circuit design (210) to a different design module in the digital circuit design (210).

11. The system according to claim 8, wherein, The x propagation criterion is satisfied when the x-value output is detected as the output of a highly critical register in the digital circuit design (210) during a given time period of the logic simulation, and the criticality metric of the highly critical register is specified by user input.

12. The system according to claim 8, wherein, The x propagation criterion is satisfied when, during a given time period of the logic simulation, the threshold percentage of the state element tracked during the logic simulation has an output that changes from a known value to the x value.

13. The system according to any one of claims 8 to 12, wherein, The x-propagation response includes: marking the given time period during which the x-propagation criterion is satisfied during the logic simulation.

14. The system according to any one of claims 8 to 14, wherein, The instruction (522) also enables the computing system to visualize the x-value activity of the state elements of the digital circuit design (210) during a specific time period during the logic simulation, including by: The circuit design module is visualized as a plurality of design modules, wherein the plurality of design modules are sized differently based on the number of state elements of the digital circuit design (210) included in each of the plurality of design modules; as well as Based on the calculated visualization metrics, colors or patterns are applied to each of the plurality of design modules in the visualization. The visualization metric is the number or percentage of state elements that have an x-value output signal in each of the plurality of design modules during the specific time period, or The visualization metric is the number or percentage of state elements in each of the plurality of design modules that have an output signal that changes from a known value to the x value during the specific time period.

15. A non-transitory machine-readable medium (520) comprising instructions (522) that, when executed by a processor (510), cause a computing system (100, 500) to perform the method according to any one of claims 1 to 7.