HalfAdderSynthesisDefault
class qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault
Bases: HighLevelSynthesisPlugin
La síntesis de media escalera por defecto (sin carry in, pero con un qubit carry out).
Si disponemos de un qubit auxiliar, el sumador ripple-carry de Cuccaro utiliza puertas CX y 1 qubit auxiliar, mientras que el ripple-carry de Vedral utiliza más CX y qubits auxiliares. El sumador basado en QFT no utiliza qubits auxiliares, sino , por lo que sólo se utiliza si no se dispone de qubits auxiliares.
El nombre de este plugin es:HalfAdder.default que se puede utilizar como la clave en un HLSConfig para utilizar este método con HighLevelSynthesis.
Si se dispone de al menos un qubit auxiliar limpio, se utiliza el HalfAdderSynthesisC04 en caso contrario HalfAdderSynthesisD00.
El complemento admite las siguientes opciones específicas:
num_clean_ancillas: El número de qubits auxiliares limpios disponibles.
Métodos
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Ejecutar la síntesis para la Operación dada.
Parámetros
- high_level_object (Operation) – La Operación a sintetizar en un
DAGCircuitobjeto. - coupling_map (CouplingMap) – El mapa de acoplamiento del backend en caso de que la síntesis se realice en un circuito físico.
- target (Target) – Un objetivo que representa el backend de destino.
- qubits (list) – Lista de qubits sobre los que se define la operación en caso de que la síntesis se realice sobre un circuito físico.
- options - Kwargs opcionales específicos del método.
Devuelve
La representación en circuito cuántico de la Operación
si tiene éxito, y None en caso contrario.
Tipo de retorno