HalfAdderSynthesisDefault
class qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault
Basen: HighLevelSynthesisPlugin
Die standardmäßige Halbaddierer-Synthese (kein Carry-in, aber ein Carry-out-Qubit).
Wenn wir ein Hilfsqubit zur Verfügung haben, verwendet der Cuccaro-Ripple-Carry-Addierer CX-Gatter und 1 Hilfsqubit, während der Vedral-Ripple-Carry-Addierer mehr CX- und Hilfsqubits verwendet. Der QFT-basierte Addierer verwendet keine Hilfsqubits, sondern und wird daher nur verwendet, wenn keine Hilfsqubits verfügbar sind.
Dieser Plugin-Name ist:HalfAdder.default , der als Schlüssel für ein Objekt verwendet werden kann HLSConfig objekt verwendet werden kann, um diese Methode mit HighLevelSynthesis.
Wenn mindestens ein sauberes Hilfsqubit vorhanden ist, wird das HalfAdderSynthesisC04 verwendet, andernfalls HalfAdderSynthesisD00.
Das Plugin unterstützt die folgenden Plugin-spezifischen Optionen:
num_clean_ancillas: Die Anzahl der verfügbaren sauberen Hilfsqubits.
Methoden
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Durchführung der Synthese für die angegebene Operation.
Parameter
- high_level_object (Operation) – Die zu synthetisierende Operation zu einem
DAGCircuitobjekt. - coupling_map (CouplingMap) – Die Kopplungskarte des Backends für den Fall, dass die Synthese auf einer physikalischen Schaltung erfolgt.
- target (Target) – Ein Ziel, das das Ziel-Backend darstellt.
- qubits (list) – Liste der Qubits, über die die Operation definiert ist, falls die Synthese auf einer physikalischen Schaltung erfolgt.
- options - Zusätzliche methodenspezifische optionale kwargs.
Rückgabe
Die Quantenschaltungsdarstellung der Operation
wenn sie erfolgreich ist, und andernfalls None .
Rückgabetyp