ITMI20002236A1 - PROCEDURE AND DEVICE FOR THE ERROR ANALYSIS OF DIGITAL LOGIC CIRCUITS - Google Patents

PROCEDURE AND DEVICE FOR THE ERROR ANALYSIS OF DIGITAL LOGIC CIRCUITS Download PDF

Info

Publication number
ITMI20002236A1
ITMI20002236A1 ITMI20002236A ITMI20002236A1 IT MI20002236 A1 ITMI20002236 A1 IT MI20002236A1 IT MI20002236 A ITMI20002236 A IT MI20002236A IT MI20002236 A1 ITMI20002236 A1 IT MI20002236A1
Authority
IT
Italy
Prior art keywords
circuit
states
register
shadow
logic circuit
Prior art date
Application number
Other languages
Italian (it)
Inventor
Peter Schwarz
Christoph Fritsch
Volker Lueck
Juergen Haufe
Original Assignee
Bosch Gmbh Robert
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 Bosch Gmbh Robert filed Critical Bosch Gmbh Robert
Publication of ITMI20002236A1 publication Critical patent/ITMI20002236A1/en
Application granted granted Critical
Publication of IT1319009B1 publication Critical patent/IT1319009B1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

D E S C R I Z I O N E DESCRIPTION

La presente invenzione si riferisce ad un procedimento e ad un dispositivo per l'analisi degli errori di circuiti logici digitali, in particolare a procedimenti e dispositivi utilizzanti una ricerca degli errori Hardware (Hardware Debugging), per consentire in tempo reale un rilevamento ed una analisi degli errori di un circuito logico digitale. The present invention relates to a method and a device for analyzing errors in digital logic circuits, in particular to methods and devices using a Hardware Debugging, to allow detection and analysis in real time. of the errors of a digital logic circuit.

Nel campo della tecnica è nota una serie di procedimenti per l'Hardware Debugging, che si basano su differenti principi risolutivi. In un noto procedimento si osserva il comportamento Hardware di un circuito integrato utilizzando analizzatori logici od oscilloscopi collegati con spine di connessione reali del circuito integrato. Al riguardo le spine di connessione sono spine di connessione inutilizzate, che unicamente per scopi di analisi degli errori sono collegate con nodi interni del circuito integrato. In seguito al numero limitato di spine di connessione, non utilizzate come spine di connessione utili, con questa tecnica è possibile osservare soltanto un piccolo gruppo di segnali provenienti da nodi interni. Per aumentare il numero delle sonde possibili è noto il fatto di multiplare le spine di connessione o di impiegare sonde virtuali, laddove tuttavia ciò impedisce in maniera usuale una diagnosi degli errori in tempo reale. In the field of the art, a series of procedures for Hardware Debugging are known, which are based on different solution principles. In a known method the hardware behavior of an integrated circuit is observed using logic analyzers or oscilloscopes connected with real connection plugs of the integrated circuit. In this connection, the connection plugs are unused connection plugs, which are connected with internal nodes of the integrated circuit solely for the purpose of error analysis. Due to the limited number of connection plugs, which are not used as useful connection plugs, only a small group of signals from internal nodes can be observed with this technique. In order to increase the number of possible probes, it is known to multiply the connection pins or to use virtual probes, where however this usually prevents a diagnosis of errors in real time.

Altri principi risolutivi utilizzando un intorno collegante l'Hardware con un Software al posto dell'analizzatore logico oppure dell'oscilloscopio, per osservare il DUT (DUT = Device undere Test = Elemento sotto esame). L'intorno Software, che si svolge su un computer, tramite un interfaccia di computer è collegato con il DUT, laddove in seguito all'interfaccia del computer piuttosto lento è impossibile usualmente un'analisi degli errori in tempo reale. Other resolutive principles using a neighborhood connecting the Hardware with a Software instead of the logic analyzer or the oscilloscope, to observe the DUT (DUT = Device undere Test = Element under examination). The surrounding software, which takes place on a computer, is connected via a computer interface with the DUT, where due to the rather slow computer interface it is usually impossible to analyze errors in real time.

