Lorina readers

The mockturtle library implements several reader callbacks that can be used with the lorina library. The header mockturtle/io/<format>_reader.hpp implements the reader callback <format>_reader.

template<typename Ntk>
class aiger_reader : public lorina::aiger_reader

Lorina reader callback for Aiger files.

Required network functions:

  • create_pi

  • create_po

  • get_constant

  • create_not

  • create_and

Optional network functions to support sequential networks:

  • create_ri

  • create_ro

Example

aig_network aig;
lorina::read_aiger( "file.aig", aiger_reader( aig ) );

mig_network mig;
lorina::read_aiger( "file.aig", aiger_reader( mig ) );

template<typename Ntk>
class bench_reader : public lorina::bench_reader

Lorina reader callback for BENCH files.

Required network functions:

  • create_pi

  • create_po

  • get_constant

  • create_node

Example

klut_network klut;
lorina::read_bench( "file.bench", bench_reader( klut ) );

template<typename Ntk>
class blif_reader : public lorina::blif_reader

Lorina reader callback for BLIF files.

Required network functions:

  • create_pi

  • create_po

  • create_node or create_cover_node

  • get_constant

Example .. code-block:: c++

klut_network klut; lorina::read_blif( “file.blif”, blif_reader( klut ) );

cover_network cover; lorina::read_blif( “file.blif”, blif_reader( cover ) );

template<typename Ntk>
class pla_reader : public lorina::pla_reader

Lorina reader callback for PLA files.

Required network functions:

  • create_pi

  • create_po

  • create_not

  • create_nary_and

  • create_nary_or

  • create_nary_xor

Example

aig_network aig;
lorina::read_pla( "file.pla", pla_reader( aig ) );

mig_network mig;
lorina::read_pla( "file.pla", pla_reader( mig ) );

template<typename Ntk>
class verilog_reader : public lorina::verilog_reader

Lorina reader callback for VERILOG files.

Required network functions:

  • create_pi

  • create_po

  • get_constant

  • create_not

  • create_and

  • create_or

  • create_xor

  • create_maj

Example

mig_network mig;
lorina::read_verilog( "file.v", verilog_reader( mig ) );

class genlib_reader : public lorina::genlib_reader

lorina callbacks for GENLIB files.

Example

std::vector<gate> gates;
lorina::read_genlib( "file.genlib", genlib_reader( gates ) );

class super_reader : public lorina::super_reader

lorina callbacks for SUPER files.

SUPER files can be generated by ABC with the command super.

Example

super_lib supergates_spec;
lorina::read_super( "file.super", super_reader( supergates_spec ) );