Methods and associated apparatus for simulating digital logic circuits with
a general purpose computer system. A description of a digital logic
circuit is converted into executable computer code. The code produced is
capable of simulating the circuit's response to a large number of
independent sets of circuit stimulus. The code is broken into separate
modules which each simulate the circuit's operation during a particular
clock phase. Loops within the code are limited in size to make efficient
use of the computer's instruction cache and the data cache. Known constant
nodes are propagated through the circuit before code is generated to
eliminate the generation of unnecessary code. Code is only generated to
simulate gates which may switch on a particular phase. Code which does not
need to be evaluated during a particular phase is dropped. The circuit is
broken into acyclic sets of gates and code is generated to iterate over
each acyclic set of gates until stability is reached. A scoring function
is used to prioritize which logic gate and which nodes are to be selected
for code generation. Tri-state buffers are simulated using boolean
operations. Drive-fight checking is also accomplished using boolean
operations.
Metodi ed apparecchio collegato per la simulazione dei circuiti logici digitali con un sistema di elaborazione per tutti gli usi. Una descrizione di un circuito logico digitale è convertita in codice di calcolatore eseguibile. Il codice prodotto è capace di simulazione della risposta del circuito a tantissimi insiemi indipendenti dello stimolo del circuito. Il codice è rotto nei moduli separati che ciascuno simula il funzionamento del circuito durante la fase particolare dell'orologio. I cicli all'interno del codice sono limitati nel formato per fare l'uso efficiente del nascondiglio di istruzione del calcolatore e del nascondiglio di dati. I nodi costanti conosciuti sono propagati tramite il circuito prima che il codice sia generato per eliminare la generazione del codice inutile. Il codice è generato soltanto per simulare i cancelli che possono inserire una fase particolare. Codifichi che non deve essere valutato durante la fase particolare è caduto. Il circuito è rotto in serie acicliche dei cancelli ed il codice è generato per ripetere sopra ciascuno l'insieme aciclico dei cancelli fino a raggiungere la stabilità. Una funzione notante è usata per dare la priorità a che cancello di logica e che i nodi devono essere selezionati per la generazione di codice. Gli amplificatori di Tri-dichiarare sono simulati usando i funzionamenti booleani. Guid-combatti il controllo inoltre è compiuto usando i funzionamenti booleani.