CN115544929A - Method and device for testing path time sequence delay in FPGA EDA software - Google Patents

Method and device for testing path time sequence delay in FPGA EDA software Download PDF

Info

Publication number
CN115544929A
CN115544929A CN202211516990.5A CN202211516990A CN115544929A CN 115544929 A CN115544929 A CN 115544929A CN 202211516990 A CN202211516990 A CN 202211516990A CN 115544929 A CN115544929 A CN 115544929A
Authority
CN
China
Prior art keywords
path
delay
time sequence
module
file
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.)
Granted
Application number
CN202211516990.5A
Other languages
Chinese (zh)
Other versions
CN115544929B (en
Inventor
夏燕
冯苏红
徐维涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ehiway Microelectronic Science And Technology Suzhou Co ltd
Original Assignee
Ehiway Microelectronic Science And Technology Suzhou Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ehiway Microelectronic Science And Technology Suzhou Co ltd filed Critical Ehiway Microelectronic Science And Technology Suzhou Co ltd
Priority to CN202211516990.5A priority Critical patent/CN115544929B/en
Publication of CN115544929A publication Critical patent/CN115544929A/en
Application granted granted Critical
Publication of CN115544929B publication Critical patent/CN115544929B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention provides a method and a device for testing path time delay in FPGA EDA software, which are characterized in that a time sequence model file, a chip structure file, a netlist file and a wiring file are obtained and analyzed to calculate the logic delay and the path delay of each time sequence path in the time sequence model file, a time sequence report file is obtained and analyzed to find out the logic delay and the path delay of each time sequence path in the time sequence report file, and finally the logic delay and the path delay calculated by each time sequence path are compared with the logic delay and the path delay of the corresponding time sequence path obtained from a time sequence report to obtain a comparison result and output the comparison result. The invention can quickly verify which timing sequence path is wrong and discover bugs in time, thereby improving the testing efficiency of the FPGA EDA software.

Description

Method and device for testing path time sequence delay in FPGA EDA software
Technical Field
The invention belongs to the field of software testing of a programmable logic device FPGA EDA, and particularly relates to a method and a device for testing path time sequence delay in FPGA EDA software.
Background
The FPGA EDA software is an automatic tool for designing electronic circuits, and has the main functions of converting circuit designs into netlist files, and then performing a series of flow processes such as packaging, layout, wiring, code generation and the like on the netlist files. After wiring, each timing path has logic delay and path delay, the timing paths are usually very many, EDA software processes the logic delay to each port of each module and the path delay passed by each mux, and a tester needs to check whether the delay of each timing path is calculated correctly through a certain rule and a timing model one by one, which is very expensive. If the test method for automatically verifying the time sequence delay is used, the test efficiency of testers can be greatly improved, and the test time can be effectively shortened.
Disclosure of Invention
The invention aims to solve the technical problem of how to test time sequence delay by using a software test technology, and provides a method and a device for testing path time sequence delay in FPGA EDA software.
In order to solve the technical problems, the technical scheme adopted by the invention is as follows:
a method for testing path time sequence delay in FPGA EDA software comprises the following steps:
step 1: acquiring and analyzing a time sequence model file, a chip structure file, a netlist file and a wiring file, and calculating the logic delay and the path delay of each time sequence path in the time sequence model file according to the relationship among modules in each file;
step 2: acquiring and analyzing a time sequence report file, and finding out the logic delay and the path delay of each time sequence path in the time sequence report file;
and step 3: and (3) comparing the logic delay and the path delay calculated by each time sequence path in the step (1) with the logic delay and the path delay of the corresponding time sequence path obtained from the time sequence report in the step (2) to obtain a comparison result and outputting the comparison result.
Further, the method for calculating the logic delay and the path delay of each timing path in the timing model file in step 1 is as follows:
step 1.1: analyzing the time sequence model file to obtain each module, channel delay corresponding to each module, delay, establishing time and holding time of each module port, and generating a time _ mode _ fact of a time sequence model dictionary;
step 1.2: analyzing the chip structure file to obtain coordinate positions of all chips and module names corresponding to each coordinate position, and generating a table _ mux _ dit for storing a module position dictionary;
step 1.3: analyzing the netlist file to obtain all module cells in the netlist, all ports under each module cell and signals passing through all the ports, and generating a module port signal dictionary cell _ fact;
step 1.4: analyzing the wiring file to obtain a source point, a path and a sink point which are passed by each signal, and generating a signal dictionary route _ dit, wherein each source point, path and sink point comprise a coordinate position and a port name;
step 1.5: calculating logic delay: obtaining a time sequence path list in a time sequence report, finding out a path node of a logic delay type, determining a module cell and a port of a first time sequence path node passed by the time sequence path as an input port dstPort1 in a dictionary time _ mode _ dit, then viewing an output port of the module along the time sequence path as a startPort1, finding out the delay of the module port from a module cell, the ports dstPort1 and the startPort1 corresponding to the time sequence model dictionary time _ mode _ dit, and repeating the steps to find out all logic delays in the time sequence path for accumulation;
step 1.6: calculating path delay: finding out the path node of the path delay type in the time sequence path list, obtaining the module cell, the port and the module position location passed by the time sequence path from the path node of the first path delay type, obtaining the signal name passed by the port from the module cell and the port in the module port signal dictionary cell _ dit according to the module cell and the port, wherein the module cell and the port are signal starting points source, and finding out the module name cell, the port and the position location of the next path node of the path delay type from the time sequence path list, the path node is an end point sink, all channels chan passed by the path are found out from a signal dictionary route _ fact according to the signal name, the start point source and the end point sink, all position locations passed by the path are found out according to the channels chan, a module name module _ name is obtained from a module position dictionary table _ mux _ fact according to the position locations, the time delay corresponding to the corresponding module _ name is found out from a time sequence model dictionary time _ module _ fact according to the module name module _ name and is used as the path delay, and all path delays in the time sequence path are found out in sequence and accumulated.
Further, the method for finding out the logic delay and the path delay of each timing path in the timing report file in step 2 is as follows:
acquiring a time sequence report file to obtain all time sequence paths, and storing all the time sequence paths in a time sequence path dictionary path _ fact; the time sequence path dictionary path _ dct includes all time sequence paths under various time sequence path types, all module cells, ports and delays passed by the time sequence path are listed in each time sequence path, delays of the same delay type in the time sequence path are added to obtain path delay and logic delay, and the path delay and the logic delay are added to obtain total delay.
Further, the time sequence path dictionary path _ fact further includes a delay of a start clock, a data delay and a delay of an end clock, where the data delay includes a logic delay and a path delay.
Further, the sequential path types include a simultaneous clock setup path, a simultaneous clock hold path, a cross-clock setup path, a cross-clock hold path, an asynchronous setup path, and an asynchronous hold path.
Further, the calculation of the end point clock delay is to calculate the delay from the clock to the end point register, find out the corresponding module name and the corresponding setup time or hold time of the port from the time _ mode _ dit of the time sequence model dictionary according to the end point module name and the port name of the register, and sum up to obtain the end point clock delay.
Further, calculating the start clock delay is to calculate the delay from the clock to the start register, find out the corresponding module name and the delay corresponding to the port from the time _ mode _ fact of the time sequence model dictionary according to the start module name and the port name of the register, and sum up to obtain the start clock delay.
Further, when calculating the logic delay of the sequential path, if the path is a setup type path, the delay of t _ su needs to be subtracted from the time of all logic delays, and if the path is a hold type path, the delay of t _ h needs to be added to the time of all logic delays.
The invention also provides a device for testing the path time sequence delay in the FPGA EDA software, which comprises the following modules:
and an actual calculation delay module: the system comprises a time sequence model file, a chip structure file, a netlist file and a wiring file, wherein the time sequence model file, the chip structure file, the netlist file and the wiring file are obtained and analyzed, and the logic delay and the path delay of each time sequence path in the time sequence model file are calculated according to the relation among modules in each file;
the time sequence report delay calculation module: the time sequence report file is used for acquiring and analyzing the time sequence report file, and the logic delay and the path delay of each time sequence path in the time sequence report file are found out;
a judging module: and the logic delay and the path delay calculated by each time sequence path in the actual calculation delay module are compared with the logic delay and the path delay of the corresponding time sequence path obtained from the time sequence report in the time sequence report delay calculation module to obtain a comparison result and output the comparison result.
By adopting the technical scheme, the invention has the following beneficial effects:
according to the method and the device for testing the path time sequence delay in the FPGA EDA software, provided by the invention, the position of an error time sequence path is determined by comparing the actual delay in the time sequence report with the delay calculated by the node passed by each path, so that the method and the device are convenient and quick. What is important for the implementation of the present invention is that when the delay is calculated, the relationship between the module ports is determined from a plurality of files, and the expected values of all delays are calculated according to the delays analyzed from the files and compared with the actual delays in the timing report. The problem that due to the fact that each circuit can have hundreds of time sequence paths and each time sequence path can pass through a plurality of cells, logic delay and path delay in each time sequence path are verified manually by a tester, and workload is very large is solved.
Drawings
FIG. 1 is a flow chart of the system of the present invention;
FIG. 2 is a diagram of a testing apparatus according to the present invention.
Detailed Description
The technical solutions of the present invention will be described clearly and completely with reference to the accompanying drawings, and it should be understood that the described embodiments are some, but not all embodiments of the present invention. All other embodiments, which can be obtained by a person skilled in the art without making any creative effort based on the embodiments in the present invention, belong to the protection scope of the present invention.
Fig. 1 shows a specific embodiment of the method for testing path timing delay in FPGA EDA software according to the present invention, which includes the following steps:
step 1: and acquiring and analyzing the time sequence model file, the chip structure file, the netlist file and the wiring file, and calculating the logic delay and the path delay of each time sequence path in the time sequence model file according to the relationship among the modules in the files.
In this embodiment, the method for calculating the logic delay and the path delay of each time sequence path in the time sequence model file includes:
step 1.1: and analyzing the time sequence model file to obtain each module, the channel delay corresponding to each module, the delay, the establishing time and the holding time of each module port, and generating a time _ mode _ dit of the time sequence model dictionary.
The time sequence model file is a file which is organized by hardware through actual time sequence delay, wherein the time delay to each module port is included, the establishing time (which is the time that data are stable and unchangeable before the rising edge of a clock signal of a trigger arrives), the maintaining time (which is the time that data are stable and unchangeable after the rising edge of the clock signal of the trigger arrives) and the delay to each module are stored in the form of an xml file, all subsequent delay calculation in the invention can be calculated through the file, the xml file is analyzed by introducing a parse module in python, and a time _ mode _ ditct of a time sequence model dictionary is generated after analysis, and the dictionary is as follows:
{CELL:[{(dstPort1, startPort1): [p_delay], (dstPort2, startPort2): [p_delay] , (dstPort3, startPort3): [p_delay]}, {ff_Port: {port1: {t_su: delay, t_h: delay}, port2: {t_su: delay, t_h: delay}, port3: {t_su: delay, t_h: delay}}}], Ram_Block:[{(dstPort1, startPort1): [p_delay], (dstPort2, startPort2): [p_delay] , (dstPort3, startPort3): [p_delay]}, {ff_Port: {port1: {t_su: delay, t_h: delay}, port2: {t_su: delay, t_h: delay}, port3: {t_su: delay, t_h: delay}}}], IO:[{(dstPort1, startPort1): [p_delay], (dstPort2, startPort2): [p_delay] , (dstPort3, startPort3): [p_delay]}, {ff_Port: {port1: {t_su: delay, t_h: delay}, port2: {t_su: delay, t_h: delay}, port3: {t_su: delay, t_h: delay}}}], PLL:[{(dstPort1, startPort1): [p_delay], (dstPort2, startPort2): [p_delay] , (dstPort3, startPort3): [p_delay]}, {ff_Port: {port1: {t_su: delay, t_h: delay}, port2: {t_su: delay, t_h: delay}, port3: {t_su: delay, t_h: delay}}}], MUX: {module_name1: m_delay, module_name2: m_delay, module_name3: m_delay }}。
wherein CELL, ram _ Block, IO, PLL represent module names in the netlist file, dstPort1 represents an input port name in a timing path node, startPort1 represents an output port name in a timing path node, and p _ delay represents the delay from dstPort1 to startPort 1.
In the dictionary, ff _ Port represents an incoming Port, port1 represents a Port from ff _ Port, t _ su is establishment time, t _ h is retention time, and the delays belong to logic delay.
In the dictionary, the delay represented in the MUX is the path delay, the module _ name1 represents the module name, the m _ delay represents the channel delay of the module, and the channel delay belongs to the path delay.
Step 1.2: analyzing the chip structure file to obtain coordinate positions of all chips and module names corresponding to each coordinate position, and generating a module position dictionary, namely, cable _ mux _ dit;
the chip structure file comprises coordinate positions of all chips and module names, a table _ mux _ dit dictionary is generated by analyzing the file, the module name corresponding to each coordinate path is stored, and the dictionary is as follows:
{ loc1: module _ name, loc2: module _ name, loc3: module _ name }, with position as key and module name as attribute value.
Step 1.3: and analyzing the netlist file to obtain all cells in the netlist, all ports under each cell and signals passing through the ports, and generating a module port signal dictionary cell _ dit.
Because the netlist includes all cells, ports and signals, when the netlist file is analyzed, the cell _ name is used as a key, and the port and the signal under the cell are used as value values to be stored in the module port signal dictionary cell _ dit, as follows:
{cell_name1: {port1: [signal…], port2: [signal…], port3: [signal…]}, cell_name2: {port1: [signal…], port2: [signal…], port3: [signal…]}, cell_name2: {port1: [signal…], port2: [signal…], port3: [signal…]}}。
step 1.4: analyzing the wiring file to obtain a source point, a path and a sink point which are passed by each signal, and generating a signal dictionary route _ dit, wherein each source point, each path and each sink point comprise a coordinate position and a port name;
wherein, the routing file stores the signal name as key, the source point, the path, and the sink point passed by the signal as value into the signal dictionary route _ fact, wherein each signal may have multiple sink points, and each path is stored into the list by way of the metaancestor form (one metaancestor is indicated in each small bracket in the dictionary), as follows:
{signal1: [(source, chan…,sink), (source, chan…,sink)…], signal2: [(source, chan…,sink), (source, chan…,sink)…], signal3: [(source, chan…,sink), (source, chan…,sink)…]}。
each source, chan, and sink that passes through includes a coordinate location and a port name, and is stored in a list form: [ loc, port ], loc denotes a coordinate position, and port denotes a port name.
Through the analysis of the sequence model file, the chip structure file, the netlist file and the wiring file, the association with the netlist file can be established through the signal name, the starting module name and the port name in the wiring file, the module corresponding to the channel chan is found from a module position dictionary table _ mux _ dit of the chip structure file through the position of the channel chan in the signal, and the delay among module ports and the module channel delay are further found from a time _ mode _ dit of the sequence model dictionary. The correlation between these files is found, so that the calculation of the logic delay and the path delay is possible, and the logic delay and the path delay can be compared with the actual delay in the timing report.
For the timing report, a timing report pb file is generated by a timing path acquisition, and the data of the pb file can be opened through a sqlite database, so by introducing a sqlite3 library in python, the pb file is opened, and all timing paths are acquired, including a simultaneous setup path, a simultaneous hold path, a cross-clock setup path, a cross-clock hold path, an asynchronous setup path, and an asynchronous hold path, and all generated paths are saved in a path _ fact dictionary, which is as follows:
{path_type1: [path1, path2, path3…], path_type2: [path1, path2, path3…], path_type3: [path1, path2, path3…]}。
the path _ type represents the type of the timing path, including a same-clock setup path, a simultaneous clock hold path, a cross-clock setup path, a cross-clock hold path, an asynchronous setup path, and an asynchronous hold path, and the path1, the path2, and the path3 represent all paths under the type, where the path1, the path2, and the path3 are a list type that lists all module cells, ports, and delays that the timing path passes through, and the list is as follows:
[(delay_type, delay, total_delay, cell, port, location), (delay_type, delay, total_delay, cell, port, location), (delay_type, delay, total_delay, cell, port, location), (delay_type, delay, total_delay, cell, port, location)]。
each primitive (tuple in python, indicated by a small bracket) in the list represents a path, where delay _ type represents a delay type, delay _ type represents a logic delay when being 0, delay _ type represents a path delay when being 1, delay is a delay of a corresponding delay type calculated in a timing report, total _ delay is a sum of all delays in the timing path, and cell refers to a cell name of the path (sometimes, a cell name in a path is not consistent with a cell name obtained in a netlist file, it is necessary to convert the cell name in a path into a cell name in a netlist file), port refers to a port name in a cell of the path, location represents a position of the cell after packing layout, delays of the same delay type in the timing path are added to obtain a path delay and a logic delay, and the path delay and the logic delay are added to obtain a total delay.
The time delays of all time sequence paths are acquired by analyzing the time sequence report and are stored as a time sequence report delay dictionary rpt _ dit, the dictionary rpt _ dit comprises the delay of a starting clock, the delay of data and the delay of an end clock, the delay of data comprises logic delay and path delay, and the dictionary is as follows:
{ 'src _ clk', [ logic _ delay, net _ delay, total _ delay ], 'data', logic _ delay, net _ delay, total _ delay ], 'dest _ clk', logic _ delay, net _ delay, total _ delay }. 'src _ clk' represents a delay of a start clock, 'data' represents a data delay, 'dest _ clk' represents a delay of an end clock. logic _ delay represents the logical delay, net _ delay represents the path delay, and total _ delay represents the total delay.
Step 1.5: calculating logic delay: the method comprises the steps of obtaining a time sequence path list in a time sequence report, finding out path nodes which are of logic delay types in the time sequence path list, determining a module cell and a port of a first time sequence path node through which the time sequence path passes as startPort1 in a dictionary time _ mode _ dit, checking a port output by the module along the time sequence path as dstPort1, finding out delay of the module port from the module cell, the port dstPort1 and the startPort1 which correspond to the time sequence model dictionary time _ mode _ dit, and accumulating by the method of finding out all logic delays in the time sequence path.
Specifically, firstly, whether a path in a timing report is empty is judged, if the path is empty, it indicates that the project has no timing path, if the path is not empty, a calculation of a logic delay is performed, during the calculation, a path node with delay _ type of 0 representing a logic delay type is found by obtaining a path1 list, a module name (CELL, ram _ Block, IO, PLL) of the first path node and a start port startPort1 are determined by finding a CELL and a port through which the timing path passes, a port output by the module is found along the timing path as an end port dstPort1, a logic delay [ p _ delay ] corresponding to the module name (dstPort 1, startPort 1) is found through time _ mode _ dct, and delays of all logic delay types of the timing path are found by following paths in sequence and accumulated.
In this embodiment, when the end-point clock delay is calculated, the delay from the clock to the end-point register is calculated, ff _ Port in the dictionary needs to be found according to the time _ mode _ dit of the time sequence model dictionary, corresponding module names and corresponding delays of the ports are found according to the end-point module names and the Port names of the registers, and the start-point clock delay is obtained after summation.
In this embodiment, when calculating the logic delay of the sequential path, if the sequential path is a setup type path, the delay of t _ su needs to be subtracted from the time of all the logic delays, and if the sequential path is a hold type path, the delay of t _ h needs to be added to the time of all the logic delays.
Step 1.6, calculating path delay: finding out path nodes of path delay types in a time sequence path list, obtaining a module cell, a port and a module position location which a time sequence path passes through from a path node of a first path delay type, obtaining a signal name which the port passes through from a module port signal dictionary cell _ fact according to the module cell and the port, wherein the module cell and the port are signal initial points, then finding out a module name cell, a port and a position location of a next path node of the path delay types from the time sequence path list, wherein the path node is an end point sink, finding out all channel paths which the path passes through from a signal dictionary route _ fact according to the signal name, the initial point source and the end point sink, finding out all position locations which the path passes through according to the channel paths, finding out all position locations which the path passes through from a module position dictionary table _ MUX _ cause _ fact according to the position location, and finding out corresponding time delay module paths from a module _ cause _ time _ cause _ module _ cause _ time delay corresponding to the time sequence path.
Through the logic delay and the path delay, an actual calculation delay dictionary calc _ delay is generated, which includes all the logic delays and path delays calculated by the timing model and the chip structure, and the dictionary is as follows:
{‘src_clk’: [logic_delay, net_delay, total_delay], ‘data’: [logic_delay, net_delay, total_delay], ‘dest_clk’: [logic_delay, net_delay, total_delay]}。
and finally, performing time delay comparison and generating a result file: comparing the time sequence report time delay dictionary rpt _ dit with the actual calculation time delay dictionary calc _ delay, comparing the logic time delay logic _ delay, the path time delay net _ delay and the total time delay total _ delay of keys with the same time delay type, finally generating a comparison result file, printing the error path, the time delay type and the time delay in the time sequence report if the error occurs, and calculating the expected time delay, thereby being clear of the error.
If the results are inconsistent, the results are generated as shown in the following Table-1:
path id Starting cell End point cell Logical delays in reporting Path delay in reporting Total latency in reporting Calculated logical delay Calculated path delay Calculated total delay
1 Cell1_1 Cell1_2 200 300 500 200 400 600
2 Cell2_1 Cell2_2 523 400 923 325 923 1248
3 Cell3_1 Cell3_2 206 536 752 206 536 742
4 Cell4_1 Cell4_2 159 248 407 260 613 873
Fig. 2 shows a specific embodiment of a test apparatus diagram for path timing delay in FPGA EDA software according to the present invention, including:
and an actual calculation delay module: the system comprises a time sequence model file, a chip structure file, a netlist file and a wiring file, wherein the time sequence model file, the chip structure file, the netlist file and the wiring file are obtained and analyzed, and the logic delay and the path delay of each time sequence path in the time sequence model file are calculated according to the relation among modules in each file;
the time sequence report delay calculation module: the time sequence report file is used for acquiring and analyzing the time sequence report file, and the logic delay and the path delay of each time sequence path in the time sequence report file are found out;
a judging module: and the logic delay and the path delay calculated by each time sequence path in the actual calculation delay module are compared with the logic delay and the path delay of the corresponding time sequence path obtained from the time sequence report in the time sequence report delay calculation module to obtain a comparison result and output the comparison result.
According to the method and the device for testing the time sequence delay of each path in the FPGA EDA software, provided by the invention, the time sequence report delay in the time sequence report is compared with the actual calculation delay calculated through the nodes passed by each path, so that the position of the wrong time sequence path is determined. In addition, the invention can also carry out batch circuit verification, has strong expansibility, can be added into the automatic execution of the interface, and can call the verification script of the invention to carry out the batch verification of the time sequence after the interface is executed and the box layout and wiring are finished.
Finally, it should be noted that: the above embodiments are only used to illustrate the technical solution of the present invention, and not to limit the same; while the invention has been described in detail and with reference to the foregoing embodiments, it will be understood by those skilled in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some or all of the technical features may be equivalently replaced; and the modifications or the substitutions do not make the essence of the corresponding technical solutions depart from the scope of the technical solutions of the embodiments of the present invention.

