{"id":13537125,"url":"https://github.com/Xilinx/logicnets","last_synced_at":"2025-04-02T04:30:22.029Z","repository":{"id":46361719,"uuid":"348133040","full_name":"Xilinx/logicnets","owner":"Xilinx","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-12T11:12:39.000Z","size":99,"stargazers_count":81,"open_issues_count":10,"forks_count":26,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-03T02:32:24.693Z","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/Xilinx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-15T21:52:34.000Z","updated_at":"2024-08-28T18:51:10.000Z","dependencies_parsed_at":"2024-11-03T02:31:03.193Z","dependency_job_id":"677840a0-2ab8-40a8-8375-17003d3f41f3","html_url":"https://github.com/Xilinx/logicnets","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Flogicnets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Flogicnets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Flogicnets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xilinx%2Flogicnets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xilinx","download_url":"https://codeload.github.com/Xilinx/logicnets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246756718,"owners_count":20828751,"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":[],"created_at":"2024-08-01T09:00:55.356Z","updated_at":"2025-04-02T04:30:21.531Z","avatar_url":"https://github.com/Xilinx.png","language":"Python","readme":"# LogicNets: Co-Designed Neural Networks and Circuits for Extreme-Throughput Applications\n\nLogicNets is a methodology for designing, training and deploying sparse,\nquantized neural networks based on hardware building blocks.\nThey are able to achieve extremely high throughput and low latency on Xilinx FPGAs.\n\n## Description\n\nThis project provides a set of library components and examples to help you design,\ntrain and deploy your own LogicNets networks.\nNote, this is considered to be an \\'alpha\\' release: expect API changes and issues.\nYou can learn more about LogicNets from [this paper](https://arxiv.org/abs/2004.03021), or from the following YouTube videos:\n* [10-minute presentation at DATE'21](https://www.youtube.com/watch?v=xtWySQ-ehRw)\n* [20-minute presentation at FPL'20](https://www.youtube.com/watch?v=qCyK5v84jpI)\n\n\n## Prerequisites\n\n-   [Python\\\u003e=3](https://www.python.org/)\n-   [PyTorch](https://pytorch.org/)\n-   [Brevitas](https://github.com/Xilinx/brevitas)\n-   [Verilator](https://www.veripool.org/wiki/verilator)\n-   [PyVerilator](https://github.com/csail-csg/pyverilator)\n-   [oh-my-xilinx](https://bitbucket.org/maltanar/oh-my-xilinx/)\n-   [Vivado Design\n    Suite](https://www.xilinx.com/products/design-tools/vivado.html)\n\n## Installation\n\nThere are two main ways to install LogicNets:\n\n1.  Using [docker](https://www.docker.com/) (recommended)\n2.  Manually (advanced)\n\n### Docker Installation\n\nFollow the steps below to install LogicNets within a `docker` container:\n\n1.  Install [Vivado Design Suite](https://www.xilinx.com/products/design-tools/vivado.html)\n1.  Install [docker](https://www.docker.com/).\n1.  Clone the LogicNets repository using: `git clone git@github.com:Xilinx/logicnets.git`\n1.  Create an environment variable `VIVADO_SETTINGS_FILE` which points to the `settings64.sh` in your Vivado installation (e.g., `export VIVADO_SETTINGS_FILE=/path/to/Vivado/settings64.sh`)\n1.  (Optional): Set your `XILINXD_LICENSE_FILE` or `LM_LICENSE_FILE` variables to point to a specific license server\n1.  Run `./docker/run-docker.sh` from the root directory of the LogicNets repository\n1.  (Optional): Copy your Vivado license file over to the running docker container\n\nYou are now ready to run an example, browse to `/workspace/logicnets/examples/jet_substructure/` and start training a LogicNets network!\n\nNote, a license is not required to run any of the provided examples.\n\n### Manual Installation\n\nA manual installation is not recommended for beginners.\nWe will only provide limited support for people wishing to pursue a manual installation.\nPeople wanting to pursue a manual installation may want to look at the LogicNets Dockerfile,\nas this contains details for a full environmental setup (including the installation of dependencies of dependencies).\n\nThe basic steps for a manual installation are as follows:\n\n1.  Install [Vivado Design Suite](https://www.xilinx.com/products/design-tools/vivado.html)\n1.  Install `oh-my-xilinx` by cloning this [repository](https://bitbucket.org/maltanar/oh-my-xilinx.git) and creating the environment variable `OHMYXILINX` which points to its root directory (e.g., `export OHMYXILINX=/path/to/oh-my-xilinx`)\n     * `oh-my-xilinx` requires `zsh`, on Ubuntu, this can be installed as follows: `sudo apt-get install zsh`\n1.  Install `Nitro-Parts-lib-Xilinx` by cloning this [repository](https://github.com/dirjud/Nitro-Parts-lib-Xilinx.git) and creating the environment variable `NITROPARTSLIB` which points to its root directory (e.g., `export NITROPARTSLIB=/path/to/Nitro-Parts-lib-Xilinx`)\n1.  Install `verilator`, on Ubuntu, this can be done as follows: `sudo apt-get install verilator build-essential`\n1.  Install `python3`, `pytorch`, `brevitas` and `pyverilator` using `conda` and/or `pip` or your preferred method\n1.  Install `logicnets` using: `pip install --upgrade git+https://github.com/Xilinx/logicnets.git`\n\nAlternatively, instead of the last step you can clone the LogicNets repository and install as follows:\n\n```bash\npip install .\n```\n\nNote, to install the dependencies for all the examples, you can run the following:\n\n```bash\npip install .[example-all]\n```\n\n## Examples\n\nCurrently, we have the following examples, located in `./examples/`:\n* [Jet substructure classification](examples/jet_substructure/)\n* [Network intrusion detection](examples/cybersecurity/)\n\nMore examples coming soon.\n\n## Documentation\n\nDocumentation site coming soon.\n\n## Citation\n\nIf you find this work useful for your research, please consider citing\n[our paper](https://arxiv.org/abs/2004.03021) from FPL'20 below:\n\n```bibtex\n@inproceedings{umuroglu2020logicnets,\n  author = {Umuroglu, Yaman and Akhauri, Yash and Fraser, Nicholas J and Blott, Michaela},\n  booktitle = {Proceedings of the International Conference on Field-Programmable Logic and Applications},\n  title = {LogicNets: Co-Designed Neural Networks and Circuits for Extreme-Throughput Applications},\n  year = {2020},\n  pages = {291-297},\n  publisher = {IEEE Computer Society},\n  address = {Los Alamitos, CA, USA},\n  month = {sep}\n}\n```\n","funding_links":[],"categories":["Accelerators"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXilinx%2Flogicnets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FXilinx%2Flogicnets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXilinx%2Flogicnets/lists"}