{"id":51007668,"url":"https://github.com/chipfoundry/openframe_webinar_demo","last_synced_at":"2026-06-20T22:02:42.363Z","repository":{"id":337433253,"uuid":"1153594108","full_name":"chipfoundry/openframe_webinar_demo","owner":"chipfoundry","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-09T14:19:48.000Z","size":87805,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-09T18:35:29.834Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chipfoundry.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T13:33:58.000Z","updated_at":"2026-02-09T14:19:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chipfoundry/openframe_webinar_demo","commit_stats":null,"previous_names":["chipfoundry/openframe_webinar_demo"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/chipfoundry/openframe_webinar_demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fopenframe_webinar_demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fopenframe_webinar_demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fopenframe_webinar_demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fopenframe_webinar_demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chipfoundry","download_url":"https://codeload.github.com/chipfoundry/openframe_webinar_demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipfoundry%2Fopenframe_webinar_demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34586667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-06-20T22:02:41.643Z","updated_at":"2026-06-20T22:02:42.346Z","avatar_url":"https://github.com/chipfoundry.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://umsousercontent.com/lib_lnlnuhLgkYnZdkSC/hj0vk05j0kemus1i.png\" alt=\"ChipFoundry Logo\" height=\"140\" /\u003e\n\n[![Typing SVG](https://readme-typing-svg.demolab.com?font=Inter\u0026size=44\u0026duration=3000\u0026pause=600\u0026color=4C6EF5\u0026center=true\u0026vCenter=true\u0026width=1100\u0026lines=OpenFrame+User+Project+Template;OpenLane+%2B+ChipFoundry+Flow;Verification+and+Shuttle-Ready)](https://git.io/typing-svg)\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![ChipFoundry Marketplace](https://img.shields.io/badge/ChipFoundry-Marketplace-6E40C9.svg)](https://platform.chipfoundry.io/marketplace)\n\n\u003c/div\u003e\n\n## Table of Contents\n- [Overview](#overview)\n- [Documentation \u0026 Resources](#documentation--resources)\n- [Prerequisites](#prerequisites)\n- [Project Structure](#project-structure)\n- [Starting Your Project](#starting-your-project)\n- [Development Flow](#development-flow)\n- [Local Precheck](#local-precheck)\n- [Checklist for Shuttle Submission](#checklist-for-shuttle-submission)\n\n## Overview\nOpenFrame is a ChipFoundry project template that provides only a bare padframe (no integrated SoC), giving you a 15 mm² user area and 44 GPIOs to design your own custom chip. You are free to implement your design and directly connect it to the available GPIOs throught the pins provided on the openframe wrapper.\n\n---\n\n## Documentation \u0026 Resources\nFor detailed hardware specifications and design guidelines, refer to the following official documents:\n\n* **[ChipFoundry Marketplace](https://platform.chipfoundry.io/marketplace)**: Access additional IP blocks, EDA tools, and shuttle services.\n\n---\n\n## Prerequisites\nEnsure your environment meets the following requirements:\n\n1. **Docker** [Linux](https://docs.docker.com/desktop/setup/install/linux/ubuntu/) | [Windows](https://docs.docker.com/desktop/setup/install/windows-install/) | [Mac](https://docs.docker.com/desktop/setup/install/mac-install/)\n2. **Python 3.8+** with `pip`.\n3. **Git**: For repository management.\n\n---\n\n## Project Structure\nA successful OpenFrame project requires a specific directory layout for the automated tools to function:\n\n| Directory | Description |\n| :--- | :--- |\n| `openlane/` | Configuration files for hardening macros and the wrapper. |\n| `verilog/rtl/` | Source Verilog code for the project. |\n| `verilog/gl/` | Gate-level netlists (generated after hardening). |\n| `verilog/dv/` | Design Verification (cocotb and Verilog testbenches). |\n| `gds/` | Final GDSII binary files for fabrication. |\n| `lef/` | Library Exchange Format files for the macros. |\n\n---\n\n## Starting Your Project\n\n### 1. Repository Setup\nCreate a new repository based on the `openframe_user_project` template and clone it to your local machine:\n\n```bash\ngit clone \u003cyour-github-repo-URL\u003e\npip install chipfoundry-cli\ncd \u003cproject_name\u003e\n```\n\n### 2. Project Initialization\n\n\u003e [!IMPORTANT]\n\u003e Run this first! Initialize your project configuration:\n\n```bash\ncf init\n```\n\nThis creates `.cf/project.json` with project metadata. **This must be run before any other commands**\n\n### 3. Environment Setup\nInstall the ChipFoundry CLI tool and set up the local environment (PDKs, OpenLane, and OpenFrame):\n\n```bash\ncf setup\n```\n\nThe `cf setup` command installs:\n\n- OpenFrame: The OpenFrame harness template.\n- OpenLane: The RTL-to-GDS hardening flow.\n- PDK: Skywater 130nm process design kit.\n- Timing Scripts: For Static Timing Analysis (STA).\n\n---\n\n## Development Flow\n\n### Hardening the Design\nHardening is the process of synthesizing your RTL and performing Place \u0026 Route (P\u0026R) to create a GDSII layout.\n\n#### Macro Hardening\nCreate a subdirectory for each custom macro under `openlane/` containing your `config.json`.\n\n```bash\ncf harden --list         # List detected configurations\ncf harden \u003cmacro_name\u003e   # Harden a specific macro\n```\n\n#### Integration\nInstantiate your module(s) in `verilog/rtl/openframe_project_wrapper.v`.\n\nUpdate `openlane/openframe_project_wrapper/config.json` environment variables (`VERILOG_FILES_BLACKBOX`, `EXTRA_LEFS`, `EXTRA_GDS_FILES`) to point to your new macros.\n\n#### Wrapper Hardening\nFinalize the top-level user project:\n\n```bash\ncf harden openframe_project_wrapper\n```\n\n### Important Notes\n\n**Connecting to Power:**\n   - Ensure your design is connected to power using the power pins on the wrapper.\n   - Use the `vccd1_connection` and `vssd1_connection` macros, which contain the necessary vias and nets for power connections.\n\n### Verification\n\n#### 1. Simulation\nWe use cocotb for functional verification. Ensure your file lists are updated in `verilog/includes/`.\n\nRun RTL Simulation:\n\n```bash\ncf verify \u003ctest_name\u003e\n```\n\nRun Gate-Level (GL) Simulation:\n\n```bash\ncf verify \u003ctest_name\u003e --sim gl\n```\n\nRun all tests:\n\n```bash\ncf verify --all\n```\n\n---\n\n## Local Precheck\nBefore submitting your design for fabrication, run the local precheck to ensure it complies with all shuttle requirements:\n\n```bash\ncf precheck\n```\n\nYou can also run specific checks or disable LVS:\n\n```bash\ncf precheck --disable-lvs                    # Skip LVS check\ncf precheck --checks license --checks makefile  # Run specific checks only\n```\n---\n\n## Checklist for Shuttle Submission\n- [ ] Top-level macro is named openframe_project_wrapper.\n- [ ] Full Chip Simulation passes for both RTL and GL.\n- [ ] Hardened Macros are LVS and DRC clean.\n- [ ] openframe_project_wrapper matches the required pin order/template.\n- [ ] Design is properly connected to power (vccd1/vssd1).\n- [ ] Design passes the local cf precheck.\n- [ ] Documentation (this README) is updated with project-specific details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchipfoundry%2Fopenframe_webinar_demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchipfoundry%2Fopenframe_webinar_demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchipfoundry%2Fopenframe_webinar_demo/lists"}