{"id":19483108,"url":"https://github.com/mit-plv/hemiola","last_synced_at":"2025-04-25T16:31:45.258Z","repository":{"id":54870122,"uuid":"332270488","full_name":"mit-plv/hemiola","owner":"mit-plv","description":"A Coq framework to support structural design and proof of hardware cache-coherence protocols","archived":false,"fork":false,"pushed_at":"2022-05-07T04:43:04.000Z","size":5178,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2023-02-26T03:56:11.818Z","etag":null,"topics":["cache-coherence","coq","domain-specific-language","hardware-verification","proof-assistant"],"latest_commit_sha":null,"homepage":"","language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mit-plv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-23T17:39:51.000Z","updated_at":"2022-11-30T21:01:19.000Z","dependencies_parsed_at":"2022-08-14T05:11:04.439Z","dependency_job_id":null,"html_url":"https://github.com/mit-plv/hemiola","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-plv%2Fhemiola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-plv%2Fhemiola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-plv%2Fhemiola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mit-plv%2Fhemiola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mit-plv","download_url":"https://codeload.github.com/mit-plv/hemiola/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224007882,"owners_count":17240294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cache-coherence","coq","domain-specific-language","hardware-verification","proof-assistant"],"created_at":"2024-11-10T20:13:37.775Z","updated_at":"2024-11-10T20:13:38.735Z","avatar_url":"https://github.com/mit-plv.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"Hemiola: A Framework for Structural Design and Proof of Cache-Coherence Protocols\n=================================================================================\n\nRequirements\n------------\n\n### Basic\n\n- Coq 8.14.1 (https://coq.inria.fr/download) to machine-check all the proofs\n\n### Optional\n\n- Kami (https://github.com/mit-plv/kami/tree/master) to compile Hemiola protocols\n- OCaml 4.0.4 and Batteries Library for OCaml (2.5.2) to use the Kami-to-Bluespec transliterator\n- Bluespec compiler (https://github.com/B-Lang-org/bsc) to simulate or synthesize Bluespec code\n- To synthesize Bluespec code on FPGAs\n  + Connectal library (http://www.connectal.org/)\n  + Vivado 2015.4\n  + Xilinx Virtex-7 VC707 Evaluation Kit FPGA\n\nMakefiles\n---------\n\n- To machine-check the Coq proofs in Hemiola\n  + Check all the framework code: `make -j4` in `./src`\n  + Only the library code: `make lib` in `./src`\n- To compile Hemiola case-study: `make` in `./syn`\n  + The default source protocol is the 3-level noninclusive MESI protocol.\n  + It will generate `./syn/CC.bsv`.\n  + All the case-study protocols are precompiled in `./syn/integration`:\n    * `./syn/integration/CC_L1LL4`: the 2-level noninclusive MESI protocol\n    * `./syn/integration/CC_L1L2LL`: the 3-level noninclusive MESI protocol\n- To simulate a compiled protocol: `make` in `./syn/integration/sim`\n- To synthesize a compiled protocol: `make -j4 build.vc707g2` in `./syn/integration/syn`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmit-plv%2Fhemiola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmit-plv%2Fhemiola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmit-plv%2Fhemiola/lists"}