Un'ulteriore noto procedimento è un'analisi degli errori utilizzando speciali celle di entrata/uscita di un ASIC (Boundary Scan Cells), con cui possono essere equipaggiati FPGAs (FPGA = Field programmable Gate Array = circuito logico programmabile dall'utente). Su queste celle è possibile accedere in maniera usuale mediante un protocollo JTAG, laddove tuttavia non è possibile accedere a segnali su nodi interni del circuito. A further known method is an error analysis using special input / output cells of an ASIC (Boundary Scan Cells), with which FPGAs (FPGA = Field programmable Gate Array = user programmable logic circuit) can be equipped. These cells can be accessed in the usual way by means of a JTAG protocol, where however it is not possible to access signals on internal nodes of the circuit.

Un'ulteriore classico procedimento di prova è l'impiego di un cosiddetto ramo Scan (Scan Path), che consente un'impostazione ed una lettura in uscita di tutti i registri, che sono interconnessi internamente al circuito in un ramo seriale. Anche qui si può impiegare il protocollo JTAG, laddove con l'accesso JTAG seriale non è possibile realizzare un campionamento di questi registri in tempo reale, senza che per questo si debba arrestare il funzionamento del DUT. A further classic test procedure is the use of a so-called Scan branch (Scan Path), which allows a setting and an output reading of all the registers, which are interconnected internally to the circuit in a serial branch. Here, too, the JTAG protocol can be used, where with serial JTAG access it is not possible to sample these registers in real time, without stopping the operation of the DUT for this.

Un principio risolutivo di nuovo tipo per l'Hardware Debugging è noto dal Brevetto US 5 764 079, che illustra un PLD (PLD = Programmable Logic Device = modulo logico programmabile), fornente la capacità di osservare nodi interni, in quanto nodi interni sono dotati di elementi d'ombra consententi una lettura in uscita degli stati di nodi interni rispettivamente un caricamento di questi con determinati stati. Con la lettura in uscita dei nodi interni questi vengono accoppiati negli elementi d'ombra e resi disponibili tramite registri a scorrimento in corrispondenza di connessioni di entrata/uscita. A new type of solution principle for Hardware Debugging is known from US Patent 5 764 079, which illustrates a PLD (PLD = Programmable Logic Device = programmable logic device), providing the ability to observe internal nodes, as internal nodes are equipped of shadow elements allowing an output reading of the states of internal nodes or a loading of these with certain states. With the output reading of the internal nodes these are coupled in the shadow elements and made available through shift registers at the input / output connections.

Il Brevetto US 5870 410 illustra un sistema di interfaccia ad esempio per PLDs, come quelli descritti nel Brevetto US 5 764 079. Il sistema di interfaccia deve servire non soltanto ad osservare gli stati di nodi interni ma a consentire inoltre la sollecitazione di nodi interni con vettori di prova per osservare gli errori. US Patent 5870 410 illustrates an interface system for example for PLDs, such as those described in US Patent 5 764 079. The interface system must serve not only to observe the states of internal nodes but also to allow the solicitation of internal nodes with test vectors to observe errors.

I Brevetti US summenzionati forniscono in verità la possibilità di leggere in uscita gli stati di commutazione interni di un PLDs e pertanto di rilevare possibili stati di errore, e tuttavia con il rilevamento di un errore non consentono l'inseguimento a ritroso, per determinare la causa dell'errore. Per consentire una tale determinazione delle cause degli errori finora l'unica possibilità consisteva nell'effettuare una costosa simulazione di calcolatore partendo da uno stato iniziale dell'esercizio del circuito, ossia per così dire da un istante zero. Per tali simulazioni è presente un modello del circuito integrato da testare, ad esempio come lista di rete di circuiti logici, laddove il comportamento del circuito viene quindi simulato conformemente al Software, in quanto si utilizzano segnali di entrata definiti per la simulazione. Tuttavia una simulazione è estremamente dispendiosa in termini di tempo, specialmente quando la simulazione debba avvenire in un intervallo di tempo assai lungo. The aforementioned US Patents actually provide the possibility to read the internal switching states of a PLDs at the output and therefore to detect possible error states, and yet with the detection of an error they do not allow back tracking, to determine the cause. of the error. In order to allow such a determination of the causes of the errors, the only possibility up to now consisted in carrying out an expensive computer simulation starting from an initial state of operation of the circuit, that is, as it were, from an instant of zero. For such simulations there is a model of the integrated circuit to be tested, for example as a network list of logic circuits, where the behavior of the circuit is then simulated according to the Software, as defined input signals are used for the simulation. However, a simulation is extremely time-consuming, especially when the simulation has to take place over a very long time interval.

La presente invenzione si pone il compito di realizzare un procedimento ed un dispositivo, che forniscono una possibilità di risparmio di tempo per analizzare determinati stati circuitali, verif icantesi in un circuito logico digitale, relativamente alle loro cause. The present invention has the task of providing a method and a device, which provide a possibility of saving time for analyzing certain circuit states, occurring in a digital logic circuit, with respect to their causes.

Questo problema viene risolto mediante un procedimento secondo la rivendicazione 1 nonché un dispositivo secondo la rivendicazione 9. This problem is solved by a method according to claim 1 as well as a device according to claim 9.

La presente invenzione realizza un procedimento per l'analisi degli errori di circuiti logici e digitali, che presentano una pluralità di nodi circuitali interni con associati registri di utilità, nei quali sono memorizzati stati circuitali dei nodi circuitali interni, che dipendono da segnali di entrata, laddove ad ogni registro di utilità è associato un registro d'ombra, tramite il quale è possibile leggere in uscita lo stato circuitale del registro di utilità. Il circuito logico viene fatto funzionare applicando segnali di entrata a questi, laddove i segnali di entrata applicati vengono protocollati. Durante il funzionamento del circuito logico gli stati circuitali dei nodi circuitali interni vengono letti in uscita ciclicamente tramite i registri d'ombra, laddove gli stati circuitali dei nodi circuitali interni del circuito logico vengono memorizzati per ogni ciclo, per produrre una storia degli stati circuitali. Al verificarsi di un evento prestabilito viene arrestato il funzionamento del circuito logico, dopo di che si verifica un ritorno nella storia degli stati circuitali in ragione di un numero prestabilito di cicli. In base agli stati circuitali memorizzati per il ciclo, verso il quale si è ritornati, nonché in base ai segnali di entrata protocollati viene successivamente effettuata una simulazione Software del funzionamento del circuito logico. The present invention provides a method for analyzing the errors of logic and digital circuits, which have a plurality of internal circuit nodes with associated utility registers, in which circuit states of the internal circuit nodes are stored, which depend on input signals, where a shadow register is associated with each utility register, through which the circuit status of the utility register can be read out. The logic circuit is operated by applying input signals to these, where the applied input signals are logged. During the operation of the logic circuit the circuit states of the internal circuit nodes are read out cyclically through the shadow registers, where the circuit states of the internal circuit nodes of the logic circuit are stored for each cycle, to produce a history of the circuit states. Upon the occurrence of a predetermined event, the operation of the logic circuit is stopped, after which a return to the history of the circuit states occurs over a predetermined number of cycles. A software simulation of the logic circuit operation is subsequently carried out on the basis of the circuit states memorized for the cycle to which one has returned, as well as on the basis of the recorded input signals.

La presente invenzione pertanto si basa sul concetto che è possibile realizzare una ricerca delle cause degli errori, con risparmio di tempo, in quanto ciclicamente vengono letti in uscita tutti gli stati circuitali di nodi circuitali interni di un circuito logico digitale. Se compare un evento prestabilito, preferibilmente uno stato di errore del circuito logico digitale, viene arrestato l'esercizio del circuito logico e si ritorna di colpo nella storia degli stati circuitali, preferibilmente in misura tale che gli stati circuitali memorizzati per il ciclo, verso il quale si è ritornati, indicano un corretto funzionamento del circuito logico digitale. In tal modo è possibile iniziare una simulazione Software utilizzando il diagramma circuitale memorizzato per questo ciclo, laddove l'espressione diagramma circuitale indicherà gli stati circuitali, memorizzati per un ciclo, di tutti i nodi circuitali interni, e utilizzando i segnali di entrata protocollati, cosicché la simulazione Software non dovrà essere necessariamente iniziata quasi in un istante zero, ossia a partire da un'inizio di un funzionamento del circuito logico. The present invention is therefore based on the concept that it is possible to search for the causes of errors, saving time, since all the circuit states of internal circuit nodes of a digital logic circuit are cyclically read out. If a predetermined event appears, preferably an error state of the digital logic circuit, the operation of the logic circuit is stopped and one suddenly returns to the history of the circuit states, preferably to such an extent that the circuit states stored for the cycle, towards the which you have returned, indicate a correct functioning of the digital logic circuit. In this way it is possible to start a Software simulation using the circuit diagram stored for this cycle, where the expression circuit diagram will indicate the circuit states, stored for a cycle, of all the internal circuit nodes, and using the logged input signals, so that the Software simulation will not necessarily have to be started almost in a zero instant, ie starting from a start of a logic circuit operation.

La simulazione Software viene effettuata a partire dal ciclo, verso il quale si è ritornati di colpo, sulla base degli stati circuitali interni memorizzati per questo stato e dei segnali di entrata protocollati applicati dopo questo ciclo. Pertanto secondo l'invenzione è possibile correlare un'Hardware Debugger con una simulazione Software, per far funzionare con risparmio di tempo una richiesta delle cause degli errori. The software simulation is carried out starting from the cycle, towards which we suddenly returned, on the basis of the internal circuit states stored for this state and the logged input signals applied after this cycle. Therefore, according to the invention, it is possible to correlate a Hardware Debugger with a Software simulation, in order to make a request for the causes of the errors work in a time-saving manner.

Un dispositivo per attuare il procedimento secondo l'invenzione comprende un registro d'ombra per ognuno di una pluralità di nodi circuitali interni di un circuito logico digitale, laddove ogni nodo circuitale interno presenta un registro di utilità, il cui stato circuitale, dipendente dai segnali di entrata, può essere letto in uscita tramite l'associato registro d'ombra. E' prevista una memoria per memorizzare una pluralità di diagrammi di stati circuitali nonché per memorizzare i segnali di entrata applicati. Inoltre il dispositivo comprende un comando collegato con il registro d'ombra e con la memoria, per memorizzare ciclicamente diagrammi di stati circuitali nella memoria. Infine è previsto un'interfaccia per trasmettere almeno un diagramma degli stati circuitali verso un calcolatore di simulazione Software. A device for carrying out the method according to the invention comprises a shadow register for each of a plurality of internal circuit nodes of a digital logic circuit, where each internal circuit node has a utility register, the circuit state of which, depending on the signals input, can be read at the output through the associated shadow register. A memory is provided for storing a plurality of circuit state diagrams as well as for storing the applied input signals. Furthermore, the device comprises a command connected with the shadow register and with the memory, for cyclically storing diagrams of circuit states in the memory. Finally, an interface is provided for transmitting at least one diagram of the circuit states to a software simulation computer.

I segnali di entrata protocollati possono essere rilevati tramite strutture Hardware specificamente previste allo scopo, possono essere parimenti memorizzati nella memoria e trasmessi al calcolatore di simulazione Software mediante il comando. Alternativamente i segnali di entrata protocollati ad esempio possono essere rilevati tramite un'analizzatore logico o similari ed essere trasmessi mediante questo direttamente al calcolatore di simulazione Software. The logged input signals can be detected by hardware structures specifically provided for the purpose, they can also be stored in the memory and transmitted to the software simulation computer by means of the command. Alternatively, the logged input signals can for example be detected by means of a logic analyzer or the like and be transmitted by means of this directly to the software simulation computer.

Secondo l'invenzione gli stati circuitali per ogni ciclo possono essere memorizzati preferibilmente in una memoria (RAM) che è eseguita di nuovo preferibilmente come una memoria ad anelli. In esempi di realizzazione preferiti della presente invenzione inoltre i registri d'ombra sono formati da memorie FIFO (FIFO = prima dentro, prima fuori) cosicché per ogni cadenza di lettura in uscita del registro d'ombra è possibile leggere in uscita un valore dai registri di utilità del circuito logico digitale ed è possibile metterlo a disposizione del comando, cosicché è possibile un'osservazione del circuito senza soluzione di continuità. According to the invention, the circuit states for each cycle can preferably be stored in a memory (RAM) which is again preferably executed as a ring memory. In addition, in preferred embodiments of the present invention, the shadow registers are formed by FIFO memories (FIFO = first in, first out) so that for each output reading rate of the shadow register it is possible to read out a value from the registers of utility of the digital logic circuit and it is possible to make it available to the command, so that it is possible to observe the circuit without solution of continuity.

La presente invenzione realizza un Hardware Debugger, che ciclicamente legge in uscita gli stati circuitali di tutti i nodi interni di un circuito logico digitale, affinché con il rilevamento di un errore del circuito logico digitale, relativamente al quale può trattarsi di un qualsiasi circuito logico digitale, ad esempio di un PLD oppure di un FPGA o similari, sia possibile mettere a disposizione di un calcolatore di simulazione dati adatti consententi la determinazione del motivo per l'errore rispettivamente per l'avaria. Al riguardo l'Hardware Debugger consente un trattamento in tempo reale, ossia fa si che possa essere effettuato il rilevamento degli stati circuitali dei nodi circuitali interni nonché un'interruzione, mentre il circuito integrato, ossia il circuito logico digitale, e l'intorno di sistema dello stesso operano in tempo reale. Per soddisfare a questi requisiti di tempo reale è necessario che sia previsto un'Hardware Debugger. The present invention realizes a Hardware Debugger, which cyclically reads in output the circuit states of all the internal nodes of a digital logic circuit, so that with the detection of an error of the digital logic circuit, relative to which it can be any digital logic circuit , for example of a PLD or an FPGA or the like, it is possible to make suitable data available to a simulation computer allowing the determination of the reason for the error or for the failure. In this regard, the Hardware Debugger allows a treatment in real time, i.e. it allows the detection of the circuit states of the internal circuit nodes as well as an interruption, while the integrated circuit, i.e. the digital logic circuit, and the surrounding of system of the same operate in real time. To meet these real-time requirements, a Hardware Debugger is required.

L'Hardware Debugger impiegato per la presente invenzione è preferibilmente in grado di effettuare tre differenti modi, un modo di inseguimento, un modo di interruzione ed un modo di aggiornamento. Il modo di inseguimento consente il campionamento, indipendente dal funzionamento del circuito logico digitale, e la memorizzazione di tutti gli stati circuitali dei nodi circuitali interni nonché l'inseguimento continuo e la memorizzazione di tutti i segnali di entrata/uscita. Gli stati circuitali campionati descrivono il comportamento interno di un DUT, ad esempio durante un processo di produzione di prototipo oppure durante un In-System-Tests . I segnali di entrata/uscita descrivono i corrispondenti dati dell'intorno. I dati rilevati dello stato circuitale e del segnale di entrata servono quindi, come è stato illustrato in precedenza, alla successiva analisi della funzionalità circuitale, specialmente della ricostruzione di stati interni Hardware del DUT in un intorno di simulazione. Al riguardo ricostruzione significa che il modello di simulazione del DUT viene inizializzato con lo stato circuitale campionato di un istante selezionato. Come stimoli per la simulazione servono quindi dati campionati del segnale di entrata. Pertanto, come precedentemente illustrato, per un utente non è necessario "avvicinare per simulazione" il suo modello di simulazione, in modo lungo e complicato all'istante da considerare. E' necessario simulare in maniera dettagliata unicamente gli intervalli di tempo necessari per l'analisi. L'effetto è una drastica riduzione del tempo di simulazione necessario. The Hardware Debugger employed for the present invention is preferably capable of carrying out three different modes, a tracking mode, an interrupt mode and an update mode. The tracking mode allows the sampling, independent from the operation of the digital logic circuit, and the storage of all the circuit states of the internal circuit nodes as well as the continuous tracking and storage of all the input / output signals. The sampled circuit states describe the internal behavior of a DUT, for example during a prototype production process or during an In-System-Tests. The entry / exit signals describe the corresponding neighborhood data. The data detected of the circuit state and of the input signal therefore serve, as previously illustrated, for the subsequent analysis of the circuit functionality, especially for the reconstruction of internal Hardware states of the DUT in a simulation environment. In this regard, reconstruction means that the simulation model of the DUT is initialized with the sampled circuit state of a selected instant. Sampled data from the input signal are therefore required as stimuli for the simulation. Therefore, as previously illustrated, it is not necessary for a user to "approach by simulation" his simulation model, in a long and complicated way to instantly consider. Only the time intervals required for the analysis need to be simulated in detail. The effect is a drastic reduction in the simulation time required.

Il modo di interruzione viene seguito al verificarsi di determinate condizioni di interruzione, che sono stati del DUT liberamente specificabili. Al riguardo in primo luogo esistono condizioni di interruzione interne, che rappresentano uno stato circuitale interno attivante un'azione corrispondente, ad esempio un superamento aritmetico interno, e rappresentante pertanto uno stato di errore. Al riguardo possono essere preassegnate condizioni di interruzione esterne, per le quali all'esterno del DUT si ottiene uno stato attivante un'azione corrispondente, laddove questo stato ad esempio può essere condizionato da errati valori di uscita. Condizioni di interruzioni interne ed esterne vengono generate in generale mediante un 'Hardware supplementare. Inoltre è possibile provocare un'ulteriore interruzione dell 'Hardware Debugging mediante un intervento di utente, ad esempio una cessazione dell'Hardware Debugging. Le azioni effettuare al verificarsi di un'interruzione dipendono dal tipo di interruzione, laddove in generale il DUT viene arrestato e viene memorizzato lo stato circuitale. In dipendenza della gravità dell'interruzione verificatasi è possibile proseguire successivamente il funzionamento ed effettuare un ripristino. Il modo di interruzione può essere attivato parallelamente al modo di inseguimento. The interrupt mode is followed by the occurrence of certain interrupt conditions, which have been freely specifiable states of the DUT. In this regard, in the first place there are internal interruption conditions, which represent an internal circuit state activating a corresponding action, for example an internal arithmetic overrun, and therefore representing an error state. In this regard, external interruption conditions can be pre-assigned, for which a state activating a corresponding action is obtained outside the DUT, where this state, for example, can be conditioned by incorrect output values. Internal and external interrupt conditions are generally generated by additional hardware. It is also possible to cause a further interruption of the Hardware Debugging by means of a user intervention, for example a termination of the Hardware Debugging. The actions performed when an interruption occurs depend on the type of interruption, where in general the DUT is stopped and the circuit state is stored. Depending on the severity of the interruption that has occurred, operation can be continued later and a reset can be carried out. The interrupt mode can be activated in parallel with the following mode.

Infine il modo di aggiornamento consente ad un utente di produrre stati circuitali interni definiti nel DUT. Pertanto è possibile provocare stati di esercizio dell'Hardware, senza che sia necessario portare 1'Hardware in questo stato mediante segnali di entrata. Questo modo può servire a testare effettivamente casi limite di stati di funzionamento oppure per poter impostare per scopi di test stati Hardware non di nuovo ricostruibili oppure ricostruibili solo con difficoltà. Finally, the update mode allows a user to produce internal circuit states defined in the DUT. Therefore it is possible to provoke operating states of the Hardware, without it being necessary to bring the Hardware into this state by means of input signals. This mode can be used to effectively test limit cases of operating states or to set for test purposes Hardware states that cannot be rebuilt again or can only be rebuilt with difficulty.

Con Hardware Debugger, consentente i precedenti modi di esercizio, in esempi di realizzazione preferiti della presente invenzione è formato da un registro d'ombra per ogni nodo circuitale interno del DUT, da una memoria per memorizzare una pluralità di diagrammi di stati circuitali, che sono associati rispettivamente a determinati istanti, nonché da un comando consentente la memorizzazione ciclica dei diagrammi di stato circuitali e la lettura in uscita di questi verso un calcolatore di simulazione. Un tale Hardware Debugger consente di inseguire in tempo reale gli stati circuitali interni senza una reazione inavvertita sul DUT. With the Hardware Debugger, allowing the previous operating modes, in preferred embodiments of the present invention it is formed by a shadow register for each internal circuit node of the DUT, by a memory for storing a plurality of circuit state diagrams, which are associated respectively to certain instants, as well as by a command allowing the cyclical storage of the circuit state diagrams and the reading at the output of these towards a simulation computer. Such a Hardware Debugger allows you to track internal circuit states in real time without an inadvertent reaction on the DUT.

Inoltre l'Hardware Debugger senza tener conto di varianti circuitali specifiche tecnologiche può essere impiegato su tutte le usuali tecnologie circuitali. L'Hardware Debugger preferibilmente è comandabile tramite un calcolatore, laddove nel calcolatore hanno luogo il trattamento dei dati di inseguito e di aggiornamento nonché la descrizione delle condizioni di interruzione. Furthermore, the Hardware Debugger, without taking into account specific technological circuit variants, can be used on all the usual circuit technologies. The hardware debugger can preferably be operated via a computer, where the processing of the tracking and update data as well as the description of the interruption conditions take place in the computer.

La simulazione effettuata dopo la comparsa di una condizione di interruzione sulla base degli stati circuitali, rilevati nel modo di inseguimento, e dei dati di entrata, avviene preferibilmente sulla base di un modello circuitale presente come lista di rete di circuiti logici. In tal modo viene a mancare la necessità di trasformare i dati, ricavati dall'Hardware Debugging, dal piano dei circuiti logici nel piano di trasferimento di registro. The simulation carried out after the appearance of an interruption condition on the basis of the circuit states, detected in the tracking mode, and of the input data, preferably takes place on the basis of a circuit model present as a network list of logic circuits. In this way there is no need to transform the data, obtained from the Hardware Debugging, from the logic circuit plane into the register transfer plane.

Pertanto la presente invenzione consente un'analisi degli errori con risparmio di tempo, per trovare la causa di errori che compaiono in circuiti logici digitali. La presente invenzione consente di trovare cause di errore anche quando l'intorno del sistema fornisce differenti stimoli per ogni ripetizione di un procedimento per l'analisi degli errori Hardware. Conformemente alla presente invenzione l'utente infatti non dovrà ripetere in maniera incrementale un'analisi degli errori per circoscrivere la causa dell'errore, ma può realizzare la ricerca delle cause degli errori mediante il campionamento ciclico e la memorizzazione di tutti i dati rilevanti, durante la prima esecuzione, in cui compare l'errore, mediante una simulazione Software, che non dovrà avvenire necessariamente a partire dall'istante zero. I limiti di questo procedimento del campionamento ciclico dei dati rilevanti consistono unicamente nella limitata velocità di campionamento, che dipende dalla tecnologia, nonché in uno spazio di memoria, possibilmente limitato verso l'alto, per il gran numero di segnali in caso di grandi progetti di circuito logico rispettivamente lunghi cicli in tempo reale. In questo caso la presente invenzione consente di trovare la causa di un errore, che compare anche soltanto una volta, in quanto viene effettuata una simulazione Software sulla base di un diagramma degli stati circuitali memorizzato, che è stato registrato in un'istante immediatamente precedente la comparsa dell'errore. Pertanto l'utente non dovrà necessariamente sperare che ancora una volta compaia l'errore, il che in molti casi porta all'insuccesso in seguito alla mancante riproducibilità degli errori. Therefore, the present invention allows a time-saving error analysis to find the cause of errors that appear in digital logic circuits. The present invention allows to find error causes even when the surroundings of the system provide different stimuli for each repetition of a procedure for the analysis of Hardware errors. In fact, in accordance with the present invention, the user will not have to incrementally repeat an error analysis to circumscribe the cause of the error, but can search for the causes of the errors by means of cyclic sampling and storage of all relevant data, during the first execution, in which the error appears, by means of a software simulation, which does not necessarily have to take place starting from instant zero. The limitations of this procedure of cyclic sampling of relevant data consist only in the limited sampling rate, which depends on the technology, as well as in a memory space, possibly limited upwards, for the large number of signals in the case of large projects of logic circuit respectively long cycles in real time. In this case, the present invention makes it possible to find the cause of an error, which appears even only once, since a software simulation is carried out on the basis of a diagram of the stored circuit states, which was recorded in an instant immediately preceding the appearance of the error. Therefore the user does not necessarily have to hope that the error will appear again, which in many cases leads to failure due to the lack of reproducibility of the errors.

Esempi di realizzazione preferiti della presente invenzione vengono illustrati più dettagliatamente in seguito con riferimento ai disegni allegati. Preferred embodiments of the present invention are illustrated in more detail below with reference to the accompanying drawings.

In particolare: In particular:

la figura 1 mostra un diagramma schematico per illustrare la presente invenzione, le figure 2a fino a 2d mostrano rappresentazioni schematiche di differenti esempi di realizzazione di dispositivi per attuare il procedimento secondo l'invenzione, la figura 3 mostra una rappresentazione schematica di una cella di registro di utilità, figure 1 shows a schematic diagram to illustrate the present invention, figures 2a to 2d show schematic representations of different embodiments of devices for carrying out the method according to the invention, figure 3 shows a schematic representation of a register cell of utility,

la figura 4 mostra una rappresentazione schematica di un nodo circuitale da una cella di registro di utilità, dotata di un registro d'ombra, conformemente alla presente invenzione, Figure 4 shows a schematic representation of a circuit node from a utility register cell, equipped with a shadow register, according to the present invention,

la figura 5 mostra una tabella per illustrare il funzionamento del nodo circuitale mostrato in figura 4, Figure 5 shows a table to illustrate the operation of the circuit node shown in Figure 4,

la figura 6 mostra una rappresentazione schematica per illustrare registri d'ombra, che sono connessi in una catena di campionamento oppure in una via di campionamento, Figure 6 shows a schematic representation for illustrating shadow registers, which are connected in a sampling chain or in a sampling path,

la figura 7 mostra una rappresentazione schematica per illustrare un esempio di realizzazione di una sezione circuitale per produrre una condizione di interruzione, la figura 8 mostra una rappresentazione schematica per illustrare un esempio di realizzazione preferito per spostare e leggere in uscita una catena di campionamento, e la figura 9 mostra una rappresentazione schematica di un nodo circuitale, in cui un registro di utilità è dotato di un registro d'ombra realizzato mediante una memoria FIFO. Figure 7 shows a schematic representation to illustrate an embodiment example of a circuit section for producing an interrupt condition, Figure 8 shows a schematic representation to illustrate a preferred embodiment for moving and reading out a sampling chain, and Figure 9 shows a schematic representation of a circuit node, in which a utility register is equipped with a shadow register realized by means of a FIFO memory.

Con riferimento alla figura l viene ora illustrato più dettagliatamente un esempio di realizzazione preferito del procedimento secondo l'invenzione per l'analisi degli errori. L'asse superiore rappresentato in figura 1 è un'asse di tempo reale, mentre l'asse inferiore è un tempo di simulazione virtuale. Secondo l'invenzione un DUT 2 viene fatto funzionare in tempo reale con applicazione di segnali di entrata 4, che possono rappresentare l'influenza di un intorno del sistema sul DUT 2. Durante il funzionamento del DUT 2, che può essere ad esempio un FPGA oppure un PLD, secondo l'invenzione gli stati circuitali di tutti i nodi circuitali interni del DUT 2 vengono letti ciclicamente in uscita mediante un'Hardware Debugger 6, il che è indicato mediante una freccia 8 in figura 1. L'Hardware Debugger 6 tramite un'interfaccia Debugger 9 è collegato con il DUT 2. Anche se l'Hardware Debugger 6 ed il DUT 2 in figura 1 sono rappresentati come separati mediante un'interfaccia 9, una parte dell'Hardware Debugger 6, e precisamente almeno il rispettivo registro d'ombra di questo, è contenuta nel circuito integrato rappresentante il DUT 2. Il funzionamento del circuito logico, ad esempio per attuare un test di prototipo oppure un In-System Test viene proseguito durante 1 'Hardware Debuggens, fino a quando in un istante t1 compare uno stato di errore 10 nel DUT 2. Questo stato di errore 10 rappresenta una condizione di interruzione. With reference to Figure 1, a preferred embodiment of the method according to the invention for error analysis is now illustrated in more detail. The upper axis represented in Figure 1 is a real time axis, while the lower axis is a virtual simulation time. According to the invention, a DUT 2 is operated in real time with application of input signals 4, which can represent the influence of a surrounding of the system on DUT 2. During the operation of DUT 2, which can be for example an FPGA or a PLD, according to the invention, the circuit states of all the internal circuit nodes of the DUT 2 are read cyclically at the output by means of a Hardware Debugger 6, which is indicated by an arrow 8 in Figure 1. The Hardware Debugger 6 by an interface Debugger 9 is connected with the DUT 2. Even if the Hardware Debugger 6 and the DUT 2 in figure 1 are represented as separate by means of an interface 9, a part of the Hardware Debugger 6, and precisely at least the respective register shadow of this, is contained in the integrated circuit representing DUT 2. The operation of the logic circuit, for example to implement a prototype test or an In-System Test, is continued during the Hardware Debuggens, up to when at an instant t1 an error state 10 appears in DUT 2. This error state 10 represents an abort condition.

Al comparire di una tale condizione di interruzione 10, sulla base degli stati circuitali letti ciclicamente in uscita mediante 1'Hardware Debugger 6, nonché sulla base dei segnali di entrata 4, applicati al DUT 2, viene effettuata una simulazione Software per ricercare la causa alla base dello stato di errore 10. La consegna dei dati summenzionati è rappresentata schematicamente in figura 1 mediante una freccia 12. A questo punto si osservi che gli svolgimenti del procedimento, rappresentati in figura 1 al di sopra della freccia 12, vanno considerati come un'intorno di tempo reale, mentre l'asse dei tempi rappresentato al di sotto della freccia 12 rappresenta un tempo di simulazione virtuale. When such an interruption condition 10 appears, on the basis of the circuit states read cyclically at the output by means of the Hardware Debugger 6, as well as on the basis of the input signals 4, applied to the DUT 2, a Software simulation is carried out to search for the cause of the the basis of the error state 10. The delivery of the aforementioned data is schematically represented in Figure 1 by means of an arrow 12. At this point it should be noted that the steps of the procedure, represented in Figure 1 above the arrow 12, are to be considered as a around real time, while the time axis represented below the arrow 12 represents a virtual simulation time.

Come è riconoscibile in figura 1 per la simulazione, per trovare la causa dell'errore, dall'istante t1 si salta a ritroso in un istante t2 per iniziare la simulazione in questo istante t2. L'intervallo di salto a ritroso viene scelto di preferenza in modo tale che il diagramma di stato circuitale, memorizzato nell'istante t2, indica un regolare funzionamento del DUT. Di conseguenza si ottiene un'intervallo di simulazione Software 14 per l'analisi della causa dell'errore, che inizia nell'istante t2 . Pertanto secondo l'invenzione è possibile abbreviare considerevolmente il tempo necessario per il procedimento di analisi della causa dell'errore, che inizia dopo che è stato rilevato uno stato di errore 10. Come rappresentato schematicamente dalla freccia 12 i dati letti in uscita ciclicamente vengono impiegati per una successiva analisi del comportamento circuitale, laddove gli stati interni Hardware descrivono il comportamento interno del DUT 2, mentre i segnali di entrata 4 rappresentano i corrispondenti dati di intorno che portano al comportamento osservato. As can be seen in figure 1 for the simulation, to find the cause of the error, from the instant t1 one jumps back to an instant t2 to start the simulation at this instant t2. The backward jump interval is preferably chosen in such a way that the circuit state diagram, stored at the instant t2, indicates a regular operation of the DUT. Consequently, a Software simulation interval 14 is obtained for analyzing the cause of the error, which begins at the instant t2. Therefore, according to the invention, it is possible to considerably shorten the time required for the procedure for analyzing the cause of the error, which begins after an error state 10 has been detected. As schematically represented by the arrow 12, the data read out cyclically are used. for a subsequent analysis of the circuit behavior, where the internal hardware states describe the internal behavior of the DUT 2, while the input signals 4 represent the corresponding surrounding data that lead to the observed behavior.

A questo punto si osservi che l'intervallo per tornare indietro di colpo dall'istante t1 all'istante t2 è scelto preferibilmente in modo tale che è possibile partire con sicurezza dal fatto che il circuito ha operato correttamente fino all'istante t2. Per verificare ciò è possibile effettuare un controllo. Qualora da questo risultasse che nell'istante di ritorno il circuito non ha più operato correttamente, dopo il ritorno sull'istante t2 può aver luogo un'ulteriore ritorno temporale, per assicurarsi che all'inizio della simulazione Software il DUT ha operato regolarmente. La simulazione Software fornente l'analisi della causa dell'errore viene ottenuta preferibilmente utilizzando un intorno di simulazione per il modello di circuito logico, cosicché il modello di simulazione del DUT può essere inizializzato senz'altro con un complesso di dati rappresentati un diagramma dello stato circuitale campionato. Questo diagramma dello stato circuitale campionato è associato all'istante t2· Pertanto secondo l'invenzione la simulazione non dovrà iniziare nell'istante 0. Anzi la simulazione inizia nell'istante t2, in quanto il modello di simulazione viene inizializzato con il diagramma di stato circuitale letto in uscita in questo istante, ed in quanto i segnali di entrata campionati vengono impiegati come stimoli per la simulazione del piano di circuiti logici. Pertanto secondo l'invenzione a questo punto si dovrà simulare l'intervallo fra l'istante di inizializzazione t2 e l'istante dell'errore t1, il che fornisce un drastico risparmio di tempo rispetto a noti procedimenti di simulazione. At this point it should be observed that the interval for suddenly going back from the instant t1 to the instant t2 is preferably chosen in such a way that it is possible to start with certainty from the fact that the circuit has operated correctly up to the instant t2. To verify this, you can carry out a check. If it results from this that in the instant of return the circuit has no longer operated correctly, after the return on the instant t2 a further time return can take place, to ensure that at the beginning of the Software simulation the DUT has operated regularly. The software simulation providing the analysis of the cause of the error is preferably obtained by using a simulation neighborhood for the logic circuit model, so that the simulation model of the DUT can certainly be initialized with a set of data represented a state diagram sampled circuit. This diagram of the sampled circuit state is associated with the instant t2. Therefore, according to the invention, the simulation must not start at the instant 0. On the contrary, the simulation starts at the instant t2, since the simulation model is initialized with the state diagram circuit read in output at this instant, and as the sampled input signals are used as stimuli for the simulation of the logic circuit plan. Therefore, according to the invention, at this point the interval between the initialization instant t2 and the error instant t1 must be simulated, which provides a drastic saving of time with respect to known simulation methods.

Inoltre secondo l'invenzione si preferisce che sia possibile preimpostare lo stato del DUT 2 tramite l'Hardware Debugger 6, senza che a tale scopo sia necessaria una sequenza di stimoli esterni. Ciò può essere realizzato mediante i registri d'ombra impiegati conformemente alla presente invenzione, specialmente per testare efficacemente condizioni di esercizio estreme oppure per impostare stati DUT a scopi di test, che possono essere raggiunti con difficoltà mediante stimoli esterni, ad esempio per verificare la capacità di macchine di stato di raggiungere da stati non consentiti stati consentiti in tempo finito. Furthermore, according to the invention, it is preferred that it is possible to preset the state of the DUT 2 by means of the Hardware Debugger 6, without requiring a sequence of external stimuli for this purpose. This can be accomplished by means of the shadow registers employed in accordance with the present invention, especially to effectively test extreme operating conditions or to set DUT states for testing purposes, which can be achieved with difficulty by external stimuli, for example to test the ability. of state machines to reach from forbidden states to allowed states in finite time.

Poiché ora in generale si è illustrato il procedimento secondo l'invenzione, in seguito vengono descritti esempi di realizzazione per dispositivi per attuare il procedimento secondo l'invenzione. Since the process according to the invention has now been generally illustrated, embodiment examples for devices for carrying out the method according to the invention are described below.

Nella figura 2 viene mostrato un primo esempio di realizzazione di un dispositivo secondo l'invenzione, laddove è rappresentato un DUT 2 che contiene componenti 20 dell'Hardware Debugger del dispositivo secondo l'invenzione. I componenti 20 si riferiscono ai componenti dell'Hardware Debugger disposti nel circuito integrato del DUT 2, e precisamente registri d'ombra e dispositivi opzionali per rilevare i segnali di entrata 4 da un'intorno 22 di sistema nonché dispositivi per rilevare i segnali di uscita dal DUT 2, ad esempio per determinare in base a ciò condizioni di interruzione. Gli elementi 20 interni al DUT dell 'Hardware Debugger tramite un'interfaccia 24 sono collegati con un comando 26 dell'Hardware Debugger, che comanda il funzionamento dell'Hardware Debugger e memorizza dati letti in uscita e rilevati, in una memoria 28, preferibilmente in una memoria RAM. Il comando Hardware-Debugger inoltre è collegato tramite un'interfaccia 30 con un computer 32, sul quale viene effettuata la simulazione Software sulla base dei dati forniti dal comando 26, laddove questi dati vengono forniti tramite l'interfaccia 30 al computer 32. Nell'esempio di realizzazione rappresentato in figura 2a il collegamento fra la parte interna DUT 20 del Debugger ed il comando 26, e precisamente l'interfaccia 24, rappresenta il collegamento critico in termini di tempo. Figure 2 shows a first example of embodiment of a device according to the invention, wherein a DUT 2 containing components 20 of the Hardware Debugger of the device according to the invention is shown. The components 20 refer to the components of the Hardware Debugger arranged in the integrated circuit of the DUT 2, namely shadow registers and optional devices for detecting the input signals 4 from a system neighborhood 22 as well as devices for detecting the output signals from DUT 2, for example to determine interruption conditions on the basis of this. The elements 20 inside the DUT of the Hardware Debugger through an interface 24 are connected with a command 26 of the Hardware Debugger, which controls the operation of the Hardware Debugger and stores data read in output and detected, in a memory 28, preferably in a RAM memory. The Hardware-Debugger command is also connected via an interface 30 with a computer 32, on which the Software simulation is carried out on the basis of the data supplied by the command 26, where these data are supplied via the interface 30 to the computer 32. embodiment example shown in Figure 2a, the connection between the internal part DUT 20 of the Debugger and the command 26, and precisely the interface 24, represents the critical connection in terms of time.

Nell'esempio di realizzazione rappresentato nella figura 2b il comando Hardware Debugger è suddiviso in due parti, un'elemento nucleo 36, situato nel circuito integrato 34 del DUT 2, ed un'elemento di comando 26' situato esternamente. In questo esempio di realizzazione il nucleo 36 della funzionalità del comando Debugger si trova nel circuito 34, in cui è realizzato anche il DUT 2, cosicché è possibile qui realizzare più corto il collegamento temporalmente critico, indicato con 38 in figura 2b, di modo che si ottengono più brevi tempi di trasmissione dei segnali, il che consente più alte frequenze di campionamento. In the embodiment shown in Figure 2b, the Hardware Debugger control is divided into two parts, a core element 36, located in the integrated circuit 34 of the DUT 2, and a control element 26 'located externally. In this embodiment, the core 36 of the functionality of the Debugger command is located in the circuit 34, in which the DUT 2 is also realized, so that it is here possible to make the time-critical connection shorter, indicated with 38 in Figure 2b, so that shorter signal transmission times are achieved, which allows for higher sampling rates.

L'elemento nucleo Hardware Debugger rappresentato 36 è una macchina di stato indipendente dal DUT, per comandare la comunicazione fra il comando Debugger 26' e i componenti Debugger 20 interni al DUT. In particolare l'elemento nucleo Debugger dovrà controllare la trasmissione di dati verso gli elementi d'ombra, il rilevamento delle interruzioni ed un possibile intervento dell'utente tramite l'interfaccia Debugger 24' verso il comando Debugger 26'. La lettura dei registri d'ombra è temporalmente critica, laddove l'elemento nucleo 36 fornisce la cadenza di scorrimento per elementi d'ombra connessi come catena di scorrimento, e deve necessariamente leggere in uscita una oppure più catene a scorrimento. Il tempo necessario per questa azione definisce essenzialmente il periodo di campionamento. Pertanto la lettura in uscita di catene di registro d'ombra e la descrizione del RAM 28 sono organizzate così parallelamente come possibile preferibilmente come una struttura Pipeline. A differenza di ciò la descrizione dei registri d'ombra durante il modo di aggiornamento Debugger è meno critica temporalmente, poiché in questo modo il DUT in maniera usuale si trova in uno stato di attesa. Un'ulteriore vantaggio del disporre l'elemento nucleo 36 nel circuito integrato del DUT, sta nel fatto che esso consente di rilevare il più rapidamente possibile interruzioni interne. Alternativamente all'esempio di realizzazione rappresentato in figura 2a l'elemento nucleo 36 del comando Debugger può essere collegato con la RAM esterna 28 anche tramite un'interfaccia diretto. The represented Hardware Debugger core element 36 is a state machine independent of the DUT, for controlling the communication between the Debugger command 26 'and the Debugger components 20 inside the DUT. In particular, the core element Debugger will have to control the transmission of data towards the shadow elements, the detection of interruptions and a possible intervention of the user through the interface Debugger 24 'towards the command Debugger 26'. The reading of the shadow registers is temporally critical, where the core element 36 provides the sliding rate for shadow elements connected as a sliding chain, and must necessarily read one or more sliding chains at the output. The time required for this action essentially defines the sampling period. Therefore the outgoing reading of shadow register chains and the description of the RAM 28 are arranged as parallel as possible preferably as a pipeline structure. On the contrary, the description of the shadow registers during the Debugger update mode is less critical in time, since in this way the DUT is usually in a waiting state. A further advantage of arranging the core element 36 in the integrated circuit of the DUT lies in the fact that it allows internal interruptions to be detected as quickly as possible. As an alternative to the embodiment shown in Figure 2a, the core element 36 of the Debugger control can also be connected to the external RAM 28 via a direct interface.

L'esempio di realizzazione mostrato nella figura 2c si distingue da quello mostrato nella figura 2b, in quanto a questo punto l'intero comando Debugger 26 insieme alla RAM 28 è incorporato nel circuito integrato 34 del DUT 2. Questo esempio di realizzazione pertanto rappresenta una soluzione compatta per un test In System con la massima frequenza di campionamento. Tuttavia è svantaggioso un considerevole aggiuntivo dispendio circuitale e la superficie Chip, usata per la RAM, per il DUT. Inoltre al riguardo si osservi che la On-Chip-RAM 28, come è mostrato in figura 2c, in maniera usuale possiede una capacità di memoria minore rispetto ad una RAM esterna. The embodiment example shown in figure 2c differs from that shown in figure 2b, since at this point the entire Debugger command 26 together with the RAM 28 is incorporated in the integrated circuit 34 of the DUT 2. This example of realization therefore represents a compact solution for an In System test with maximum sampling rate. However, a considerable additional circuit expenditure and the Chip surface, used for RAM, for the DUT is disadvantageous. Furthermore, in this regard it should be noted that the On-Chip-RAM 28, as shown in Figure 2c, usually has a smaller memory capacity than an external RAM.

Nella figura 2d è rappresentata schematicamente una possibilità per sorvegliare continuamente il vettore di entrata relativo al DUT 2, ossia i segnali di entrata 4 verso questo, per rendere disponibili questi segnali di entrata ad un calcolatore da impiegare come stimolo per la simulazione. Per scopi da chiarire conformemente alla figura 2d il rilevamento dei segnali di entrata 4 avviene tramite un'analizzatore logico 40 collegato con le connessioni di entrata del DUT 2 nonché con il calcolatore 32. Si osservi tuttavia che i segnali di entrata verso il DUT 2 possono essere rilevati anche in altro modo, ad esempio mediante corrispondenti componenti Hardware nel circuito integrato del DUT, cosicché è possibile rilevare i segnali di entrata mediante il comando Debugger . Figure 2d schematically represents a possibility for continuously monitoring the input vector relative to the DUT 2, ie the input signals 4 towards it, to make these input signals available to a computer to be used as a stimulus for the simulation. For purposes to be clarified in accordance with FIG. 2d, the detection of the input signals 4 takes place via a logic analyzer 40 connected to the input connections of the DUT 2 as well as to the computer 32. However, it should be noted that the input signals to the DUT 2 may can also be detected in another way, for example by means of corresponding hardware components in the integrated circuit of the DUT, so that it is possible to detect the input signals by means of the Debugger command.

Con riferimento alle figure 3 fino a 5 ha ora luogo una descrizione di esempi di realizzazione preferiti dei componenti dell 'Hardware Debugger disposti nel circuito integrato del DUT. With reference to Figures 3 to 5 there is now a description of preferred embodiments of the components of the Hardware Debugger arranged in the integrated circuit of the DUT.

Nella figura 3 è mostrato un registro di utilità 50 servente in un circuito logico digitale per definire uno stato circuitale di un nodo circuitale interno. Il registro di utilità 50 nell'esempio di realizzazione rappresentato è un D-Flip-Flop con un'entrata di dati 1D, con un'entrata di attivazione 1E ed un'entrata di ritmazione Cl. Figure 3 shows a utility register 50 serving in a digital logic circuit to define a circuit state of an internal circuit node. The utility register 50 in the embodiment shown is a D-Flip-Flop with a data input 1D, with an activation input 1E and a rhythm input Cl.

All'entrata dei dati 1D è applicato un segnale di dato d, all'entrata di attivazione 1E è applicato un segnale di attivazione en, mentre all'entrata di ritmazione CI è applicata una cadenza di utilità clk. Il Flip-Flop 50 possiede un'uscita dei dati q ed un'uscita dei dati invertita qb. A data signal d is applied to the data input 1D, an activation signal en is applied to the activation input 1E, while a utility cadence clk is applied to the rhythm input C1. The Flip-Flop 50 has a data output q and an inverted data output qb.

La figura 4 mostra un nodo di sistema interno di un circuito logico digitale, in cui al registro di utilità interno 50 è associato un registro d'ombra 60, presentante di preferenza la stessa struttura del registro di utilità o dei dati 50. Il registro di utilità 50 ed il registro d'ombra 60 sono connessi tramite due demultiplatori 62, 64, un circuito logico AND 66 ed un circuito logico OR 68, in modo tale che è possibile un normale funzionamento del registro d'utilità 50, un campionamento del registro d'onda 60, un aggiornamento del contenuto del registro di utilità 50 tramite il registro d'ombra oppure un'assunzione del contenuto del registro di utilità 50 nel registro d'ombra 60. Figure 4 shows an internal system node of a digital logic circuit, in which a shadow register 60 is associated with the internal utility register 50, preferably having the same structure as the utility or data register 50. utility 50 and the shadow register 60 are connected by means of two demultiplexers 62, 64, an AND logic circuit 66 and an OR logic circuit 68, so that normal operation of the utility register 50 is possible, a sampling of the register 60, an update of the contents of the utility register 50 via the shadow register or an assumption of the contents of the utility register 50 into the shadow register 60.

A tale scopo un segnale di comando upd , indicante un modo di aggiornamento, è collegato con un'entrata del circuito logico OR 68 e con l'entrata di comando del demultiplatore 62. L'uscita del demultiplatore 62 è collegata con l'entrata dei dati 1D del registro di utilità. Ad un'entrata del demultiplatore 62 è applicato il segnale di entrata dei dati d, mentre l'altra entrata del demultiplatore 62 è collegata con l'uscita del registro d'ombra 60. La seconda entrata del circuito OR 68 è collegata con l'uscita del circuito AND 66, sulle cui entrate sono applicati il segnale di attivazione di registro dei dati en ed un segnale di attivazione del Chip del registro dei dati ce. All'entrata di ritmazione CI del registro di utilità 50 è applicato l'impulso ritmico di utilità clk. L'uscita del registro di utilità 50 è collegata con l'entrata del demultiplatore 64, mentre l'altra entrata del demultiplatore 64 è collegata con un'entrata del ramo Scan del registro d'ombra si. Il demultiplatore 64 viene comandato mediante un segnale del modo di lettura in uscita cpt, laddove l'uscita del demultiplatore 64 è collegata con l'entrata dei dati 1D del registro d'ombra 60. All'entrata di attivazione 1E del registro d'ombra 60 è applicato un segnale di attivazione del registro d'ombra se, mentre all'entrata di ritmazione CI di questo è applicato un segnale ritmico del registro d'ombra sclk. L'uscita del registro d'ombra 60 forma l'uscita di campionamento del registro d'onda, cosicché il registro d'ombra tramite l'entrata si e l'uscita so può essere commutato in un ramo Scan. For this purpose, a control signal upd, indicating an update mode, is connected to an input of the logic circuit OR 68 and to the control input of the demultiplexer 62. The output of the demultiplexer 62 is connected to the input of the 1D data of the utility register. The data input signal d is applied to one input of the demultiplexer 62, while the other input of the demultiplexer 62 is connected to the output of the shadow register 60. The second input of the OR circuit 68 is connected to the output of AND circuit 66, on whose inputs the data register activation signal en and a data register chip activation signal ce are applied. The utility rhythm impulse clk is applied to the rhythm entry CI of the utility register 50. The output of the utility register 50 is connected to the input of the demultiplexer 64, while the other input of the demultiplexer 64 is connected to an input of the Scan branch of the shadow register. The demultiplexer 64 is controlled by a cpt output read mode signal, where the demultiplexer 64 output is connected to the data input 1D of the shadow register 60. At the activation input 1E of the shadow register 60 a shadow register activation signal is applied if, while a rhythmic shadow register signal sclk is applied to the rhythm input CI of this one. The output of the shadow register 60 forms the sampling output of the wave register, so that the shadow register via the yes input and the so output can be switched into a scan branch.

Relativamente alla modalità di funzionamento del circuito rappresentato in figura 1 si rimanda alla tabella mostrata in figura 5, in cui è rappresentato il rispettivo impegno delle entrate e delle uscite nei rispettivi modi di funzionamento. With regard to the operating mode of the circuit represented in Figure 1, reference is made to the table shown in Figure 5, which shows the respective engagement of the inputs and outputs in the respective operating modes.

Solo per chiarezza si menziona il fatto che durante il normale funzionamento del registro di utilità 50 il segnale di aggiornamento upd è inattivo, ossia è 0, cosicché tramite il demultiplatore 62 il segnale dei dati d è applicato all'entrata dei dati 1D del registro di utilità 50. Durante il modo di campionamento il segnale di lettore in uscita cpt è disattivo, ossia 0, cosicché il segnale sull'entrata del ramo Scan del registro d'ombra si è applicato all'entrata dei dati 1D del registro d'ombra 60. Nel modo di aggiornamento è attivo il segnale di aggiornamento upd, ossia 1, cosicché tramite il demultiplatore 62 il segnale di uscita del registro d'ombra 60 viene applicato all'entrata dei dati 1D del registro di utilità 50, cosicché il contenuto del registro d'ombra 60 può essere trasferito nel registro di utilità 50. Nel modo di lettura in uscita è attivo il segnale di uscita cpt, ossia 1, cosicché tramite il demultiplatore 64 il contenuto del registro di utilità 50 può essere assunto nel registro d'ombra 60. Just for the sake of clarity, it is mentioned that during the normal operation of the utility register 50 the update signal upd is inactive, i.e. it is 0, so that through the demultiplexer 62 the data signal d is applied to the data input 1D of the control register. utility 50. During the sampling mode the reader output signal cpt is off, i.e. 0, so that the signal on the Scan branch input of the shadow register is applied to the data input 1D of the shadow register 60 In the update mode, the update signal upd, i.e. 1, is active, so that through the demultiplexer 62 the output signal of the shadow register 60 is applied to the data input 1D of the utility register 50, so that the contents of the register 60 can be transferred to the utility register 50. In the output reading mode, the output signal cpt, i.e. 1, is active, so that by means of the demultiplexer 64 the contents of the utility register 50 can be assumed in the shadow register 60.

Anche se in precedenza con riferimento alla figura 4 è rappresentato un esempio di realizzazione specifico per la connessione di registri di utilità e registri d'onda, è evidente che registri di utilità e registri d'ombra possono essere connessi in un modo differente, per fornire la funzionalità illustrata. Nello stesso modo il registro d'ombra non dovrà essere formato necessariamente mediante un elemento identico al registro dei dati, ma può essere un elemento di registro eseguito in modo differente . Although previously with reference to Figure 4 a specific embodiment example is shown for the connection of utility registers and wave registers, it is evident that utility registers and shadow registers can be connected in a different way, to provide the functionality shown. In the same way, the shadow register need not necessarily be formed by an element identical to the data register, but can be a register element executed in a different way.

Nella figura 6 è rappresentata la connessione di una pluralità di registri d'ombra, mostrati nella figura 4, in una via di campionamento per formare una catena a scorrimento. I contrassegni 100, 102, 104 e 106 in particolare indicano rispettivamente una struttura circuitale , che rappresenta un nodo circuitale interno di un circuito logico digitale. Al riguardo nelle figure 4 e 6 i segnali uguali sono dotati degli stessi contrassegni, laddove nella figura 6 unicamente il nodo circuitale sinistro più esterno è contrassegnato con i contrassegni della figura 4. Come è riconoscibile in figura 6 di volta in volta l'entrata del ramo Scan si di un rispettivo registro d'ombra è collegata con l'uscita del ramo Scan di un precedente registro d'ombra, in modo che è possibile leggere in uscita i registri d'ombra nella forma di una catena a scorrimento. I segnali clk, upd, ce, cpt, se ed sclk nel modo rappresentato possono essere applicati tramite linee in comune per realizzare una catena di campionamento. Figure 6 shows the connection of a plurality of shadow registers, shown in Figure 4, in a sampling path to form a sliding chain. The marks 100, 102, 104 and 106 in particular indicate respectively a circuit structure, which represents an internal circuit node of a digital logic circuit. In this regard, in figures 4 and 6 the identical signals are provided with the same markings, whereas in figure 6 only the outermost left circuit node is marked with the marks of figure 4. As can be recognized in figure 6 each time the input of the The Scan branch of a respective shadow register is connected to the output of the Scan branch of a previous shadow register, so that the shadow registers can be read out in the form of a shift chain. The signals clk, upd, ce, cpt, se and sclk in the manner shown can be applied through common lines to form a sampling chain.

Come è stato illustrato in precedenza con riferimento alla figura 1 secondo l'invenzione ha luogo una .simulazione Software al comparire di una condizione di interruzione. Al riguardo è possibile rilevare in modi diversi interruzioni. In primo luogo possono esistere complesse condizioni di interruzione, in cui ad esempio un diagramma di stato circuitale rilevato viene confrontata con un previsto preassegnato diagramma di stato circuitale, laddove in mancanza di corrispondenza si valuta la sussistenza di una condizione di interruzione. Inoltre si possono prevedere condizioni di interruzione su piani di circuiti logici che sono celle prestabilite, che vengono immesse automaticamente nella descrizione dei piani di circuito logico DUT. Al riguardo si sorvegliano soltanto singoli nodi o vettori, laddove è rappresentata una cella di interruzione esemplificativa per una tale sorveglianza in figura 7. Una linea 80 in particolare rappresenta un nodo da sorvegliare ed è collegata con un'entrata di un comparatore 82. Una seconda entrata del comparatore 82 è collegata con un dispositivo 84 fornente un valore comparativo. Il valore di riferimento o comparativo per il comparatore 82 può essere impostato tramite un distinto ramo Scan 86 delle celle di interruzione. Al riguardo un valore comparativo è valido sempre soltanto quando è impostato un singolo Bit di libero "enable" (figura 7). Pertanto l'utente può inserire e disinserire la funzionalità del comparatore. L'uscita del comparatore 82 ad esempio può essere il segnale di attivazione del Chip del registro dei dati ce, cosicché viene impostato il funzionamento normale del DUT, se dal raffronto nel comparatore 82 non risulta corrispondenza e pertanto si determina una condizione di interruzione. As previously illustrated with reference to Figure 1, according to the invention, a software simulation takes place when an interruption condition appears. In this regard, interruptions can be detected in different ways. In the first place, complex interruption conditions may exist, in which, for example, a detected circuit state diagram is compared with a predetermined pre-assigned circuit state diagram, where in the absence of correspondence the existence of an interruption condition is evaluated. Furthermore, interruption conditions can be provided on logic circuit planes which are predetermined cells, which are automatically entered in the description of the logic circuit plans DUT. In this connection, only individual nodes or vectors are monitored, wherein an exemplary interruption cell for such monitoring is shown in Figure 7. A line 80 in particular represents a node to be monitored and is connected to an input of a comparator 82. A second input of comparator 82 is connected to a device 84 providing a comparative value. The reference or comparative value for the comparator 82 can be set by means of a distinct Scan branch 86 of the interruption cells. In this regard, a comparison value is always valid only when a single free "enable" bit is set (Figure 7). Therefore the user can switch the comparator function on and off. The output of the comparator 82 for example can be the activation signal of the chip of the data register ce, so that the normal operation of the DUT is set, if from the comparison in the comparator 82 there is no correspondence and therefore an interruption condition is determined.

Come è stato illustrato in precedenza la memorizzazione dei dati, ricevuti nel modo di inseguimento, ossia dei diagrammi di stato circuitale oppure opzionalmente aggiuntivamente dei segnali di entrata, in maniera usuale avviene in aree RAM esterne oppure interne. La grandezza delle aree RAM impiegate definisce il numero dei vettori di stato memorizzatili, ossia la profondità della storia degli stati circuitali prodotta. Per circuiti praticamente rilevanti, ossia per varie migliaia di Flip-Flop e per un Debugging in tempo reale nell'ordine dei secondi, è tecnicamente impossibile memorizzare temporaneamente tutti i vettori di stato comparsi. In esempi di realizzazione preferiti della presente invenzione pertanto la memoria RAM viene organizzata come una memoria tampone ad anello, in cui per una valutazione sono disponibili sempre gli ultimi n vettori di stato, cosicché si ottiene una profondità di storia pari ad n. As previously illustrated, the storage of the data received in the tracking mode, ie of the circuit state diagrams or optionally additionally of the input signals, usually takes place in external or internal RAM areas. The size of the RAM areas used defines the number of state vectors that can be stored, ie the depth of the history of the circuit states produced. For practically relevant circuits, ie for several thousand Flip-Flops and for a real-time Debugging in the order of seconds, it is technically impossible to temporarily store all the state vectors that have appeared. In preferred embodiments of the present invention, therefore, the RAM memory is organized as a ring buffer, in which the last n state vectors are always available for an evaluation, so that a history depth equal to n is obtained.

A differenza della lettura in uscita dei registri d'ombra l'inizializzazione del DUT con dati di aggiornamento non è temporalmente critica, cosicché i vettori di aggiornamento possono essere tenuti sul computer Host. Il vettore di volta in volta attuale quindi può essere caricato ad esempio tramite un'interfaccia JTAG direttamente nel DUT oppure opportunamente nella RAM, laddove successivamente in inversione rispetto al modo di inseguimento è possibile copiare le aree RAM nei corrispondenti registri. La grandezza RAM è in particolare non critica, poiché di volta in volta si dovrà memorizzare temporaneamente soltanto un vettore di aggiornamento. Unlike the reading out of the shadow registers, the initialization of the DUT with update data is not temporally critical, so that the update vectors can be kept on the Host computer. The vector currently current can therefore be loaded for example through a JTAG interface directly into the DUT or suitably into the RAM, where subsequently in inversion with respect to the tracking mode it is possible to copy the RAM areas into the corresponding registers. In particular, the RAM size is not critical, since in each case only one update vector has to be temporarily stored.

Per quanto riguarda gli impulsi ritmici, con i quali vengono fatti funzionare i registri di utilità e i registri d'ombra (vedere clk ed sclk nella figura 4) si osservi che questi possono essere fatti funzionare con identico o differente impulso ritmico. Se i registri d'ombra vengono fatti funzionare con un impulso ritmico di frequenza più alta dei registri dei dati, allora è necessario che l'impulso ritmico sclk dei registri d'ombra presenti una frequenza superiore almeno di un triplo rispetto all'impulso ritmico clk dei registri dei dati. L'impiego di un tale impulso ritmico di registro d'ombra più alto è vantaggioso quando si impiegano lunghe catene a scorrimento. Alternativamente è possibile far funzionare sincronicaraente fra di loro sia registri di utilità sia anche registri d'ombra, il che viene realizzato preferibilmente con alte frequenze DUT. Al riguardo si osservi che è possibile compensare modeste frequenze di scorrimento mediante una parallelizzazione delle vie di campionamento. As for the rhythmic impulses, with which the utility registers and the shadow registers are made to work (see clk and sclk in figure 4) it should be noted that these can be operated with the same or different rhythmic impulse. If the shadow registers are operated with a rhythmic pulse of higher frequency than the data registers, then it is necessary that the rhythmic pulse sclk of the shadow registers have a frequency at least three times higher than the rhythmic pulse clk of data logs. The use of such a higher shadow register rhythmic pulse is advantageous when long sliding chains are employed. Alternatively, both utility registers and shadow registers can be operated synchronously with each other, which is preferably achieved with high DUT frequencies. In this regard, it should be noted that modest slip frequencies can be compensated by parallelizing the sampling paths.

La frequenza di campionamento per i vettori di stato nel modo di inseguimento viene limitata dalla lunghezza del vettore di stato e dalla lunghezza del ciclo di registrazione per la RAM di inseguimento. Per una frequenza di campionamento massima lo scorrimento dei registri d'ombra dovrà aver luogo nel senso di un trattamento Pipeline nell'ombra del ciclo Write, come rappresentato in figura 8, cosicché di volta in volta durante lo scorrimento di un successivo ciclo n+1 vengono registrati i dati per il ciclo precedente n. Pertanto non si ottiene un'ulteriore perdita di tempo. Per assicurare uno scorrimento sufficientemente rapido o dovrà essere corrispondentemente alta la frequenza di scorrimento oppure i registri d'ombra dovranno essere raggruppati in più gruppi di campionamento. Alternativamente è possibile realizzare i registri d'ombra mediante memorie FIFO, cosicché fra due punti di campionamento di volta in volta dovrà essere presente soltanto una distanza di ritmazione. In altre parole ciò significa che per ogni impulso ritmico del registro d'ombra sclk è possibile leggere in uscita un valore dal circuito e mettere a disposizione questo al comando Hardware Debugger, cosicché è possibile un'osservazione del circuito senza soluzione di continuità. The sampling rate for the state vectors in the tracking mode is limited by the length of the state vector and the length of the recording cycle for the tracking RAM. For a maximum sampling frequency, the shifting of the shadow registers must take place in the direction of a Pipeline treatment in the shadow of the Write cycle, as shown in Figure 8, so that each time during the shifting of a subsequent n + 1 cycle the data for the previous cycle n. Therefore there is no further waste of time. To ensure a sufficiently rapid shift, either the shift frequency must be correspondingly high or the shadow registers must be grouped into several sampling groups. Alternatively, it is possible to realize the shadow registers by means of FIFO memories, so that between two sampling points each time only a rhythm distance must be present. In other words, this means that for each rhythmic pulse of the shadow register sclk it is possible to read out a value from the circuit and make this available to the Hardware Debugger command, so that a seamless observation of the circuit is possible.

Un esempio di realizzazione di una realizzazione di tale tipo è mostrato nella figura 9, in cui elementi uguali a quelli in figura 4 sono dotate degli stessi contrassegni. In questo caso, per realizzare una profondità FIFO pari a 3, sono inseriti due registri FIFO 200 e 202, che vengono comandati ritmicamente mediante clk, fra l'uscita dei dati q del registro di utilità 50 e un'entrata del demultiplatore 64. I registri FIFO 200 e 202 vengono comandati tramite un segnale FIFO-cpt, ossia vengono attivati. Mediante i registri FIFO 200 e 202 è possibile, parallelamente alla lettura in uscita della catena a scorrimento, memorizzare temporaneamente già nuovi valori di campionamento dal registro di utilità. Questi valori di campionamento possono essere anche coerenti, laddove il numero massimo di valori di campionamento coerenti non può superare la profondità FIFO, nell'esempio di realizzazione non può superare 3. Ciò può essere assicurato mediante il congegno di comando nell'Hardware Debugger, ossia ad esempio,il comando 26 nella figura 2a. Di conseguenza è possibile impedire un supero della FIFO, che si verificherebbe tutte le volte in cui nella FIFO vengono registrati più valori di campionamento di quelli che possono essere letti in uscita dai registri d'ombra tramite la catena a scorrimento. An embodiment example of an embodiment of this type is shown in Figure 9, in which elements identical to those in Figure 4 are provided with the same markings. In this case, to realize a FIFO depth equal to 3, two FIFO registers 200 and 202 are inserted, which are rhythmically controlled by means of clk, between the data output q of the utility register 50 and an input of the demultiplexer 64. FIFO registers 200 and 202 are controlled by means of a FIFO-cpt signal, ie they are activated. By means of the FIFO registers 200 and 202 it is possible, in parallel with the reading at the output of the shift chain, to temporarily store already new sampling values from the utility register. These sampling values can also be consistent, where the maximum number of consistent sampling values cannot exceed the FIFO depth, in the example embodiment it cannot exceed 3. This can be ensured by means of the control device in the Hardware Debugger, i.e. for example, the command 26 in Figure 2a. Consequently, it is possible to prevent an overshoot of the FIFO, which would occur whenever more sampling values are recorded in the FIFO than can be read out of the shadow registers via the shift chain.

Come già menzionato in precedenza per l'analisi successiva del comportamento DUT per il Test Hardware è necessaria la registrazione di tutti i dati di entrata. Questi dati di entrata ad esempio possono essere registrati mediante convenzionali analizzatori logici oppure mediante speciale Hardware, laddove la rispettiva realizzazione dipenderà da tali fattori, come ad esempio la velocità di campionamento necessaria, la larghezza del vettore del segnale di entrata e la profondità History nonché dall 'Hardware commerciale disponibile. As already mentioned above for the subsequent analysis of the DUT behavior for the Hardware Test it is necessary to record all the input data. For example, these input data can be recorded by means of conventional logic analyzers or by means of special hardware, where the respective implementation will depend on such factors, such as the required sampling rate, the width of the input signal vector and the depth History as well as on the 'Commercial hardware available.

Claims (11)

RIVENDICAZIONI 1. Procedimento per l'analisi degli errori di circuiti logici digitali (2), che presentano una pluralità di nodi circuitali interni (100, 102, 104, 106) con associati registri di utilità (50), in cui sono memorizzati stati circuitali dei nodi circuitali interni (100-106), dipendenti da segnali di entrata (4), laddove ad ogni registro di utilità (50) è associato un registro d'ombra (60), tramite il quale può essere letto in uscita lo stato circuitale del registro di utilità (50), con le seguenti fasi: a) funzionamento del circuito logico (2) con applicazione di segnali di entrata (4) sullo stesso, e protocollo dei segnali di entrata applicati (4), b) lettura in uscita ciclica dei stati circuitali dei nodi circuitali interni (102-106) tramite i registri d'ombra (60) durante il funzionamento del circuito logico (2) e memorizzazione degli stati circuitali dei nodi circuitali interni (100-106) del circuito logico (2) per ogni ciclo per produrre una storia dello stato circuitale, c) al verificarsi di un evento prestabilito, arresto del funzionamento del circuito logico (2), ritorno di scatto nella storia degli stati circuitali in ragione di un numero prestabilito di cicli ed esecuzione di una simulazione Software (14) del funzionamento del circuito logico (2) utilizzando i segnali di entrata protocollati e gli stati circuitali memorizzati per il ciclo verso il quale si è ritornati di scatto. CLAIMS 1. Method for analyzing the errors of digital logic circuits (2), which have a plurality of internal circuit nodes (100, 102, 104, 106) with associated utility registers (50), in which circuit states of the internal circuit nodes (100-106), dependent on input signals (4), where a shadow register (60) is associated with each utility register (50), through which the circuit state of the utility register (50), with the following phases: a) operation of the logic circuit (2) with application of input signals (4) on it, and protocol of the applied input signals (4), b) cyclical output reading of the circuit states of the internal circuit nodes (102-106) through the shadow registers (60) during operation of the logic circuit (2) and storage of the circuit states of the internal circuit nodes (100-106) of the logic circuit (2) for each cycle to produce a history of the circuit state, c) upon the occurrence of a predetermined event, stop of the operation of the logic circuit (2), trip return in the history of the circuit states according to a predetermined number of cycles and execution of a Software simulation (14) of the operation of the logic circuit ( 2) using the registered input signals and the memorized circuit states for the cycle towards which the trigger is returned. 2. Procedimento secondo la rivendicazione (1), in cui l'evento prestabilito è definito mediante prestabiliti stati circuitali dei nodi circuitali interni (100-106), indicanti un funzionamento non corretto del circuito logico (2). Method according to claim (1), wherein the predetermined event is defined by predetermined circuit states of the internal circuit nodes (100-106), indicating incorrect operation of the logic circuit (2). 3. Procedimento secondo la rivendicazione (2), in cui nella fase (c) si ritorna di scatto nella storia degli stati circuitali in ragione di un numero di cicli tale che gli stati circuitali, che sono stati memorizzati per il ciclo verso il quale si è ritornati di scatto, indicano un funzionamento corretto del circuito logico (2). Method according to claim (2), in which in step (c) the history of the circuit states is jerked back by a number of cycles such that the circuit states, which have been memorized for the cycle towards which has snapped back, indicate correct operation of the logic circuit (2). 4. Procedimento secondo le rivendicazioni da (1) fino a (3), in cui gli stati circuitali per ogni ciclo vengono memorizzati in una memoria tampone ad anelli (28). Method according to claims (1) to (3), in which the circuit states for each cycle are stored in a ring buffer (28). 5. Procedimento secondo le rivendicazioni da (1) fino a (4), in cui prima del funzionamento del circuito logico (2) il circuito logico tramite i registri d'ombra (60) viene inizializzato su un prestabilito stato iniziale. Method according to claims (1) to (4), wherein the logic circuit is initialised to a predetermined initial state via the shadow registers (60) before the logic circuit (2) is operated. 6. Procedimento secondo le rivendicazioni da (1) fino a (5), in cui di volta in volta una pluralità di registri d'ombra (60) sono connessi a formare una catena a scorrimento, che nella fase (b) viene letta in uscita ciclicamente. Method according to claims (1) to (5), in which in each case a plurality of shadow registers (60) are connected to form a sliding chain, which in step (b) is read in cyclically. 7. Procedimento secondo le rivendicazioni da (1) fino a (6), in cui la lettura ciclica in uscita nella fase (b) avviene con una frequenza (sclk), che è indipendente dalla frequenza di ripetizione (clk) con cui viene fatto funzionare il circuito logico. Method according to claims (1) to (6), in which the cyclic output reading in step (b) takes place with a frequency (sclk), which is independent of the repetition frequency (clk) with which it is performed operate the logic circuit. 8 . Procedimento secondo le rivendicazioni da (1) fino a (7), in cui i registri d'ombra (60) sono formati mediante memorie FIFO. 8. Method according to claims (1) to (7), wherein the shadow registers (60) are formed by FIFO memories. 9. Dispositivo per attuare un procedimento secondo le rivendicazioni da (1) fino a (8), con le seguenti caratteristiche: un registro d'ombra (60) per ognuno di una pluralità di nodi circuitali interni (100, 102, 104, 106), un circuito logico digitale (2), laddove ogni nodo circuitale interno (100-106) presenta un registro di utilità (50), il cui stato circuitale, dipendente da segnali di entrata (4), può essere letto in uscita tramite l'associato registro d'ombra (60) , una memoria (28) per memorizzare una pluralità di diagrammi degli stati circuitali, laddove ogni diagramma degli stati circuitali rappresenta gli stati circuitali dei nodi circuitali interni (100-106) in un istante prestabilito, un comando (26, 26', 36), che è collegato con i registri d'ombra (60) e con la memoria (28) per memorizzare ciclicamente diagrammi degli stati circuitali nella memoria (28), e un'interfaccia per trasmettere almeno un diagramma degli stati circuitali verso un calcolatore di simulazione Software. 9. Device for carrying out a method according to claims (1) to (8), with the following characteristics: a shadow register (60) for each of a plurality of internal circuit nodes (100, 102, 104, 106), a digital logic circuit (2), where each internal circuit node (100-106) has a utility register (50), whose circuit state, dependent on input signals (4), can be read at the output through the associated shadow register (60), a memory (28) for storing a plurality of circuit state diagrams, with each circuit state diagram representing the circuit states of the internal circuit nodes (100-106) at a predetermined instant, a command (26, 26 ', 36), which is connected with the shadow registers (60) and with the memory (28) for cyclically storing diagrams of the circuit states in the memory (28), and an interface for transmitting at least one diagram of the circuit states to a software simulation computer. 10. Dispositivo secondo la rivendicazione (9), in cui i registri d'ombra sono formati mediante registri FIFO. Device according to claim (9), wherein the shadow registers are formed by FIFO registers. 11. Dispositivo secondo la rivendicazione (9) oppure (10), in cui di volta in volta una pluralità di registri d'ombra (60) sono connessi a formare una catena a scorrimento leggibile in uscita ciclicamente mediante il comando (26, 26', 36). 11. Device according to claim (9) or (10), wherein each time a plurality of shadow registers (60) are connected to form a sliding chain that can be read out cyclically by means of the command (26, 26 ' , 36).
ITMI20002236 1999-10-21 2000-10-17 PROCEDURE AND DEVICE FOR THE ANALYSIS OF DIGITAL CIRCUITILOGICAL ERRORS IT1319009B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1999150838 DE19950838C2 (en) 1999-10-21 1999-10-21 Method and device for error analysis of digital logic circuits

