HalfAdderSynthesisDefault
class qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault
Basi: HighLevelSynthesisPlugin
La sintesi half-adder predefinita (nessun carry in, ma un qubit carry out).
Se abbiamo a disposizione un qubit ausiliario, l'adder Cuccaro ripple-carry utilizza porte CX e 1 qubit ausiliario, mentre il Vedral ripple-carry utilizza più CX e qubit ausiliari. L'addizionatore basato su QFT non utilizza qubit ausiliari, ma , quindi viene utilizzato solo se non sono disponibili qubit ausiliari.
Il nome del plugin è:HalfAdder.default , che può essere utilizzato come chiave di un oggetto HLSConfig per utilizzare questo metodo con HighLevelSynthesis.
Se è disponibile almeno un qubit ausiliario pulito, viene utilizzato il parametro HalfAdderSynthesisC04 viene utilizzato, altrimenti HalfAdderSynthesisD00.
Il plugin supporta le seguenti opzioni specifiche del plugin:
num_clean_ancillas: Il numero di qubit ausiliari puliti disponibili.
Metodi
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Esegue la sintesi per l'operazione indicata.
Parametri
- high_level_object (Operation) – L'operazione da sintetizzare in un
DAGCircuitoggetto. - coupling_map (CouplingMap) – La mappa di accoppiamento del backend nel caso in cui la sintesi venga effettuata su un circuito fisico.
- target (Target) – Un obiettivo che rappresenta il backend di destinazione.
- qubits (list) – Elenco dei qubit su cui è definita l'operazione nel caso in cui la sintesi sia effettuata su un circuito fisico.
- options - Kwarg opzionali aggiuntivi specifici per il metodo.
Risultati
La rappresentazione del circuito quantistico dell'operazione
in caso di successo e None in caso contrario.
Tipo di restituzione