{"adoption": {"forks": 262, "observed_at": "2026-08-28T04:05:47.595135+00:00", "stars": 1875}, "canonical_url": "https://ross.abutalabs.com/products/serv", "card": {"archived": false, "artifact_type": "library", "description": "SERV - The SErial RISC-V CPU", "domain": ["embedded-systems", "hardware"], "enriched": true, "function": ["embedded", "programming-language"], "health_score": 95, "homepage": null, "language": "Verilog", "license": "ISC", "license_family": "permissive", "maturity": "active", "member_repos": ["olofk/serv"], "name": "olofk/serv", "platform": [], "pushed_at": "2026-08-25T12:38:55+00:00", "repo": "olofk/serv", "stars": 1875, "tags": ["risc-v", "cpu-core", "bit-serial", "fpga", "asic", "verilog", "hardware-design", "soc"], "topics": ["verilog", "fpga", "asic", "risc-v"], "urls": [], "use_cases": ["add a tiny RISC-V CPU to an FPGA design with minimal LUT usage", "integrate a soft core into an ASIC where gate count is critical", "run Zephyr RTOS on a minimal RISC-V SoC", "run many RISC-V cores in parallel on a single FPGA board", "learn how a bit-serial CPU works with gate-level documentation", "run the RISC-V compliance regression test suite"], "what_it_is": "SERV is an award-winning bit-serial RISC-V CPU core written in Verilog, claimed to be the world's smallest RISC-V CPU at around 200 LUTs on FPGAs and ~2.1kGE in CMOS. It is designed for integration into FPGA and ASIC designs where silicon real estate is at a premium, with extensive documentation and a reference SoC (Servant) for running Zephyr RTOS.", "when_to_avoid": ["you need high performance or fast execution, since bit-serial execution is very slow", "you need a full-featured application-class processor with caches and MMU", "you are not comfortable integrating Verilog RTL into your build flow"], "when_to_choose": ["you need a RISC-V core with the smallest possible footprint on FPGA or ASIC", "performance is not critical but area is at a premium", "you want well-documented, open-source (ISC) CPU core for hardware projects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/serv", "repo": "olofk/serv", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.595135+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.586731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f5540c3f06eba39469d597471753868851c498823efb1dd0964109a6b91d338", "fetched_at": "2026-08-28T04:05:47.595135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/olofk/serv"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 20}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2863, "days_push": 8, "days_rel": 322, "gap_med": 265, "n_releases_24m": 2}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}