Publications (2)

Publication Number Publication Date
ITMI20002236A1 true ITMI20002236A1 (en) 2002-04-17
IT1319009B1 IT1319009B1 (en) 2003-09-19

Family

ID=7926479

Family Applications (1)

Application Number Title Priority Date Filing Date
ITMI20002236 IT1319009B1 (en) 1999-10-21 2000-10-17 PROCEDURE AND DEVICE FOR THE ANALYSIS OF DIGITAL CIRCUITILOGICAL ERRORS

Country Status (4)

Country Link
CH (1) CH694927A5 (en)
DE (1) DE19950838C2 (en)
FR (1) FR2800169B1 (en)
IT (1) IT1319009B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10119170A1 (en) * 2001-01-08 2005-04-07 Universität Leipzig Digital circuit failure analysis procedure emulates circuit at high clock speed with all inputs connected to shift register for examination on failure
DE10136703C1 (en) 2001-07-27 2003-04-17 Infineon Technologies Ag Logic device for testing an integrated circuit
DE102004040196B3 (en) * 2004-08-19 2006-04-06 Siemens Ag Logic circuit for simultaneous processing of functional data and test data in data group uses two identical signal state stores and data is transmitted over two separate paths
EP1980964B1 (en) 2007-04-13 2016-03-23 Yogitech Spa Method and computer program product for performing failure mode and effects analysis of an integrated circuit
CN111413584B (en) * 2020-03-19 2023-08-25 国网湖北省电力有限公司荆门供电公司 Power distribution network fault positioning linear programming method based on fault direction

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5383167A (en) * 1991-10-16 1995-01-17 Nextwave Design Automation Method and apparatus for histogram based digital circuit simulator
US5568380A (en) * 1993-08-30 1996-10-22 International Business Machines Corporation Shadow register file for instruction rollback
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5764079A (en) * 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US5870410A (en) * 1996-04-29 1999-02-09 Altera Corporation Diagnostic interface system for programmable logic system development
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin

