/synthesis-primitives

Observing and optimizing synthesis of common bit manipulation operations for FPGA and ASIC

Primary LanguageSystemVerilog

Synthesis primitives

The document is divided into the following sections:

Each section contains a variety of RTL primitives and discusses them in terms of:

  • syntax
    • Verilog, SystemVerilog and VHDL syntax,
    • parameterization/generalization,
    • inference,
    • iterative algorithms,
    • loop unwinding and vectorization,
    • recursion,
  • simulation,
    • simulating combinational/sequential circuits,
    • achieving good coverage,
  • synthesis
    • timing/area complexity
    • timing/area/power optimizations/compromises,
    • parallel prefix network structures,
    • ASIC specific optimizations (flip-flops without reset, clock gating, ...),
    • FPGA specific optimizations (fast carry chains, LUT size, ...).

License

If not stated otherwise, the documents are published under under CC BY 4.0