Claims (9)

1. A method for testing path time sequence delay in FPGA EDA software is characterized by comprising the following steps:
step 1: acquiring and analyzing a time sequence model file, a chip structure file, a netlist file and a wiring file, and calculating the logic delay and the path delay of each time sequence path in the time sequence model file according to the relationship among modules in the files;
and 2, step: acquiring and analyzing a time sequence report file, and finding out the logic delay and the path delay of each time sequence path in the time sequence report file;
and 3, step 3: and (3) comparing the logic delay and the path delay calculated by each time sequence path in the step (1) with the logic delay and the path delay of the corresponding time sequence path obtained from the time sequence report in the step (2) to obtain a comparison result and output the comparison result.
2. The testing method according to claim 1, wherein the method for calculating the logic delay and the path delay of each timing path in the timing model file in step 1 is as follows:
step 1.1: analyzing the time sequence model file to obtain each module, channel delay corresponding to each module, delay, establishing time and holding time of each module port, and generating a time _ mode _ fact of a time sequence model dictionary;
step 1.2: analyzing the chip structure file to obtain coordinate positions of all chips and module names corresponding to each coordinate position, and generating a table _ mux _ dit for storing a module position dictionary;
step 1.3: analyzing the netlist file to obtain all module cells in the netlist, all ports under each module cell and signals passing through all the ports, and generating a module port signal dictionary cell _ fact;
step 1.4: analyzing the wiring file to obtain a source point, a path and a sink point which are passed by each signal, and generating a signal dictionary route _ dit, wherein each source point, path and sink point comprise a coordinate position and a port name;
step 1.5: calculating logic delay: obtaining a time sequence path list in a time sequence report, finding out a path node which is of a logic delay type in the time sequence path list, determining that a module cell and a port of a first time sequence path node which the time sequence path passes through are used as an input port dstPort1 in a dictionary time _ mode _ direct, then viewing an output port of the module along the time sequence path to be used as a startPort1, finding out the delay of the module port from the corresponding module cell and the ports dstPort1 and startPort1 in the time sequence model dictionary time _ mode _ direct, and repeating the steps of finding out all logic delays in the time sequence path and accumulating;
step 1.6: calculating path delay: finding out a path node which is a path delay type in the time sequence path list, obtaining a module cell, a port and a module position location which are passed by the time sequence path from the path node of the first path delay type, obtaining a signal name which is passed by the port from a module port signal dictionary cell _ dit according to the module cell and the port, wherein the module cell and the port are signal starting points source, and then finding out the module name cell, the port and the position location of the next path node of the path delay type from the time sequence path list, the path node is an end point sink, all channels chan passed by the path are found out from a signal dictionary route _ fact according to the signal name, the start point source and the end point sink, all position locations passed by the path are found out according to the channels chan, a module name module _ name is obtained from a module position dictionary table _ mux _ fact according to the position locations, the time delay corresponding to the corresponding module _ name is found out from a time sequence model dictionary time _ module _ fact according to the module name module _ name and is used as the path delay, and all path delays in the time sequence path are found out in sequence and accumulated.
3. The test method according to claim 2, wherein the method for finding out the logic delay and the path delay of each timing path in the timing report file in step 2 is:
acquiring a time sequence report file to obtain all time sequence paths, and storing all the time sequence paths in a time sequence path dictionary path _ dit; the time sequence path dictionary path _ dct includes all time sequence paths under various time sequence path types, all module cells, ports and delays passed by the time sequence path are listed in each time sequence path, delays of the same delay type in the time sequence path are added to obtain path delay and logic delay, and the path delay and the logic delay are added to obtain total delay.
4. The test method according to claim 3, wherein the time-series path dictionary path _ dit further includes a delay of a start clock, a data delay, and a delay of an end clock, the data delay including a logic delay and a path delay.
5. The test method of claim 3, wherein the timing path types include a simultaneous clock setup path, a simultaneous clock hold path, a cross-clock setup path, a cross-clock hold path, an asynchronous setup path, and an asynchronous hold path.
6. The test method of claim 4, wherein the step of calculating the end point clock delay is calculating the delay from the clock to the end point register, and finding out the corresponding setup time or hold time corresponding to the module name and port from the time _ mode _ dit of the timing model dictionary according to the end point module name and port name of the register, and summing the setup time or hold time to obtain the end point clock delay.
7. The test method of claim 4, wherein calculating the start clock delay is calculating the delay from the clock to the start register, finding out the corresponding module name and the corresponding delay of the port from the time model dictionary time _ mode _ fact according to the start module name and the port name of the register, and summing to obtain the start clock delay.
8. The test method as claimed in claim 6, wherein when calculating the sequential path logic delay, if the sequential path logic delay is a setup type path, the time of all logic delays needs to be subtracted by the delay of t _ su, and if the sequential path logic delay is a hold type path, the time of all logic delays needs to be added by the delay of t _ h.
9. The device for testing the path time sequence delay in the FPGA EDA software is characterized by comprising the following modules:
and an actual calculation delay module: the system comprises a time sequence model file, a chip structure file, a netlist file and a wiring file, wherein the time sequence model file, the chip structure file, the netlist file and the wiring file are obtained and analyzed, and the logic delay and the path delay of each time sequence path in the time sequence model file are calculated according to the relation among modules in each file;
the time sequence report delay calculation module: the time sequence report file is used for acquiring and analyzing the time sequence report file, and finding out the logic delay and the path delay of each time sequence path in the time sequence report file;
a judging module: and the logic delay and the path delay calculated by each time sequence path in the actual calculation delay module are compared with the logic delay and the path delay of the corresponding time sequence path obtained from the time sequence report in the time sequence report delay calculation module to obtain a comparison result and output the comparison result.
CN202211516990.5A 2022-11-30 2022-11-30 Method and device for testing path time sequence delay in FPGA EDA software Active CN115544929B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211516990.5A CN115544929B (en) 2022-11-30 2022-11-30 Method and device for testing path time sequence delay in FPGA EDA software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211516990.5A CN115544929B (en) 2022-11-30 2022-11-30 Method and device for testing path time sequence delay in FPGA EDA software

