HalfAdderSynthesisDefault
class qiskit.transpiler.passes.synthesis.hls_plugins.HalfAdderSynthesisDefault
Bases: HighLevelSynthesisPlugin
A síntese padrão de meio-somador (sem carry in, mas com um qubit de carry out).
Se tivermos um qubit auxiliar disponível, o somador de Cuccaro ripple-carry usa CX gates e 1 qubit auxiliar, enquanto o Vedral ripple-carry usa mais CX e qubits auxiliares. O somador baseado em QFT não usa qubits auxiliares, mas , portanto, só é usado se não houver qubits auxiliares disponíveis.
O nome do plug-in é:HalfAdder.default , que pode ser usado como a chave em um HLSConfig para usar esse método com HighLevelSynthesis.
Se pelo menos um qubit auxiliar limpo estiver disponível, o HalfAdderSynthesisC04 é usado, caso contrário HalfAdderSynthesisD00.
O plug-in é compatível com as seguintes opções específicas do plug-in:
num_clean_ancillas: O número de qubits auxiliares limpos disponíveis.
Métodos
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Executa a síntese para a Operação fornecida.
Parâmetros
- high_level_object (Operation) – A operação a ser sintetizada em um objeto
DAGCircuitobjeto. - coupling_map (CouplingMap) – O mapa de acoplamento do backend, caso a síntese seja feita em um circuito físico.
- target (Target) – Um alvo que representa o backend de destino.
- qubits (list) – Lista de qubits sobre os quais a operação é definida, caso a síntese seja feita em um circuito físico.
- options - Kwargs opcionais adicionais específicos do método.
Retorna
A representação do circuito quântico da Operação
quando bem-sucedido, e None caso contrário.
Tipo de retorno