[ < Prev | Up | Next > ]   Node: Data Files

hexforge / data & API

Data & API

The site has no backend. Its “API” is a handful of static files served unchanged: the board matrix, the example set, the rejected-construct index and a release feed. The boards, reference and codes pages read them with a relative fetch; so can you.

PathFormatItemsContents
/api/boards.jsonJSON9+4nine boards and four devices with their resources
/api/examples.jsonJSON8the bundled examples with LUT4/FF/BRAM and clock
/api/rejected.jsonJSON16rejected constructs and warning codes
/api/refindex.jsonJSON65flat search index behind the reference search box
/data/boards.csvCSV9the board matrix as a flat table
/data/timing-report.txttext1a full hxta report for uart_loopback, as the tool prints it
/feed.xmlAtom9one entry per release

A board record

{
  "id": "fenwick-a2",
  "name": "Fenwick A2",
  "device": "T4-25K",
  "status": "full",
  "verified": "0.7.1",
  "config_mode": "spi-x1",
  "notes": "Needs --config-mode spi-x1; the default four-bit
            mode is wired differently here."
}

Every board points at a device by its part string, and the device carries the numbers (lut4, ff, bram, pll, io, bitstream_bytes). Keeping them separate means four boards that share the T4-25K do not repeat the resource figures four times, and cannot disagree.

Reading it

fetch("/api/boards.json")
  .then(r => r.json())
  .then(d => d.boards.filter(b => b.status === "full"));

# how many LUT4 does fenwick-a2's part have?
$ curl -s https://hexforge.cloud/api/boards.json \
  | jq '.devices[] | select(.part=="T4-25K") | .lut4'   # 24576

Stable points

[ < Prev | Up | Next > ]   Next node: NEWS
data & API · served static · boards · releases