Die Aufgabe eines Simulationsalgorithmus besteht darin, ein Modellierungskonzept (Signalwerte, Zeit, logisches Verhalten) auf die Architektur eines Rechners zu übertragen. Die beste Lösung wird dabei erreicht, wenn die Architektur des Rechners genau mit dem Modellierungskonzept übereinstimmt (Algorithmus in Hardware) oder diesem zumindest ähnlich ist (Hardware-Beschleuniger). Nach diesem Grundsatz sind eine Reihe von speziellen Simulationsrechnern gebaut worden. Hardware-Beschleuniger, die durch besondere Rechnerarchitekturen, wie z.B. Pipelining, sequentielle Algorithmen um Faktoren von etwa 20-50 beschleunigen, haben auch kommerzielle Bedeutung erreicht.
Im Normalfall jedoch sind konventionelle von Neumann-Architekturen als Rechner zu benutzen. Hauptproblem dabei ist die Abbildung der im zu simulierenden Entwurf vorhandenen Parallelität auf die streng sequentielle Arbeitsweise des Rechners.
Wir unterscheiden dabei zwei grundsätzlich verschiedene Ansätze: übersetzende und tabellengesteuerte Verfahren. Bei den übersetzenden Verfahren wird die zu simulierende Schaltung durch ein (Maschinen- oder Hochsprachen-)Programm dargestellt. Hierfür sind naturgemäß Darstellungen in einer Hardware-Beschreibungssprache(HDL) besonders geeignet. Abgesehen von verschiedenen Steuerungsmechanismen stellt die Schaltungsbeschreibung selbst den Simulator dar. Dagegen wird bei tabellengesteuerten Verfahren die Schaltung in eine Datenstruktur umgesetzt. Diese Datenstruktur beschreibt alle logischen, topologischen und zeitlichen Eigenschaften der Schaltung und wird von einem schaltungsunabhängigen Programm, dem Simulator, bearbeitet.