Also Published As

Publication number Publication date
DE19950838C2 (en) 2001-09-27
DE19950838A1 (en) 2001-06-07
IT1319009B1 (en) 2003-09-19
FR2800169B1 (en) 2003-08-29
CH694927A5 (en) 2005-09-15
FR2800169A1 (en) 2001-04-27

Similar Documents

Publication Publication Date Title
US6701491B1 (en) Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US5084874A (en) Enhanced test circuit
Marlett EBT: A comprehensive test generation technique for highly sequential circuits
KR101592042B1 (en) Methods for analyzing scan chains, and for determining numbers or locations of hold time faults in scan chains
US8145964B2 (en) Scan test circuit and scan test control method
EP0358376A2 (en) Integrated test circuit
JPH07167914A (en) Built-in testing circuit for performing sampling of digital micro-circuit and accurate ac test with low-bandwidth testing device and probing station
JP6544772B2 (en) Integrated circuit capable of generating test mode control signals for scan testing
EP0358365A2 (en) Testing buffer/register
US8381050B2 (en) Method and apparatus for increased effectiveness of delay and transition fault testing
JPH11281716A (en) Method for generating test sequence for compressed set
JP4966974B2 (en) IC test method and apparatus
JPH0548494B2 (en)
US5809040A (en) Testable circuit configuration having a plurality of identical circuit blocks
CN114280454A (en) Chip testing method and device, chip testing machine and storage medium
US20070265823A1 (en) Circuit emulation with state recovery
ITMI20002236A1 (en) PROCEDURE AND DEVICE FOR THE ERROR ANALYSIS OF DIGITAL LOGIC CIRCUITS
JPH0225155B2 (en)
KR100883392B1 (en) Universal Approach for Simulating, Emulating, and Testing a Variety of Serial Bus Types
KR20020069468A (en) Debugging Apparatus Using Both Very Large Scaled Digital System Realized in Hardware and Simulation, and Debugging Method For Verifying Ultra Large Design
US4682329A (en) Test system providing testing sites for logic circuits
CN108712165A (en) A kind of pin multiplexing circuit for asynchronous interactive interface monitor
JP2002288257A (en) Method and device for power consumption evaluation
US5130989A (en) Serial and parallel scan technique for improved testing of systolic arrays
JP2002148311A (en) Test architecture