/--------------------------------------------------------------------------------------\
| |
| Proton is a full feature hierarchical ASIC place and route system |
| Copyright (C) 2014 - 2018 efabless corporation |
| |
| This program is free software: you can redistribute it and/or modify |
| it under the terms of the GNU Affero General Public License |
| as published by the Free Software Foundation, Version 3. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public License |
| along with this program. If not, see <https://www.gnu.org/licenses/>. |
| |
| <https://github.com/efabless/proton/blob/master/LICENSE.txt/> |
| <https://www.gnu.org/licenses/agpl-3.0.en.html/> |
| |
\--------------------------------------------------------------------------------------/
Note : Electron is the fork of unmaintained open source code at https://github.com/efabless/proton. proton is released under AGPL3 license as listed in License.txt file. Since Efabless closed down in 2025, we are unable to confirm the ownership and hence assume proton code is in the public domain.
This is our attempt to bring Proton back to life as we were the original contributors. Our belief that proton was designed ground up since inception in a way that blends very well for Agentic era of chip design.
We have fixed some known bugs, improved installation using containers and enhanced its LEF/DEF parsers to handle advanced technology nodes.
If you are interested in enhancing electron please feel free to clone and contribute back. Also let us know of any bugs you find or ask for enhancements.
Original Readme text :
This is a framework for ASIC Place and Route. It uses other open source tools like Iverilog, Yosys and few inbuilt engines. Proton provides a platform to import and export chip data in standard formats ( LEF / DEF/ Verilog / GDS2 ). Proton is written in perl and uses many of the packages available on CPAN. The GUI is written in Perl-TK.
clone the latest code from this git repository. Install all the required packages and container stuff using Makefile provided in the INSTALL dir You will need to install Iverilog, Yosys separately on your system. Install the perl packages needed by proton from CPAN. set the following environment variables
export ELECTRON_HOME=/<your-install-dir>/electron
cd $ELECTRON_HOME
make
Proton can be invoked using the following commands export PATH=$ELECTRON_HOME:$PATH
: electron ===> launches electron in shell mode
: electron --nolog --win ===> launches electron in GUI mode
: electron --help ===> prints the launch help message
: electron -f run.tcl ===> executes the commands in run.tcl and returns to shell prompt
By default, proton open in non-gui mode. To open GUI from shell mode type "win" or "gui"
Most of the popular backend ASIC file formats are supported. LEF, DEF, RTL ( Verilog 2005) , gate-level verilog, Spef etc are supported.
Proton has the many of the features of commercial Place and Route tools. We are developing many more actively and ask for community help in giving us feedback and also pitchin to help develop new features Currently following features have been tested to work
import/read LEF(5.7) , DEF, gate level verilog ( hierarchical and flat), GDS2 export/write LEF, DEF, gate level verilog, GDS2
RTL Simulation
Gate level simulation
Synthesis
Interactive Floorplan
Hierarchical Floorplan and Partition Pin Assignment
Power Plan
Placement
Signal Routing
Proton can be used in following modes
digital block implementation
Hierarchical partitining
digital block modelling for use in mixed signal designs
Proton has been used on many designs in tapeout mode but requires some understanding of the steps of the flow. It is not a push button tool yet. It offers complete flexibility to manage the design data and in some cases can allow users to delete objects/ instances and nets that can cause design logic to change. It also has limitation on the size of design it can handle , mostly limited by the placement and routing engines used inside the tool. It can be worked around by using proton in a hierarchical flow.
Pure Digital and Mixed Signal designs are handled well in proton. It is not geared to handle Multi Billion transistor SOCs flat. But with some ingenuity, a large design can be pushed through proton system using hierarchical implementation flow.
Contact GitHub API Training Shop Blog About © 2016 GitHub, Inc. Terms Privacy Security Status Help