JSON API

Every tool on this site is also an API: append &format=json to any tool URL and the result comes back as JSON. Same parameters as the web form (they're in the URL when you use the form, so you can build a request by copying your browser's address bar). Free, no key required — please be gentle (requests are rate-limited).

Example: generate a CRC module in CI

shell
curl -s 'https://libfpga.com/tools/crc-generator?preset=crc32&dwidth=8&format=json' \
  | python3 -c 'import json,sys; print(json.load(sys.stdin)["code"][0]["text"])' \
  > crc32_d8.v

Response shape

JSON
{
  "tool":   "crc-generator",
  "params": { ... the validated inputs that were used ... },
  "values": [ ["Polynomial", "0x04C11DB7 (top bit implicit)"], ... ],
  "notes":  [ "..." ],
  "code":   [ { "title": "Verilog", "lang": "verilog", "text": "module ..." } ],
  "table":  { "title": "...", "headers": [...], "rows": [[...]] }   // some tools
}

Invalid input returns HTTP 400 with {"error": "..."}. Out-of-range values are clamped and reported in "warnings".

Endpoints

ToolEndpoint
FIFO Depth Calculator /tools/fifo-depth?format=json
Parallel CRC Generator /tools/crc-generator?format=json
LFSR Generator /tools/lfsr-generator?format=json
Clock Divider Calculator /tools/clock-divider?format=json
UART Baud Rate Calculator /tools/uart-baud?format=json
Fixed-Point (Qm.n) Converter /tools/fixed-point?format=json
Gray Code Converter /tools/gray-code?format=json
Frequency / Period Converter /tools/timing-converter?format=json
FPGA Part Number Decoder /tools/part-number-decoder?format=json
Register Map / CSR Generator /tools/register-map?format=json
CDC Synchronizer Generator /tools/cdc-synchronizer?format=json
PLL / MMCM Calculator /tools/pll-calculator?format=json
FSM Skeleton Generator /tools/fsm-generator?format=json
Pinout to XDC / QSF Converter /tools/pinout-converter?format=json
Block RAM Estimator /tools/bram-estimator?format=json

Parameter names and defaults for each endpoint: open the tool page, set the form, press Calculate, and read the query string — or call the endpoint with no parameters to see the defaults echoed in params.