Publications (2)

Publication Number Publication Date
CN115544929A true CN115544929A (en) 2022-12-30
CN115544929B CN115544929B (en) 2023-03-17

Family

ID=84722630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211516990.5A Active CN115544929B (en) 2022-11-30 2022-11-30 Method and device for testing path time sequence delay in FPGA EDA software

Country Status (1)

Country Link
CN (1) CN115544929B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187270A (en) * 2023-05-04 2023-05-30 中科亿海微电子科技(苏州)有限公司 Method and device for testing identifiers in automatic verification schematic diagram
CN116805143A (en) * 2023-08-24 2023-09-26 湖南师范大学 Digital circuit time sequence statistics method, device, equipment and storage medium
CN117150994A (en) * 2023-10-30 2023-12-01 北京云枢创新软件技术有限公司 Analysis method of signal assignment delay, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464921A (en) * 2008-12-31 2009-06-24 北京天碁科技有限公司 Method and system for generating test vector of chip technology regulation
CN104698370A (en) * 2013-12-10 2015-06-10 展讯通信(上海)有限公司 Method and device for testing timing sequence of circuit in chip, and RTL (register transfer level) simulation equipment
CN106096171A (en) * 2016-06-22 2016-11-09 深圳市紫光同创电子有限公司 Asynchronous circuit sequential inspection method based on static analysis
CN108073771A (en) * 2017-12-25 2018-05-25 中国电子科技集团公司第四十七研究所 FPGA static timing analysis algorithms
CN114742001A (en) * 2022-03-16 2022-07-12 南京邮电大学 System static time sequence analysis method based on multiple FPGAs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464921A (en) * 2008-12-31 2009-06-24 北京天碁科技有限公司 Method and system for generating test vector of chip technology regulation
CN104698370A (en) * 2013-12-10 2015-06-10 展讯通信(上海)有限公司 Method and device for testing timing sequence of circuit in chip, and RTL (register transfer level) simulation equipment
CN106096171A (en) * 2016-06-22 2016-11-09 深圳市紫光同创电子有限公司 Asynchronous circuit sequential inspection method based on static analysis
CN108073771A (en) * 2017-12-25 2018-05-25 中国电子科技集团公司第四十七研究所 FPGA static timing analysis algorithms
CN114742001A (en) * 2022-03-16 2022-07-12 南京邮电大学 System static time sequence analysis method based on multiple FPGAs

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187270A (en) * 2023-05-04 2023-05-30 中科亿海微电子科技(苏州)有限公司 Method and device for testing identifiers in automatic verification schematic diagram
CN116187270B (en) * 2023-05-04 2023-08-22 中科亿海微电子科技(苏州)有限公司 Method and device for testing identifiers in automatic verification schematic diagram
CN116805143A (en) * 2023-08-24 2023-09-26 湖南师范大学 Digital circuit time sequence statistics method, device, equipment and storage medium
CN117150994A (en) * 2023-10-30 2023-12-01 北京云枢创新软件技术有限公司 Analysis method of signal assignment delay, electronic equipment and storage medium
CN117150994B (en) * 2023-10-30 2024-01-23 北京云枢创新软件技术有限公司 Analysis method of signal assignment delay, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN115544929B (en) 2023-03-17

