{"id":13787002,"url":"https://github.com/DegateCommunity/Degate","last_synced_at":"2025-05-12T00:30:47.103Z","repository":{"id":40541167,"uuid":"280168101","full_name":"DegateCommunity/Degate","owner":"DegateCommunity","description":"A modern and open-source cross-platform software for chips reverse engineering. ","archived":false,"fork":false,"pushed_at":"2024-11-25T12:40:22.000Z","size":690033,"stargazers_count":259,"open_issues_count":0,"forks_count":33,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2025-04-10T10:49:51.092Z","etag":null,"topics":["chips","cpp","cross-platform","cybersecurity","gui","multi-platform","reverse-engineering","security","security-tools","verilog","vhdl","vlsi"],"latest_commit_sha":null,"homepage":"https://www.degate.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DegateCommunity.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.TXT","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["DorianBDev"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-07-16T13:57:36.000Z","updated_at":"2025-03-31T05:38:13.000Z","dependencies_parsed_at":"2022-07-16T10:16:30.516Z","dependency_job_id":"eb7d24e7-c6d9-4e0a-a574-99c62eded4fa","html_url":"https://github.com/DegateCommunity/Degate","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DegateCommunity%2FDegate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DegateCommunity%2FDegate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DegateCommunity%2FDegate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DegateCommunity%2FDegate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DegateCommunity","download_url":"https://codeload.github.com/DegateCommunity/Degate/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253655760,"owners_count":21943068,"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":["chips","cpp","cross-platform","cybersecurity","gui","multi-platform","reverse-engineering","security","security-tools","verilog","vhdl","vlsi"],"created_at":"2024-08-03T20:00:24.532Z","updated_at":"2025-05-12T00:30:42.066Z","avatar_url":"https://github.com/DegateCommunity.png","language":"C++","readme":"[![DegateBanner](etc/degate_banner.png)](https://github.com/DegateCommunity)\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://gitter.im/DegateCommunity/Degate\" alt=\"Gitter\"\u003e\n        \u003cimg src=\"https://badges.gitter.im/DegateCommunity/Degate.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/DegateCommunity/Degate/blob/master/LICENSE.TXT\" alt=\"License\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/DegateCommunity/Degate\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/DegateCommunity/Degate/issues\" alt=\"GitHub Issues\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/issues/DegateCommunity/Degate\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/DegateCommunity/Degate/commits/develop\" alt=\"Last Commit\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/last-commit/DegateCommunity/Degate/develop\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/DegateCommunity/Degate/graphs/contributors\" alt=\"Contributors\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/contributors/DegateCommunity/Degate\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n        \u003cimg src=\"https://github.com/DegateCommunity/Degate/workflows/Windows%20build%20\u0026%20tests/badge.svg?branch=develop\" /\u003e\n        \u003cimg src=\"https://github.com/DegateCommunity/Degate/workflows/Linux%20build%20\u0026%20tests/badge.svg?branch=develop\" /\u003e\n        \u003cimg src=\"https://github.com/DegateCommunity/Degate/workflows/Mac%20build%20\u0026%20tests/badge.svg?branch=develop\" /\u003e\n\u003c/p\u003e\n\n\u0026nbsp;\n\nDegate is a multi-platform software for semi-automatic VLSI reverse engineering of digital logic in chips. This repository is a continuation of the original Degate project, with major changes and a new maintainer. For more please visit our [wiki](https://github.com/DegateCommunity/Degate/wiki) page and, if you want to chat, visit our [Gitter](https://gitter.im/DegateCommunity/Degate). The current main maintainer of Degate is [Dorian Bachelot](https://github.com/DorianBDev).\n\n\u0026nbsp;\n\n- [The project](#the-project)\n  - [Little history](#little-history)\n  - [Current status](#current-status)\n  - [Future](#future)\n  - [Documentation](#documentation)\n  - [Screenshots](#screenshots)\n- [Build](#build)\n  - [Dependencies](#dependencies)\n  - [Dependencies version](#dependencies-version)\n  - [Quick start](#quick-start)\n    - [For Linux (debian-like)](#for-linux-debian-like)\n    - [For Windows](#for-windows)\n    - [For MacOS](#for-macos)\n  - [Troubleshooting](#troubleshooting)\n- [Demo projects](#demo-projects)\n- [Contributing](#contributing)\n- [Localization](#localization)\n  - [Help us](#help-us)\n- [License](#license)\n\n\u0026nbsp;\n\n# The project\n\n## Little history\n\nDegate was actively developed by Martin Schobert, during his thesis, from 2008 to 2011. From 2013 to 2018, the project was mainly inactive and only got some small fixes over the years. At this time, the project was composed of a library (libGate) and a GUI interface (Degate).\n\nDegate has definitely a great potential, mainly because it is the only free and open-source software for hardware reverse engineering of chips, but never knew how to impose itself in the community. One possible reason for that is that Degate was known to be unstable and have impacting bugs in a first place. \n\nYou can browse the old Degate code [here](https://github.com/DegateCommunity/Degate/tree/old-degate) and the old repository here:\n\nhttps://github.com/nitram2342/degate\n\n## Current status\n\nThis project replace the old Degate, with a focus on Windows, Linux and MacOS support, getting better stability and general modernization. To achieve this the first step was to drop GTK, move to Qt and merge the lib and the GUI part of the project. Another objective was to minimize the number of dependencies, for now it uses only Boost and Qt and the mid-term objective is to only keep Qt and remove Boost.\n\nThe stability was the main problem of the old Degate and the main reason why the community hadn't already united around it. Regarding that, we want to have fewer bugs as possible, even if some functionality needs to be dropped (for the moment).\n\nFor the moment we have (as functionalities):\n- OpenGL 3 support (better performances and evolutive),\n- Qt (bunch of tools, open-source and easy cross-platform),\n- Multi-platform support (official support for Linux, Windows and MacOS),\n- Multi-language support (for now only English and French are implemented),\n- UTF-8 support for the workspace (the main area of the software, where you can work on high-definition chips images),\n- Backward compatibility of old Degate project format,\n- Project configuration (elements color, project name, size...),\n- Layers configuration (type, position, background image...),\n- Gate and gate configuration (gate template, gate instance, behavior with VHDL and Verilog support and debugging),\n- Via and via configuration,\n- EMarker (Electric Marker) and emarker configuration,\n- Interconnection (electric connection between electric objects),\n- Template matching (for gates),\n- Grid,\n- Via matching (can be tricky),\n- Wire matching (need a rework),\n- Sub-projects,\n- Annotation and annotation configuration,\n- Light and dark theme support,\n- Rule checks,\n- Modules,\n- Connection inspector,\n- And much more...\n\nWe dropped those functionalities from old Degate:\n- Collaborative tracking of wires and vias.\n\nA lot of bugs were fixed in this newer version, and it should be a better base to improve Degate even more in the future.\n\n## Future\n\nThere is still a lot to do in this new version, but all core functionalities (and even more) are implemented.\n\nFuture functionalities remaining to implement (not limited):\n- Explicit full netlist exporter (new feature),\n- More languages (new feature),\n- Integrated gate analyzer (new feature).\n\nFor a more precise roadmap see the [ROADMAP.md](https://github.com/DegateCommunity/Degate/blob/develop/ROADMAP.md) file.\n\n## Documentation\n\nThe official Degate documentation is available [here](https://degate.readthedocs.io). It is still under construction.\n\nAlso, you can find [here](https://github.com/DegateCommunity/Degate/wiki) the official Degate wiki. For example, you can find on it a list of tutorials for [Degate](https://github.com/DegateCommunity/Degate/wiki/Tutorials-:-Degate) and for [IC Reverse-Engineering](https://github.com/DegateCommunity/Degate/wiki/Tutorials-:-IC-Reverse-Engineering).\n\n## Screenshots\n\n![](etc/screenshots/1.png) \n\n![](etc/screenshots/2.png) \n\n![](etc/screenshots/3.png) \n\n![](etc/screenshots/4.png) \n\n# Build\n\n## Dependencies\n\nDegate has only 2 dependencies: Boost and Qt5.\n\nFor Boost, you can specify to CMake a custom path with: -DBOOST_ROOT=\"custom_path_to_boost\". Prebuilt versions for Windows are available here: https://sourceforge.net/projects/boost/files/boost-binaries/.\n\nFor Qt5, you can specify to CMake a custom path with: -DCMAKE_PREFIX_PATH=\"custom_path_to_qt\". For example, on Windows: Qt/VERSION/COMPILER/lib/cmake/Qt5. You can download Qt5 here: https://www.qt.io/download.\n\nFor Linux, don't forget to install the Qt5 add-on module: ImageFormats (you just need to have the package installed, it will be embedded in the Qt5::Core module after). See https://doc.qt.io/qt-5/qtimageformats-index.html. For example, on debian, the package is: qt5-image-formats-plugins. Same problem with linguist tools, for example for debian you need the package: qttools5-dev.\n\n## Dependencies version\n\n- CMake 3.12.0 or newer,\n- Boost 1.70.0 or newer,\n- Qt 5.14.0 or newer.\n\n## Quick start\n\nFirstly, clone this repository (help [here](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository)).\n\n### For Linux (debian-like)\n\nInstall dependencies:\n```console\n\u003e sudo apt-get install cmake g++ qt5-default qt5-image-formats-plugins qttools5-dev libboost-all-dev\n```\nBuild (in the 'build' folder, for example):\n```console\n\u003e cmake ..\n\u003e make\n```\nBinaries are in the 'build/out/bin' folder.\n\n### For Windows\n\nInstall dependencies:\n- CMake: https://cmake.org/download/\n- A compiler (for example MSVC): https://visualstudio.microsoft.com/\n- Qt: https://www.qt.io/download-qt-installer\n- Boost: https://sourceforge.net/projects/boost/files/boost-binaries/\n\nBuild (in the 'build' folder, for example):\n```console\n\u003e cmake .. -DBOOST_ROOT=\"path_to_boost\" -DCMAKE_PREFIX_PATH=\"path_to_qt\"\n\u003e cmake --build .\n```\nBinaries are in the 'build/out/bin' folder.\n\n### For MacOS\n\nInstall dependencies (we will use [Homebrew](https://brew.sh) here) :\n- XCode: https://apps.apple.com/app/xcode/id497799835\n\n```console\n\u003e brew install boost\n\u003e brew install qt\n```\n\nBuild (in the 'build' folder, for example):\n```console\n\u003e cmake ..\n\u003e cmake --build .\n```\nBinaries are in the 'build/out/bin' folder in the bundle \".app\" format.\n\n## Troubleshooting\n\n- `Could NOT find Boost (missing: filesystem system thread) (found version \"1.71.0\")`\n\n  This message may be caused by default options which force to use static and multithreaded version of the Boost library.\n  For example, this is a problem when installing Boost with [MacPorts](https://gitter.im/DegateCommunity/Degate?at=6085523d06e2e024e8752da5) on MacOS because the installed version [does not provide a static version by default](https://gitter.im/DegateCommunity/Degate?at=6085183db6a4714a29e65fbb).\n  To change these default options, you can use these two commands when calling cmake (ON/OFF):\n  ```console\n  \u003e cmake .. -DBoost_USE_STATIC_LIBS=OFF -DBoost_USE_MULTITHREADED=OFF\n  ```\n  \n  On Windows this can also be caused by an installed version of Boost that does not match your installed compiler.\n\n- `/etc/cmake/ConfigureFiles.cmake:25 (file): file failed to open for reading (No such file or directory): .../VERSION`\n\n  This message can appear for MacOS users. The problem comes from spaces in directory names, this is a bug from CMake.\n  Simply move your Degate folder to a file tree without spaces in directory names.\n\n# Demo projects\n\nYou can find demo projects [here](https://github.com/DegateCommunity/DegateDemoProjects).\n\n# Contributing\n\nRead the \"CONTRIBUTING.md\" file.\n\n# Localization\n\n## Help us\n\nFor now only English and French are supported, but if you wish you can help easily. Degate use Qt Linguist for translation, you can learn more here: https://doc.qt.io/qt-5/linguist-translators.html.\nYou can find .ts files (to use with Qt Linguist) in 'res/languages'.\n\nLanguages:\n- English (100%),\n- French (100%).\n- German (80%),\n- Russian (0%),\n- Spanish (0%),\n- Italian (0%),\n- Korean (0%).\n\nTo add a new language opens a new issue, or use our Crowdin project: https://crowdin.com/project/degate.\n\n# License\n\nDegate is released under the GNU General Public License Version 3. See LICENSE.TXT for details.\n\nThe current main maintainer of Degate is **Dorian Bachelot** \u003cdev@dorianb.net\u003e and the original Degate maintainer is **Martin Schobert** \u003cmartin@mailbeschleuniger.de\u003e.\n","funding_links":["https://github.com/sponsors/DorianBDev"],"categories":["Full Custom Design"],"sub_categories":["Verification"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDegateCommunity%2FDegate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDegateCommunity%2FDegate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDegateCommunity%2FDegate/lists"}