{"id":48627455,"url":"https://github.com/semify-eda/tristan","last_synced_at":"2026-04-09T04:33:55.958Z","repository":{"id":190372693,"uuid":"622969346","full_name":"semify-eda/tristan","owner":"semify-eda","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-17T14:47:41.000Z","size":31043,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-18T00:59:30.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"SystemVerilog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semify-eda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-04-03T12:38:31.000Z","updated_at":"2026-03-12T12:26:45.000Z","dependencies_parsed_at":"2023-08-24T10:54:46.860Z","dependency_job_id":"d3c7ee44-cb8f-45c0-bb0c-b59232b005a7","html_url":"https://github.com/semify-eda/tristan","commit_stats":null,"previous_names":["semify-eda/tristan"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/semify-eda/tristan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semify-eda%2Ftristan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semify-eda%2Ftristan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semify-eda%2Ftristan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semify-eda%2Ftristan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semify-eda","download_url":"https://codeload.github.com/semify-eda/tristan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semify-eda%2Ftristan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31586404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"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-04-09T04:33:55.738Z","updated_at":"2026-04-09T04:33:55.935Z","avatar_url":"https://github.com/semify-eda.png","language":"SystemVerilog","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tristan — RISC-V Subsystem\n\nThis directory contains the CV32E40X RISC-V core and all custom extensions.\n\n## Setup\n\n### Simulation tools (Verilator)\n\nVerilator is installed as part of the SmartWave toolchain:\n\n```bash\n./setup/install.sh    # from repo root — installs Verilator + Python\n```\n\nSource the environment to set `$WFG_ROOT` and `$TRISTAN_ROOT`:\n\n```bash\nsource sourceme.bash  # from repo root\n```\n\n### RISC-V Compiler Toolchain\n\nTo compile firmware you need the RISC-V GNU toolchain configured for `rv32ia`:\n\n```bash\ngit clone https://github.com/riscv-collab/riscv-gnu-toolchain\ncd riscv-gnu-toolchain\nsudo ./configure --prefix=/opt/riscv --with-arch=rv32ia\nmake\n```\n\nAdd `/opt/riscv/bin` and `/opt/riscv/riscv32-unknown-elf/bin` to your `PATH`.\n\n## Instructions\n\nFor cv32a60x core, a patch is needed, so vivado can read the file. We cannot push this to the submodule, as we use the official CVA6 repo directly instead of our own fork.\n\n    cp core/csr_regfile_patched.sv core/cv6/core/csr_regfile.sv\n\nCompile firmware:\n\n    make firmware\n\nRun the simulation (Verilator):\n\n    cd design/tristan\n    make\n\nRun a specific test:\n\n    make TESTCASE=\u003ctest_function_name\u003e\n\nClean simulation artifacts:\n\n    make clean\n\n## Simulation\n\nTop-level testbench for tristan is under `core/testbench` and simulation is ran in the root of the tristan module with:\n\n    make\n\n\nEach custom module has its own `sim/` directory:\n\n| Module | Directory |\n|---|---|\n| Co-processor (shifter) | `core/custom/coproc/sim/` |\n| OBI→Wishbone bridge | `core/custom/obi_wb_bridge/sim/` |\n| Wishbone RAM interface | `core/custom/wb_ram_interface/sim/` |\n\nRun any of these the same way:\n\n    cd core/custom/\u003cmodule\u003e/sim\n    make\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemify-eda%2Ftristan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemify-eda%2Ftristan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemify-eda%2Ftristan/lists"}