Coder Social home page Coder Social logo

wulffern / ciccreator Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 2.0 36.25 MB

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.

Home Page: http://wulffern.github.io/ciccreator

License: GNU General Public License v3.0

C++ 94.60% QMake 1.80% Makefile 1.92% C 0.28% Shell 0.43% Python 0.86% Dockerfile 0.11%
cad circuits design-tools eda electronics gpl

ciccreator's People

Contributors

wulffern avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

xlchan fredrief

ciccreator's Issues

Add connectivity routing

  1. Find all rects connected to a net, probably just need to iterate over instance ports and figure out who's connected where. Maybe make the graph when the ports are made?
  2. Use the sort option to figure out who should be on top, but how do I figure out where it starts? and what is the stop rectangle?

LayoutCell::addConnectivityRoute

Connectivity route is supposed to match with regular expressions the graphs that should be routed, however, it now makes a mistake.

  • Wrong: "C(P|N)I" will create one route that includes all rectangles
  • Correct: "C(P|N)I" should find CPI and CNI graphs and route two routes.

Add intermediate netlist and layout outputs to ciccreator

Intro

Currently ciccreator outputs a SPICE that can be used for LVS, however, there is always some mismatch between what is in the CDL (names of devices, types of devices), and what is needed to do netlist import. Should really try to make an intermediate output:

Layout output

Currently cic outputs .json files that contain the json dump of the Design object. This is used by cic-gui to load the generated output. Should rename this to .cicl (cic layout output)

Schematic output

Currently cic outputs .spi file and tries to use the device map in the technology map to adapt the spice. However, the CDL, SPICE import and spectre netlist probably need slightly different device definitions, thus I should make an intermediate format that easily can be parsed by a script (in my case Perl) to generate the different variants of SPICE.

InstanceCuts have no instance names

So cuts have no instance name in the cic file. I wonder if they should have that. I can't remember why I choose to leave the instance name empty

Add findRectangle method for top level connections

Searching for paths deep in the hierarchy works fine, but top level connections does not work, should search instances for ports matching description. Problem can be seen on IVTRIX1_CV where it can't find CN and C ports.

Port cic-gui to QGraphicsView

Currently cic-gui is using QWidget for drawing etc, however, it seems like QGraphicsView is a much better class for this.

Issue with LayoutRotateCell

Hi Carsten,

As I was playing around with ciccreator and running some tests, I kept getting segmentation faults when using the examples/routes.json.

The code crashes at the TEST_R and TEST_MY cells due to the LayoutRotateCell property. When I remove the field "class" : "Layout::LayoutRotateCell" it works all the way to the end, but there is no rotation to the resulting layout despite the "rotateAngle" : "R90" property.

I've tested with the master branch version and release 0.1.5 with same results. I'm compiling the software by running make on a Debian machine

Also, in the examples I have not seen any vias being generated, even on the SAR example. Is there a particular version of the tool for which the examples where created?

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.