Similar Documents

Publication Publication Date Title
CN115544929B (en) Method and device for testing path time sequence delay in FPGA EDA software
US7797658B2 (en) Multithreaded static timing analysis
US20070101216A1 (en) Method to locate logic errors and defects in digital circuits
CN111965530A (en) JTAG-based FPGA chip automatic test method
CN112417798B (en) Time sequence testing method and device, electronic equipment and storage medium
CN115238619B (en) Post-module simulation method and system for digital chip
CN113536718B (en) Method and device for verifying correctness of gate-level simulation netlist file
CN116956801B (en) Chip verification method, device, computer equipment and storage medium
CN117454811A (en) Verification method and device for design to be tested
CN115684894B (en) Test method and test platform for chip testability design
CN116227398A (en) Method and system for automatically generating IP core test stimulus
CN116562227A (en) Chip signal connectivity verification method and device
CN117350208A (en) Method and apparatus for checking performance of sequential logic element
CN100389425C (en) Method and equipment for implementing verification of digital-analog mixed type IC
US10268786B2 (en) System and method for capturing transaction specific stage-wise log data
CN116187270B (en) Method and device for testing identifiers in automatic verification schematic diagram
US7689399B1 (en) Automatic extraction of design properties
US10769332B2 (en) Automatic simulation failures analysis flow for functional verification
CN106707144B (en) Reverse analysis method applied to antifuse Field Programmable Gate Array (FPGA) test vector
CN116256620B (en) Chiplet integrated chip detection method and device, electronic equipment and storage medium
Anand et al. Bounded Proof Sign-off with Formal Coverage
US20240126968A1 (en) Automatic blocking of unknown signals and grading of test point sites using untestable fault estimates to improve ic testability
CN115048248A (en) Failure positioning method applied to FPGA
Rajendran et al. Topological Ordering Signal Selection Technique for Internet of Things based on Combinational Gate for Visibility Enhancement
JPH1152023A (en) Method for estimating faulty location of lsi and storage medium storing program for estimating faulty location of lsi

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant