Skip to content

aziesemer/astran

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASTRAN

ASTRAN is an acronym for Automatic Synthesis of Transistor Networks. It is a free, open source, physical synthesis framework for Mac and Linux, developed in the microelectronics group (GME) of the Universidade Federal do Rio Grande do Sul (UFRGS), with financial support from CAPES.

It supports automatic layout generation of CMOS cells from a transistor level netlist description in SPICE format. Area overhead compared to high quality hand-made standard-cells layouts is 3.7% on average. Its functionality is being extended to produce complete circuit layouts. Features include transistor sizing, floorplanning, cell placement, and routing. The framework is very modular and new contributions to this project are welcome.

Astran

Features:

  • ASTRAN 3 is under active development and supports 45+nm technology rules (including freePDK45) like: redundant diff contacts, conditional design rules (metal/poly/diff enclosure of contacts, gate extension on diff, diff to gate spacing, metal/poly spacing on dense line-ends), minimum area,...
  • It generates all kinds of logic cells, including non-complementary as PTL;
  • Cell instances can be individually sized before generation to reduce delay;
  • Cell layout generation flow includes: transistor folding, 1-D transistor placement (using Threshold Accepting metaheuristic), intracell routing (using pathfinder and iterated 1-steiner algorithms) and 2-D layout compaction (using ILP);
  • Layouts can be saved in CIF, GDSII and LEF formats. It can also be exported to Cadence ICFB and loaded into Virtuoso;
  • Structural Verilog is supported once you provide a Spice description of each cell;
  • Includes a command line interpreter for increased flexibility, like the ability to run scripts;

Requirements:

  • C++ compiler with support to C++11;
  • Gurobi 5 (it has issues with newer versions, sometimes unfeasible solutions as obtained). It seems that is working normally again with Gurobi 9, according to some feedback. I did not have time to test it, but you may give it a try if you cannot find Gurobi 5.

There is a video tutorial that can be usefull. Any question about the tool, please, send me an email: amziesemerj (at) inf.ufrgs.br

If you are using ASTRAN, please cite: ISVLSI'14 or visit my profile for other works.

Building

  • On Linux

The following procedure was tested in Centos 5.11 and Ubuntu 14.04

git clone https://github.com/aziesemer/astran.git astran
cd astran/Astran
make
  • On Mac OSX

Read the INSTALL.txt file.

Environment (optional)

ASTRAN_PATH needs to point to the astran path.

Using

  • On Command Line

$Astran --shell

  • On GUI

Astran GUI