Skip to content
LEF/DEF/Rsyn-based port of Iowa State's open-source FastRoute 4.1
Makefile Shell CMake
Branch: master
Clone or download
vvbandeira Merge branch 'dev'
* dev:
  Fix: illegal macro placement
  Revert "Revert "Error message on illegal macro placement""
  Fixed: metal in lef not used in def - track location problem
  Update documentation
  Comment pragma to remove compilation warning
  Update unit test file
  Separete scripts by type
  Use dynamic memory allocation
  Adding function to define max net degree through the API
  Use ln instead of cp
  Refactor make and cmake files
  Add checker for submodule in makefile
Latest commit dd29747 Aug 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
support Update unit test file Aug 15, 2019
.gitignore Use dynamic memory allocation Aug 15, 2019
.gitmodules Update .gitmodules Aug 14, 2019
CMakeLists.txt Refactor make and cmake files Aug 15, 2019
LICENSE Create LICENSE Jul 24, 2019 Update documentation Aug 15, 2019
makefile Merge branch 'scripts-update' into dev Aug 15, 2019


FastRoute4-lefdef is an open-source global router.

The algorithm base is from FastRoute4.1, and the underlying infrastructure comes from Rsyn

The FastRoute4.1 version was received from on June 15, 2019, with the BSD-3 open source license as given in the FastRoute website.

Rsyn version is based on commit 1087c918e4fa14db84fc3b4c91210db96b07bb4c and released under Apache License, Version 2.0 as given in its repository.

Any third party code such as Rsyn will clearly specify its license in each file and in this README. We ask contributors to seriously consider using the BSD-3 Licence.

Getting Started


  • GCC compiler
  • boost library
  • cmake3.1

How to Compile

git clone --recursive
cd FastRoute4-lefdef/
make PARALLEL=nthreads

NOTE: use PARALLEL=nthreads instead of -j nthreads

Basic Usage

Your command line to run FastRoute4-lefdef should look like this:

./FRlefdef --no-gui --script /path/to/script.rsyn

You can find a script example in third_party/rsyn/support/fastroute/example.rsyn

Script details

The basic format of a script to run FastRoute is shown below:

open "generic" {
	"lefFiles" : "example.lef",
	"defFiles" : "example.def"
run "rsyn.fastRoute" {"outfile" : "", "adjustment" : 0.X, "maxRoutingLayer" : Y};

FastRoute has three main parameters. These are:

  • outfile: name of the file with the generated guides
  • adjustment: percentage reduction in capacity of each edge in the global routing gridgraph
  • maxRoutingLayer: maximum (i.e., highest) routing layer available for FastRoute to use

If you need more than one LEF/DEF file, you can script for this case as:

open "generic" {
	"lefFiles" : ["example1.lef", "example2.lef", ..., "exampleN.lef"],
	"defFiles" : ["example1.def", "example2.def", ..., "exampleN.def"]
run "rsyn.fastRoute" {"outfile" : "", "adjustment" : 0.X, "maxRoutingLayer" : Y};

You can use either the absolute path or the relative path (relative to the script file) for LEF/DEF files.

Copyright (c) 2019, Federal University of Rio Grande do Sul (UFRGS) All rights reserved.

You can’t perform that action at this time.