/ciccreator

Custom IC Creator (ciccreator) is a compiler that takes in a object definition file (JSON), a SPICE file, and a design rule file and outputs a compiled layout file. The default output format is JSON, optionally GDS.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Docker Image CI Documentation Status

ciccreator

Back in 2013 I started playing with the thought of generating a SAR ADC with a script, such that it would be easy to port between technologies. The prototype was written in Perl, and contained 16k lines of code. The Perl compiler is closed source, and not available outside NTNU. cIcCreator is the C++ version, it's been written from scratch to support the same input files as the Perl compiler, but with a vastly improved performance.

Documentation

Head over to wulffern.github.io/ciccreator or ciccreator.readthedocs.io

Master plan

✅ Create prototype of compiler in Perl that can compile SAR ADCs (Aug 2014)

✅ Tapeout SAR ADC in 28nm FDSOI (Jan 2015)

✅ Demonstrate effectiveness of compiled approach (ESSCIRC 2016,JSSC 2017) (Sept 2016, April 2017)

✅ Rewrite the compiler in C++ under a GPL license and compile equivalent GDS with Perl compiler (Nov 2016)

Compile and run, the easy version

Although it's possible to run "make" to compile ciccreator on most platforms, the compile does require QT. Head over to ciccreator-bin repository for latest binaries.

For simulation in Skywater 130 nm PDK, head over to aicex

Test

Have a look at the SAR

make esscirc 
make view 

Or the route tests

make routes
make viewroutes

Videos

Minecraft video - https://youtu.be/J9lhEt0f3Wk cIcCreator in action - https://youtu.be/hv9u9aQGHQc

Comments/Questions

Should you find issues, don't hesitate to add an issue on gitub.

Changelog

v0.1.5

  • Added verticalMultiplyVector to patterntile to simplify analog transistor generation
  • Route, RouteRing, Guard will be loaded as LayoutCell to fix view problem of cuts.
  • Fixed issue rotateAngle in LayoutRotateCell. Seems like QJsonValue is no longer automatically casted to QString.
  • removed GDS and SPICE output. Only *.cic will be supported from now on. Use cicpy to convert to other formats

v0.1.4

  • layoutcell: Added ability to route to rails. With addDirectedRoute one can do ["M1","AVSS","xa:S-|--rail_r_AVSS","strap"], which will strap all mosfet sources to right route rail. The rails are named rail_(t|b|r|l)_(NAME)
  • cic-gui: Increased step size for arrow keys
  • cic-gui: Added rubber band zoom.