US20210173989A1 - Simulation signal viewing method and system for digital product - Google Patents
Simulation signal viewing method and system for digital product Download PDFInfo
- Publication number
- US20210173989A1 US20210173989A1 US17/139,294 US202017139294A US2021173989A1 US 20210173989 A1 US20210173989 A1 US 20210173989A1 US 202017139294 A US202017139294 A US 202017139294A US 2021173989 A1 US2021173989 A1 US 2021173989A1
- Authority
- US
- United States
- Prior art keywords
- digital product
- status data
- fpga
- simulation
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012795 verification Methods 0.000 claims abstract description 53
- 239000000523 sample Substances 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 description 18
- 238000013461 design Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
Definitions
- the present invention relates to the field of simulation of digital logic products, in particular to a simulation signal viewing method and system for a digital product.
- the working principle of the software simulator is as follows: a design under test (RTL codes or gate-level netlist) and a test vector (hardware description language verification language (HVL) codes or non-synthesizable SystemVerilog program) are operated in the simulator, and a verification process defined in the test vector is completed through the interface signal interaction between the design under test and the test vector. Developers can view a value of any test vector, check a value of any interface or internal signal of the design under test, or check a waveform composed of a plurality of clock cycles to confirm whether the design is correct, and Debug.
- RTL codes or gate-level netlist and a test vector (hardware description language verification language (HVL) codes or non-synthesizable SystemVerilog program) are operated in the simulator, and a verification process defined in the test vector is completed through the interface signal interaction between the design under test and the test vector. Developers can view a value of any test vector, check a value of any interface or internal signal of the design
- the working principle of the software simulator is as follows: a design under test (RTL codes or gate-level netlist) and a test vector (hardware description language verification language) (HVL codes or non-synthesizable SystemVerilog program) are operated in the simulator, and a verification process defined in the test vector is completed through the interface signal interaction between the design under test and the test vector. Developers can view a value of any test vector, check a value of any interface or internal signal of the design under test, or check a waveform composed of a plurality of clock cycles to confirm whether the design is correct, and Debug.
- FPGA Prototyping Verification The FPGA prototyping verification can reach an operating speed of tens of MHz or even higher, enabling faster verification.
- a general method is to trigger and display just by guiding a required signal to a port through wiring, and then connecting to a logic analyzer.
- This detection method is referred to as a static probe.
- This static probe can only see a very limited number of signals. Each time a new signal needs to be seen, FPGA wiring needs to be re-routed, which requires a long preparation time. Moreover, in this process, due to changes in signals or environment, the original error or event will be difficult to reemerge. Therefore, the debuggability of FPGA is very poor.
- the industry tends to a solution that allows the simulation verification process to have the full visibility of signals of the software simulator and the high speed of the FPGA prototyping verification.
- This solution is referred to as a hardware emulator in the industry.
- the hardware emulator has two important features:
- the hardware emulator compared with the software simulator, the hardware emulator has obvious advantages in performance. Generally speaking, the hardware emulator has an operating speed in MHz level; and
- a distributed dedicated processor array is adopted, which is equivalent to a super-large-scale processor cluster to operate software simulators in parallel; customized FPGAs are used to form an array, wherein all signals are stored into an external memory through additional signal channels and additional wiring resources; and general-purpose FPGAs are used to form an array, wherein shadow resources are cloned, stored and transferred to an external memory.
- the signals are read and stored to the external memory by means of the read and write capabilities of a scan chain provided by an FPGA.
- the dedicated processor array has the advantage that the signal detectability is very powerful, but has the disadvantages that the operating speed is very slow, the power consumption is very large, and a dedicated processor application-specific integrated circuit (ASIC) needs to be developed, and the upgrade cost is very high.
- the customized FPGA array has the advantage of high operating speed, but has the disadvantages of the need to invest in the development of a customized FPGA and high upgrade cost.
- the general-purpose FPGA array has the advantages of high speed and low cost, but the disadvantage of relatively weak signal detectability.
- Cloning of shadow resource all trigger signals of a signal to be tested are output to a shadow register, and then transferred to an external memory one by one through dedicated logic. A combinational signal is calculated from the trigger signals in the later stage through software. This method basically does not reduce the operating speed of the design under test, and consumes a lot of shadow logics, resulting in very low availability of FPGA resources for a logic to be tested (as low as ⁇ 30%). At the same time, when the signal needs to be displayed after operation, the preparation time for displaying the signal is very long due to the need to recalculate the combinational logic.
- Read/write of resources by a FPGA scan chain all FPGA manufacturers provide read/write channels for internal resources, which can directly read or write logics such as registers (DFF), logic resources (LUT), and built-in SRAM (BRAM) in additional channels outside the ordinary logic resource network (it can be understood as a signal channel from the perspective of God).
- DFF registers
- LUT logic resources
- BRAM built-in SRAM
- This channel is generally used for FPGA configuration, but the hardware emulator can also use this channel to read any internal signal.
- This method is referred to as a dynamic probe detection method.
- the dynamic probe detection method does not any consume FPGA resources.
- the read channel adopts a manner of serial reading by the scan chain, the speed is extremely slow. If this channel is used for reading, the operating speed is as low as a Hz level. Therefore, the common hardware emulator only uses dynamic probes to obtain respective signal values, and the operating speed will be reduced to an extremely low level when it is used to continuously obtain signals.
- the present invention aims to provide a simulation signal viewing method and system for a digital product, which can quickly view all simulation data of any clock cycle in a backtracking manner, in view of the technical problem that the general-purpose FPGA in the above-mentioned related art is low-speed and time-consuming in realizing the full visibility of signals.
- a simulation system for a digital product including: a field programmable gate array (FPGA), configured to load the digital product and perform a plurality of simulation verifications, wherein the simulation verifications comprise, in a sequential order, a first simulation verification and a second simulation verification; a controller, configured to control the FPGA to perform the simulation verifications; and a storage device, configured to store simulated data read and recorded by the controller.
- FPGA field programmable gate array
- the controller when controlling the FPGA to perform the first simulation verification on the digital product, is configured to: read external port status data of all external ports of the digital product in real time, and meanwhile read all internal status data of the digital product once at each interval; and after the first simulation verification is completed, in response to determining that data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, read the internal status data of the digital product stored at a last time point before said certain clock cycle and the external port status data of the external ports at said last time point from the recorded simulated data.
- the controller when controlling the FPGA to perform the second simulation verification on the digital product, is configured to: load the digital product into the FPGA, and set the external port status data of the external ports and the internal status data recorded at said last time point as initial status data of the digital product; and start the FPGA to operate to one clock cycle before the certain clock cycle that needs to be viewed, and read all the internal status data of the digital product clock by clock until the certain clock cycle that needs to be viewed is reached.
- the controller when controlling the FPGA to perform the first simulation verification on the digital product, is further configured to, after reading the external port status data and the internal status data of the digital product, process the external port data and the internal status data of the digital product as ordered structured data with serial numbers of the clock cycles as time stamps, and save the ordered structured data in the storage device.
- the controller when controlling the FPGA to perform the first simulation verification on the digital product, is configured to read the external port status data of all external ports of the digital product using a static probe detection method, and to read all the internal status data of the digital product using a dynamic probe detection method.
- a method for viewing simulation signals of a digital product including the following steps:
- the controller controlling, by the controller, the FPGA to perform the second simulation verification on the digital product by loading the digital product into the FPGA, setting the external port status data of the external ports and the internal status data recorded at said last time point as initial status data of the digital product, starting the FPGA to operate to one clock cycle before the certain clock cycle that needs to be viewed, and reading all the internal status data of the digital product clock by clock until the certain clock cycle that needs to be viewed is reached.
- the external port data and the internal status data of the digital product are recorded, the external port data and the internal status data of the digital product are saved as ordered structured data with serial numbers of the clock cycles as time stamps.
- all the external port status data of the external ports of the digital product are read using a static probe detection method.
- all the internal status data of the digital product are read using a dynamic probe detection method.
- an interval time of each interval is identical.
- the interval time of each interval is 1 million clock cycles.
- an interval time of each interval is different.
- the status data of all external ports of the digital product are read and recorded in real time while performing FPGA simulation on the digital product, and meanwhile all internal status data of the digital product are read and recorded once at each interval; after the simulation is completed, if data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, the internal status data of the digital product stored at the last time point before said clock cycle and the external port status data at said time point are read from the recorded simulated data, and the read external status data and internal status data are written into the digital product, such that the digital product begins to operate with these status data as an initial operating status; when the digital product operates to one clock cycle before a clock cycle that needs to be viewed, all internal status data of the digital product are read clock by clock till the digital product operates to the clock cycle that needs to be viewed; and then the data in the vicinity of said clock cycle can be acquired and viewed, such that the operating time of the FPGA before said
- FIG. 1 is a schematic structural diagram of a simulation system for a digital product according to an embodiment of the present disclosure.
- FIG. 2 is a flowchart of a method for viewing simulation signals of a digital product according to an embodiment of the present invention.
- code may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, and/or objects.
- shared means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory.
- group means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories.
- interface generally refers to a communication tool or means at a point of interaction between components for performing data communication between the components.
- an interface may be applicable at the level of both hardware and software, and may be uni-directional or bi-directional interface.
- Examples of physical hardware interface may include electrical connectors, buses, ports, cables, terminals, and other I/O devices or components.
- the components in communication with the interface may be, for example, multiple components or peripheral devices of a computer system.
- FIG. 1 is a schematic structural diagram of a simulation system for a digital product according to an embodiment of the present disclosure. It should be stated that the system as shown in FIG. 1 only shows schematic components to perform the functions, and, unless otherwise indicated, the components may be implemented or modified by hardware and/or software components or a combination thereof that provide functions.
- a simulation system 100 for a digital product which comprises a field programmable gate array (FPGA) 110 , a controller 120 and a storage device 130 .
- FPGA field programmable gate array
- the FPGA 110 is configured to load the digital product and perform FPGA simulation verifications. Specifically, the FPGA 110 is controlled to perform multiple simulation verifications, including, in a sequential order, a first simulation verification and a second simulation verification. Details of the first simulation verification and the second simulation verification will be discussed hereinafter.
- the controller 120 is configured to control the FPGA 110 to perform the simulation verifications, to read the simulation data of the FPGA 110 , and to determine whether data of a certain clock cycle of the digital product needs to be viewed.
- the storage device 130 is configured to store the simulation data of the FPGA 110 .
- the storage device 130 may be a local or a remote storage device. Examples of the storage device 130 may include, without being limited thereto, hard drives, floppy disks, optical drives, non-volatile memory such as flash memory, memory cards, USB drives, or any other types of data storage devices.
- the system 100 may have more than one storage device 130 . In the case where multiple storage devices 130 are provided, and the simulation data may be stored in the storage devices 130 separately.
- the controller 120 when the controller 120 controls the FPGA 110 to perform the first simulation verification on the digital product, the controller 120 may, after reading the external port status data and the internal status data of the digital product, process the external port data and the internal status data of the digital product as ordered structured data with serial numbers of the clock cycles as time stamps, and save the ordered structured data in the storage device 130 .
- the controller 120 when the controller 120 controls the FPGA 110 to perform the first simulation verification on the digital product, the controller 120 may read the external port status data of all external ports of the digital product using a static probe detection method 150 , and read all the internal status data of the digital product using a dynamic probe detection method 160 .
- FIG. 2 is a flowchart of a method for viewing simulation signals of a digital product according to an embodiment of the present invention.
- the method as shown in FIG. 2 may be implemented on the simulation system 100 as shown in FIG. 1 . It should be particularly noted that, unless otherwise stated in the present invention, the steps of the method may be arranged in a different sequential order, and are thus not limited to the sequential order as shown in FIG. 2 .
- the controller 120 controls the FPGA 110 to start performing, as a first simulation verification, FPGA simulation on the digital product.
- the controller 120 reads status data of all external ports of the digital product in real time using a static probe detection method 150 , and meanwhile reads all internal status data of the digital product once at each interval using a dynamic probe detection method 160 .
- the controller 120 processes the external port data and internal status data of the digital product as ordered structured data using the serial numbers of clock cycles as time stamps and saves the ordered structured data in the storage device 130 . Since the saved data includes the serial numbers of the clock cycles as the time stamps, it is convenient to query data corresponding to a clock cycle when the data is queried subsequently.
- the digital product when the digital product is subjected to the FPGA simulation, the digital product is loaded into the FPGA 110 , and initial operating parameters are then set.
- the status data of all external ports of the digital product When the status data of all external ports of the digital product is read, the external ports have been led out through wires by means of the static probe detection method 150 . Therefore, the status data can be read directly in real time without any delay.
- the speed is extremely slow, and it takes a lot of time to read all internal status data of a digital product every time. Therefore, it is not possible to read all the internal status data of the digital product in real time, and it is also impossible to read it once at a periodic interval.
- the interval time of each interval may be identical.
- the interval time of each interval may be set as 1 million clock cycles.
- the interval time of each interval may be different. For example, at the beginning of the simulation, the interval time can be set larger, such as 10 million clock cycles. In the later stage of the simulation, the interval time can be set smaller, such as 1 million clock cycles.
- the controller 120 checks the data to determine if data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner. In response to determining that data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, at step 240 , the controller 120 reads the internal status data of the digital product stored at the last time point before said clock cycle and the status data of the external ports at said last time point from the recorded simulated data.
- the controller 120 may control the FPGA 110 to start performing a second simulation verification on the digital product.
- the controller 120 controls the FPGA 110 to load the digital product into the FPGA 110 , the external port status data recorded at said last time point is written into an external port status data register of the digital product, and internal signals recorded at said last time point are written into an internal status data memory of the digital product.
- the internal status data memory of the digital product comprises a built-in register (DFF), a logic resource (LUT), and a built-in SRAM (BRAM).
- the controller 120 controls the FPGA 110 to start another FPGA simulation as the second simulation verification, such that the digital product begins to operate with these status data as an initial operating status; when the digital product operates to one clock cycle before a clock cycle that needs to be viewed, all internal status data of the digital product are read clock by clock by using a dynamic probe, till the digital product operates to the clock cycle that needs to be viewed, such that the operating time of the FPGA 110 before said time point is shortened, thereby saving the time for viewing data.
- the status data of all external ports of the digital product are read and recorded in real time while performing FPGA simulation on the digital product, and meanwhile all internal status data of the digital product are read and recorded once at each interval; after the simulation is completed, if data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, the internal status data of the digital product stored at the last time point before said clock cycle and the external port status data at said time point are read from the recorded simulated data, and the read external status data and internal status data are written into the digital product, such that the digital product begins to operate with these status data as an initial operating status; when the digital product operates to one clock cycle before a clock cycle that needs to be viewed, all internal status data of the digital product are read clock by clock till the digital product operates to the clock cycle that needs to be viewed; and then the data in the vicinity of said clock cycle can be acquired and viewed, such that the operating time of the FPGA before said time point is
Abstract
Description
- This application is a continuation of International Patent Application No. PCT/CN2020/081216, filed on Mar. 25, 2020, which itself claims priority to Chinese Patent Application No. CN201911243067.7 filed in China on Dec. 6, 2019. The disclosures of the above applications are incorporated herein in their entireties by reference.
- The present invention relates to the field of simulation of digital logic products, in particular to a simulation signal viewing method and system for a digital product.
- The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
- In the design process of digital logic products, a simulation verification method is needed to test and verify the correctness of the design. Generally speaking, this link is accomplished using a software simulator.
- The working principle of the software simulator is as follows: a design under test (RTL codes or gate-level netlist) and a test vector (hardware description language verification language (HVL) codes or non-synthesizable SystemVerilog program) are operated in the simulator, and a verification process defined in the test vector is completed through the interface signal interaction between the design under test and the test vector. Developers can view a value of any test vector, check a value of any interface or internal signal of the design under test, or check a waveform composed of a plurality of clock cycles to confirm whether the design is correct, and Debug.
- The working principle of the software simulator is as follows: a design under test (RTL codes or gate-level netlist) and a test vector (hardware description language verification language) (HVL codes or non-synthesizable SystemVerilog program) are operated in the simulator, and a verification process defined in the test vector is completed through the interface signal interaction between the design under test and the test vector. Developers can view a value of any test vector, check a value of any interface or internal signal of the design under test, or check a waveform composed of a plurality of clock cycles to confirm whether the design is correct, and Debug.
- However, limited by the software processing performance, the performance of the software simulator is very limited. Generally speaking, to verify a complete design of a system on a chip (SoC), an operating speed may be only tens of Hz. Therefore, in order to speed up, designers tend to migrate the design to a field programmable gate array (FPGA) for verification as soon as possible. This verification method is generally called FPGA Prototyping Verification. The FPGA prototyping verification can reach an operating speed of tens of MHz or even higher, enabling faster verification. However, the FPGA prototyping verification is difficult to detect a signal value of the design under test. A general method is to trigger and display just by guiding a required signal to a port through wiring, and then connecting to a logic analyzer. This detection method is referred to as a static probe. This static probe can only see a very limited number of signals. Each time a new signal needs to be seen, FPGA wiring needs to be re-routed, which requires a long preparation time. Moreover, in this process, due to changes in signals or environment, the original error or event will be difficult to reemerge. Therefore, the debuggability of FPGA is very poor.
- In consideration of the obvious advantages and disadvantages of the software simulator and FPGA prototyping verification, the industry tends to a solution that allows the simulation verification process to have the full visibility of signals of the software simulator and the high speed of the FPGA prototyping verification. This solution is referred to as a hardware emulator in the industry. The hardware emulator has two important features:
- performance: compared with the software simulator, the hardware emulator has obvious advantages in performance. Generally speaking, the hardware emulator has an operating speed in MHz level; and
- signal detectability: compared with the FPGA prototyping verification, the hardware emulator has convenient signal detectability, wherein all internal and port signals of the design under test can be seen, without the need to re-operate or re-configure, which is referred to as “Full Visibility” in terminology.
- In order to realize the hardware emulator, there are several technical solutions: a distributed dedicated processor array is adopted, which is equivalent to a super-large-scale processor cluster to operate software simulators in parallel; customized FPGAs are used to form an array, wherein all signals are stored into an external memory through additional signal channels and additional wiring resources; and general-purpose FPGAs are used to form an array, wherein shadow resources are cloned, stored and transferred to an external memory. Alternatively, the signals are read and stored to the external memory by means of the read and write capabilities of a scan chain provided by an FPGA.
- The dedicated processor array has the advantage that the signal detectability is very powerful, but has the disadvantages that the operating speed is very slow, the power consumption is very large, and a dedicated processor application-specific integrated circuit (ASIC) needs to be developed, and the upgrade cost is very high. The customized FPGA array has the advantage of high operating speed, but has the disadvantages of the need to invest in the development of a customized FPGA and high upgrade cost. The general-purpose FPGA array has the advantages of high speed and low cost, but the disadvantage of relatively weak signal detectability.
- In the solution of the general-purpose FPGA array, there are generally two methods to achieve full signal visibility:
- Cloning of shadow resource: all trigger signals of a signal to be tested are output to a shadow register, and then transferred to an external memory one by one through dedicated logic. A combinational signal is calculated from the trigger signals in the later stage through software. This method basically does not reduce the operating speed of the design under test, and consumes a lot of shadow logics, resulting in very low availability of FPGA resources for a logic to be tested (as low as <30%). At the same time, when the signal needs to be displayed after operation, the preparation time for displaying the signal is very long due to the need to recalculate the combinational logic.
- Read/write of resources by a FPGA scan chain: all FPGA manufacturers provide read/write channels for internal resources, which can directly read or write logics such as registers (DFF), logic resources (LUT), and built-in SRAM (BRAM) in additional channels outside the ordinary logic resource network (it can be understood as a signal channel from the perspective of God). For example, XILINX calls this function as Configuration Readback Capture. This channel is generally used for FPGA configuration, but the hardware emulator can also use this channel to read any internal signal. This method is referred to as a dynamic probe detection method. The dynamic probe detection method does not any consume FPGA resources. However, because the read channel adopts a manner of serial reading by the scan chain, the speed is extremely slow. If this channel is used for reading, the operating speed is as low as a Hz level. Therefore, the common hardware emulator only uses dynamic probes to obtain respective signal values, and the operating speed will be reduced to an extremely low level when it is used to continuously obtain signals.
- The present invention aims to provide a simulation signal viewing method and system for a digital product, which can quickly view all simulation data of any clock cycle in a backtracking manner, in view of the technical problem that the general-purpose FPGA in the above-mentioned related art is low-speed and time-consuming in realizing the full visibility of signals.
- In one aspect of the present invention, a simulation system for a digital product is provided, including: a field programmable gate array (FPGA), configured to load the digital product and perform a plurality of simulation verifications, wherein the simulation verifications comprise, in a sequential order, a first simulation verification and a second simulation verification; a controller, configured to control the FPGA to perform the simulation verifications; and a storage device, configured to store simulated data read and recorded by the controller. The controller, when controlling the FPGA to perform the first simulation verification on the digital product, is configured to: read external port status data of all external ports of the digital product in real time, and meanwhile read all internal status data of the digital product once at each interval; and after the first simulation verification is completed, in response to determining that data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, read the internal status data of the digital product stored at a last time point before said certain clock cycle and the external port status data of the external ports at said last time point from the recorded simulated data. The controller, when controlling the FPGA to perform the second simulation verification on the digital product, is configured to: load the digital product into the FPGA, and set the external port status data of the external ports and the internal status data recorded at said last time point as initial status data of the digital product; and start the FPGA to operate to one clock cycle before the certain clock cycle that needs to be viewed, and read all the internal status data of the digital product clock by clock until the certain clock cycle that needs to be viewed is reached.
- In one embodiment of the present invention, the controller, when controlling the FPGA to perform the first simulation verification on the digital product, is further configured to, after reading the external port status data and the internal status data of the digital product, process the external port data and the internal status data of the digital product as ordered structured data with serial numbers of the clock cycles as time stamps, and save the ordered structured data in the storage device.
- In one embodiment of the present invention, the controller, when controlling the FPGA to perform the first simulation verification on the digital product, is configured to read the external port status data of all external ports of the digital product using a static probe detection method, and to read all the internal status data of the digital product using a dynamic probe detection method.
- In another aspect of the present invention, a method for viewing simulation signals of a digital product is provided, including the following steps:
- controlling, by the controller, the FPGA to perform the first simulation verification on the digital product by:
-
- performing FPGA simulation on the digital product;
- when performing the FPGA simulation, reading and recording the external port status data of all the external ports of the digital product in real time, and reading and recording all the internal status data of the digital product once at each interval; and
- after the FPGA simulation is completed, in response to determining that the data of the certain clock cycle of the digital product needs to be viewed in the backtracking manner, reading the internal status data of the digital product stored at the last time point before said certain clock cycle and the status data of the external ports at said last time point from the recorded simulated data; and
- controlling, by the controller, the FPGA to perform the second simulation verification on the digital product by loading the digital product into the FPGA, setting the external port status data of the external ports and the internal status data recorded at said last time point as initial status data of the digital product, starting the FPGA to operate to one clock cycle before the certain clock cycle that needs to be viewed, and reading all the internal status data of the digital product clock by clock until the certain clock cycle that needs to be viewed is reached.
- In one embodiment of the present invention, when the external port status data and the internal status data of the digital product are recorded, the external port data and the internal status data of the digital product are saved as ordered structured data with serial numbers of the clock cycles as time stamps.
- In one embodiment of the present embodiment, all the external port status data of the external ports of the digital product are read using a static probe detection method.
- In one embodiment of the present embodiment, all the internal status data of the digital product are read using a dynamic probe detection method.
- In one embodiment of the present invention, when all the internal status data of the digital product are read once at each interval, an interval time of each interval is identical.
- In one embodiment of the present invention, the interval time of each interval is 1 million clock cycles.
- In one embodiment of the present invention, when all the internal status data of the digital product are read once at each interval, an interval time of each interval is different.
- Compared with the related art, in the simulation signal viewing method and system for the digital product of the present invention, the status data of all external ports of the digital product are read and recorded in real time while performing FPGA simulation on the digital product, and meanwhile all internal status data of the digital product are read and recorded once at each interval; after the simulation is completed, if data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, the internal status data of the digital product stored at the last time point before said clock cycle and the external port status data at said time point are read from the recorded simulated data, and the read external status data and internal status data are written into the digital product, such that the digital product begins to operate with these status data as an initial operating status; when the digital product operates to one clock cycle before a clock cycle that needs to be viewed, all internal status data of the digital product are read clock by clock till the digital product operates to the clock cycle that needs to be viewed; and then the data in the vicinity of said clock cycle can be acquired and viewed, such that the operating time of the FPGA before said time point is shortened, thereby saving the time for viewing data.
- The following accompanying drawings of the present invention are used here as part of the present invention to understand the present invention. Embodiments of the present invention and their descriptions are shown in the accompanying drawings to explain the principles of the present invention. In the accompanying drawings:
-
FIG. 1 is a schematic structural diagram of a simulation system for a digital product according to an embodiment of the present disclosure. -
FIG. 2 is a flowchart of a method for viewing simulation signals of a digital product according to an embodiment of the present invention. - In order to make the objectives, technical solutions, and advantages of the present invention clearer, the present invention is further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
- The term “code”, as used herein, may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared, as used above, means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory. The term group, as used above, means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories.
- The term “interface”, as used herein, generally refers to a communication tool or means at a point of interaction between components for performing data communication between the components. Generally, an interface may be applicable at the level of both hardware and software, and may be uni-directional or bi-directional interface. Examples of physical hardware interface may include electrical connectors, buses, ports, cables, terminals, and other I/O devices or components. The components in communication with the interface may be, for example, multiple components or peripheral devices of a computer system.
-
FIG. 1 is a schematic structural diagram of a simulation system for a digital product according to an embodiment of the present disclosure. It should be stated that the system as shown inFIG. 1 only shows schematic components to perform the functions, and, unless otherwise indicated, the components may be implemented or modified by hardware and/or software components or a combination thereof that provide functions. - As shown in
FIG. 1 , in an embodiment of the present invention, asimulation system 100 for a digital product is provided, which comprises a field programmable gate array (FPGA) 110, acontroller 120 and astorage device 130. - The
FPGA 110 is configured to load the digital product and perform FPGA simulation verifications. Specifically, theFPGA 110 is controlled to perform multiple simulation verifications, including, in a sequential order, a first simulation verification and a second simulation verification. Details of the first simulation verification and the second simulation verification will be discussed hereinafter. - The
controller 120 is configured to control theFPGA 110 to perform the simulation verifications, to read the simulation data of theFPGA 110, and to determine whether data of a certain clock cycle of the digital product needs to be viewed. - The
storage device 130 is configured to store the simulation data of theFPGA 110. In certain embodiments, thestorage device 130 may be a local or a remote storage device. Examples of thestorage device 130 may include, without being limited thereto, hard drives, floppy disks, optical drives, non-volatile memory such as flash memory, memory cards, USB drives, or any other types of data storage devices. In certain embodiments, thesystem 100 may have more than onestorage device 130. In the case wheremultiple storage devices 130 are provided, and the simulation data may be stored in thestorage devices 130 separately. - In certain embodiments, when the
controller 120 controls theFPGA 110 to perform the first simulation verification on the digital product, thecontroller 120 may, after reading the external port status data and the internal status data of the digital product, process the external port data and the internal status data of the digital product as ordered structured data with serial numbers of the clock cycles as time stamps, and save the ordered structured data in thestorage device 130. - In one embodiment, when the
controller 120 controls theFPGA 110 to perform the first simulation verification on the digital product, thecontroller 120 may read the external port status data of all external ports of the digital product using a staticprobe detection method 150, and read all the internal status data of the digital product using a dynamicprobe detection method 160. -
FIG. 2 is a flowchart of a method for viewing simulation signals of a digital product according to an embodiment of the present invention. In certain embodiments, the method as shown inFIG. 2 may be implemented on thesimulation system 100 as shown inFIG. 1 . It should be particularly noted that, unless otherwise stated in the present invention, the steps of the method may be arranged in a different sequential order, and are thus not limited to the sequential order as shown inFIG. 2 . - As shown in
FIG. 2 , atstep 210, thecontroller 120 controls theFPGA 110 to start performing, as a first simulation verification, FPGA simulation on the digital product. Atstep 220, when the digital product is subjected to FPGA simulation, thecontroller 120 reads status data of all external ports of the digital product in real time using a staticprobe detection method 150, and meanwhile reads all internal status data of the digital product once at each interval using a dynamicprobe detection method 160. At the same time, thecontroller 120 processes the external port data and internal status data of the digital product as ordered structured data using the serial numbers of clock cycles as time stamps and saves the ordered structured data in thestorage device 130. Since the saved data includes the serial numbers of the clock cycles as the time stamps, it is convenient to query data corresponding to a clock cycle when the data is queried subsequently. - It should be noted that when the digital product is subjected to the FPGA simulation, the digital product is loaded into the
FPGA 110, and initial operating parameters are then set. When the status data of all external ports of the digital product is read, the external ports have been led out through wires by means of the staticprobe detection method 150. Therefore, the status data can be read directly in real time without any delay. When all internal status data of the digital product are read, because a read channel adopts a manner of serial reading by a scan chain in the case of using a dynamicprobe detection method 160, the speed is extremely slow, and it takes a lot of time to read all internal status data of a digital product every time. Therefore, it is not possible to read all the internal status data of the digital product in real time, and it is also impossible to read it once at a periodic interval. - In one embodiment, when all the internal status data of the digital product are read once at each interval, the interval time of each interval may be identical. For example, the interval time of each interval may be set as 1 million clock cycles. In an alternative embodiment, when all the internal status data of the digital product are read once at each interval, the interval time of each interval may be different. For example, at the beginning of the simulation, the interval time can be set larger, such as 10 million clock cycles. In the later stage of the simulation, the interval time can be set smaller, such as 1 million clock cycles.
- At
step 230, after the simulation is completed, thecontroller 120 checks the data to determine if data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner. In response to determining that data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, atstep 240, thecontroller 120 reads the internal status data of the digital product stored at the last time point before said clock cycle and the status data of the external ports at said last time point from the recorded simulated data. - Once the
controller 120 obtains the internal status data of the digital product stored at the last time point before said clock cycle and the external port status data at said last time point from the recorded simulated data, thecontroller 120 may control theFPGA 110 to start performing a second simulation verification on the digital product. Atstep 250, thecontroller 120 controls theFPGA 110 to load the digital product into theFPGA 110, the external port status data recorded at said last time point is written into an external port status data register of the digital product, and internal signals recorded at said last time point are written into an internal status data memory of the digital product. The internal status data memory of the digital product comprises a built-in register (DFF), a logic resource (LUT), and a built-in SRAM (BRAM). - Then, at
step 260, thecontroller 120 controls theFPGA 110 to start another FPGA simulation as the second simulation verification, such that the digital product begins to operate with these status data as an initial operating status; when the digital product operates to one clock cycle before a clock cycle that needs to be viewed, all internal status data of the digital product are read clock by clock by using a dynamic probe, till the digital product operates to the clock cycle that needs to be viewed, such that the operating time of theFPGA 110 before said time point is shortened, thereby saving the time for viewing data. - In summary, in the simulation signal viewing method and system for the digital product of the present invention, the status data of all external ports of the digital product are read and recorded in real time while performing FPGA simulation on the digital product, and meanwhile all internal status data of the digital product are read and recorded once at each interval; after the simulation is completed, if data of a certain clock cycle of the digital product needs to be viewed in a backtracking manner, the internal status data of the digital product stored at the last time point before said clock cycle and the external port status data at said time point are read from the recorded simulated data, and the read external status data and internal status data are written into the digital product, such that the digital product begins to operate with these status data as an initial operating status; when the digital product operates to one clock cycle before a clock cycle that needs to be viewed, all internal status data of the digital product are read clock by clock till the digital product operates to the clock cycle that needs to be viewed; and then the data in the vicinity of said clock cycle can be acquired and viewed, such that the operating time of the FPGA before said time point is shortened, thereby saving the time for viewing data.
- The foregoing descriptions are merely exemplary embodiments of the present disclosure, and are not intended to limit the present invention. Within the spirit and principles of the disclosure, any modifications, equivalent substitutions, improvements, etc., are within the protection scope of the present disclosure.
Claims (10)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243067.7 | 2019-12-06 | ||
CN201911243067.7A CN110765711A (en) | 2019-12-06 | 2019-12-06 | Method and system for checking simulation signal of digital product |
PCT/CN2020/081216 WO2021109366A1 (en) | 2019-12-06 | 2020-03-25 | Method and system for viewing simulation signals of digital product |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/081216 Continuation WO2021109366A1 (en) | 2019-12-06 | 2020-03-25 | Method and system for viewing simulation signals of digital product |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210173989A1 true US20210173989A1 (en) | 2021-06-10 |
Family
ID=76209212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/139,294 Pending US20210173989A1 (en) | 2019-12-06 | 2020-12-31 | Simulation signal viewing method and system for digital product |
Country Status (1)
Country | Link |
---|---|
US (1) | US20210173989A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850871B1 (en) * | 1999-10-18 | 2005-02-01 | Agilent Technologies, Inc. | Method and apparatus for extraction of nonlinear black-box behavioral models from embeddings of the time-domain measurements |
US10740521B1 (en) * | 2018-03-27 | 2020-08-11 | Avery Design Systems, Inc. | System and method for localized logic simulation replay using emulated values |
US10949588B1 (en) * | 2016-11-10 | 2021-03-16 | Synopsys, Inc. | High speed, low hardware footprint waveform |
-
2020
- 2020-12-31 US US17/139,294 patent/US20210173989A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850871B1 (en) * | 1999-10-18 | 2005-02-01 | Agilent Technologies, Inc. | Method and apparatus for extraction of nonlinear black-box behavioral models from embeddings of the time-domain measurements |
US10949588B1 (en) * | 2016-11-10 | 2021-03-16 | Synopsys, Inc. | High speed, low hardware footprint waveform |
US10740521B1 (en) * | 2018-03-27 | 2020-08-11 | Avery Design Systems, Inc. | System and method for localized logic simulation replay using emulated values |
Non-Patent Citations (1)
Title |
---|
Chuang, C. L., Cheng, W. H., Lu, D. J., & Liu, C. N. J. (2007). Hybrid approach to faster functional verification with full visibility. IEEE Design & Test of Computers, 24(2), 154-162. (Year: 2007) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931445B (en) | Method, emulator and storage medium for debugging logic system design | |
US7478028B2 (en) | Method for automatically searching for functional defects in a description of a circuit | |
US8788886B2 (en) | Verification of SoC scan dump and memory dump operations | |
US9495492B1 (en) | Implementing synchronous triggers for waveform capture in an FPGA prototyping system | |
US20150253387A1 (en) | Programmable interface-based validation and debug | |
US20170140082A1 (en) | Target Capture And Replay In Emulation | |
US7584456B1 (en) | Method and apparatus for debugging embedded systems having read only memory | |
GB2350706A (en) | Debugging semiconductor integrated circuit device with processor | |
WO2021109367A1 (en) | Simulation signal viewing method for digital product, and system | |
US20220147676A1 (en) | Integrated circuit simulation and design method and system thereof | |
US20070043548A1 (en) | Verifying a simulated hardware environment for a simulated device under test | |
CN114662427B (en) | Debugging method and device for logic system design | |
CN112597064B (en) | Method for simulating program, electronic device and storage medium | |
JP3380164B2 (en) | Simulation system for testing and displaying data transmission function of peripheral integrated circuit | |
CN107784185B (en) | Method and device for extracting pseudo path in gate-level netlist and terminal equipment | |
US20210173989A1 (en) | Simulation signal viewing method and system for digital product | |
US20210173994A1 (en) | Method and system for viewing simulation signals of a digital product | |
US20230057034A1 (en) | Method for viewing simulation signals of digital products and simulation system | |
WO2021109366A1 (en) | Method and system for viewing simulation signals of digital product | |
US8990624B2 (en) | Emulator verification system, emulator verification method | |
US11023357B1 (en) | Method and system for sequential equivalence checking | |
US20200349304A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
CN115827568B (en) | Method for acquiring data of logic system design, electronic equipment and storage medium | |
CN110321574B (en) | Method and device for printing waveform | |
CN117454835A (en) | Method for storing and reading waveform data, electronic device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SHENZHEN STATE MICRO TECHNOLOGY CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIN, KAIPENG;LI, YANRONG;WANG, YUCHENG;REEL/FRAME:054785/0954 Effective date: 20201209 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: SHENZHEN GUOWEIXIN TECHNOLOGY CO., LTD, CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SHENZHEN STATE MICRO TECHNOLOGY CO., LTD.;REEL/FRAME:060923/0132 Effective date: 20220817 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |