All-docs

From Circuitopedia

Contents

Circuitopedia

Pictoral Depiction

See circuitopedia-structure.pdf for a pictoral depiction of current and proposed Circuitopedia structure.

Current Wiki Setup

In the current nice and easy setup of Circuitopedia, one can enter circuit information in text, equations and images in a Wiki framework. A structure is mantained by use of templates for categories and circuits. To add information is as easy as editting a Wiki. The imposed structure assures comfortable scaling-up. The idea is to keep it simple and easily edittable and also maintain a structure for scalability.

Categorization of Circuits

Analog/RF circuits are used for many different purposes, built in different technologies (MOS/BJT/SoI, etc.) and occupy different level in the ASIC design flow, for e.g., a PLL is a system-level block, while an opamp is cell-level and a current-mirror will be considered a part of a cell or a cell in itself. It thus becomes a challenge as to how to categorize them in a structured manner and which categorization goes in which level of the hierarchy.

We can begin with one structure and start building-up the repository of circuits. Meanwhile we can think and reflect more about a logical and comprehensible structure for the circuit directory. The good news is that all the circuit pages created can be directly used in the new structure we come up with without much hassle. Thus beginning with one structure and then changing it later doesn't mean wasted effort at all. This also points towards having multiple structures of organization pointing to the same circuit pages.

We have taken this approach for now for Circuit-O-pedia and started with a structure, which we could iterate upon later. The structure right now is roughly:

Level 1: Functionality

Level 2: Broad Implementation categories

Level 3: Technology

Level 4: Circuit


The level of the circuit in ASIC design flow is annotated in the circuit blurb on the circuit page. A hierarchical decomposition of the circuit is included too, which is discussed under [].

Need for moderators: Each Level 1 category is in need of a moderator. The moderator is an expert in the field and helps in deciding the sub-categorizations an customizes them according to the need of the field. He can also modify the template (see []) for adding circuit knowledge for his field. He discusses with other moderators, if he thinks the template changes have a universal appeal and should be incorporated widely across categories. He also gets into discussion with contributors (on being mailed) to refine or re-structure categories.

For being successful, Circuitopedia needs moderators. The criteria and methodology to become a moderator is xxx.

Hierarchical Decomposition

System-level circuits can be broken into cell-level circuits, which can be further broken to smaller circuits and (probably) at the last level of hierarchy, resides the transistor/passive components. For instance, an ADC can be broken into amplifiers, intergators, etc., amplifier can be broken into opamp and passive components; a two stage opamp can be broken into a current mirror, differential stage, a second common source stage with active load; the differential stage can be broken into two common-source amplifiers. There is renewed interest in hierarchical decomposition and understanding for facilitating good system-level design. How to intregate hierarchical decomposition of circuits in Circuitopedia leads to the following questions:

How to represent hierarchical decomposition of a circuit? Visual representation, netlist and sub-circuits, other representation

How to link up circuits in circuitopedia for easy traversal of the hierarchy?

How to have formats and methods for conveniant entry of hierarchy?

These questions needs to be answered and may even need a tool/script base to make entry and traversal easy. We encourage discussion on this. For now, Circuitopedia has adopted a simple hierarchical decomposition methodology which is illustrated for a two-stage opamp:


++Two stage Opamp

+++ First stage: Differential Amplifier

+++++ Simple PMOS common-source stage (Choices: PMOS Cascode stage, )

+++++ Simple NMOS current mirror (Choices: NMOS Cascode, Improved Swing Cascode, High Swing Cascode current mirror)

+++ Second stage: Simple CS NMOS stage with PMOS active load

+++++ Simple NMOS common source (Choices:Cascode)

+++++ PMOS based active load (Choices:Cascode)

The decomposition enlists different parts of the circuit and uses indentation to mark the level of the circuit in the hierarchy. All decomposed parts are links and lead to their respective pages. At each level, the other circuits which could possibly replace the block are also prescribed and links to them are provided. This allows to move horizontally at a single level in hierarchy. A second link can be provided which help traverse at the top of hierarchy with the replaced block. For instance, when at simple-opamp, browse to an opamp which will have the simple current mirror replaced by a improved-swing current mirror.

This approach is a simple first-order way of mantaining hierarchical information. The challenges/problems with this representation are following.

  1. The representation gives no information about how the decomposed blocks are connected. This information can be extracted from schematic and netlist
  2. Making links for all sub-blocks and choices is a challenge. The good news is that once you are at a block which is already enlisted, you don't need to decompose further. You just link to the other block and its hierarchical decomposition will cover-up from there. However, cross-linking is not as easy as said. Each time a new circuit is added, all circuits which use it as a block or a choice need to be updated. Who in the community takes care of this?

For now, we follow the hierarchical structure mentioned above. We want to discuss this is in more depth and make a transition one-day to a better setup.

What and how of process models



Why Circuitopedia: Designer's View

The Naive Hypothesis

  • Together, let's make analog/RF circuit knowledge reusable.
  • Put in your knowledge on Circuitopedia and tap the collective knowledge of other designers.
  • Get existing simulation resources for a circuit and add if you build your own. Save time and effort.
  • Get a community check-point to see if you are doing it right and help in evolution of standards.
  • Easily traverse through hierarchical decompositions of circuits and do better system level design.
  • Make analog design better, faster, easier and intellectually more stimulating.

A more serious thought-basis

The design process: An art

Analog circuit design is considered an art. Why so? Because every circuit topology is a new system in itself with beautiful and interesting emergent properties resulting from an interconnection of non-linear and linear devices. Though the basic principles of the elements are well-understood (probably, not any more at 65nm) and can be stated compactly, the emergent properties of each topology is different, not always completely captured in math and understood by different people differently. Also, the problem of sizing a circuit for given specifications not being invertible make the design process heuristic. Layout adds another level of complexity. This makes analog design an art form. Every designer does it differently!


The nature of the field has kept the intellectual quotient high, but greatly hampers any kind of re-use. This leads to long design cycles, re-calculation, re-discovery of design principles, also sub-optimal designs and failures. But now we can re-use this knowledge using the fabric of World-Wide-Web which connects all of us. We can all contribute to and learn from a universally accessible resource-pool, leading to reuse! Here is the new picture of the circuit world:


A new stimulating intellectual Environment: How interesting will it be to share more than one perspective to understand a circuit. You will have a design methodology, someone else will have a different one. Both of them will be on Circuitopedia. Is there something you were missing which the other one covered or vice-versa. Can the mutliple views now lead to a different methodology? The rule is not to start from scratch and reinvent, but get a starting point for the design methodology! Same goes for layouts.. Leading to a new stimulating intellectual environment.


Reusable equations in various forms: Writing equations for circuits is generally a mess. Symbolic-analyzers have failed to come up with anything which is human-comprehensible. When we do it, we approximate, but where to approximate and how much to? We all end up using different equations. And then the time overhead... How about when Harry calculates these equations, Pankaj could use them. There is anyway no fun or intellectual satisfaction in solving a circuit for its equations... Pankaj can use these equations, put his version up if unsatisfied and put a comment on why the approximation does not work. Also, if Harry was not concerned about the noise in the circuit, but Pankaj is, now it is Pankaj's chance to contribute. This dynamics now builds a database of equations for different topologies with different level of accuracy and comprehensibility. We re-use, help each other and build on top of this.


Hierarchy, decomposition and System-level Design: Circuits for analog design are hierarchically linked. An ADC contains amplifiers; amplifiers contain opamp and passive components; simple opamp contains a differential stage and a single-ended amplifier; the amplifiers contain current mirrors and common-source stage. This hierarchy decomposes the problem into pieces for easier design and help explore alternative topologies. Circuitopedia links up circuits by their hierarchical decomposition. Now you could choose to replace a simple current mirror with a cascode in an opamp and quickly traverse to the new resultant opamp. Properties and features of lower-level blocks would inform which one to choose for a higher-level block. Preserving hierachies, traversing across topologies, comparing topologies, inventing topologies (by replacing sub-circuits) and making a wise decision for system level design will have a new meaning with Circuitopedia.


The return of analog?: This is a bold claim to make, but isn't it true that apart from some minor reasons, the win of digital over analog has been largely due to its re-usability and low time-to-market (priority 1 in SOC industry). Put another way, even if we design extremely efficient analog circuits, analog circuits cannot become ubiquitous, till they can be designed quickly and without failures. To deliver the promise of their efficiency (which showed-up with neuromorphic circuits and sub-threshold circuits), we need to emancipate analog design from long design cycles and design failures. Circuitopedia can facilitate this just by straightforward cooperation and sharing among analog designers. The knowledge to design good analog circuits fast is there, it just needs to be shared.


The design resources: A mess

How much fun is it to draw the schematic of a 40 transistor circuit, or worse still writing its netlist. Are you ever confused whether the expression you wrote to measure settling-time is correct, are you missing on anything which you should check, or what about the phase margin, or you are unsure about the corners to check.


Circuitopedia is a answer to lot of these time-consuming and non-standardized ways of doing circuit simulation. Circuitopedia apart from circuit knowledge also contains the simulation resources. You can find the netlist of your circuit here and if it is not, please do not forget to put one in here when you make it. It will save Harry trouble next time he wants to do the same circuit. Also, the way to measure circuit specifications for various SPICE packaging is included on Circuitopedia. We believe as more and more analog designers use Circuitopedia standards would emerge to measure circuit specifications. Again leading to fast and error-free design.

If there are other circuit simulation resources, which Circuitopedia doesn't include, let us know and we will have them incorporated in Circuitopedia. Also read the later prospects of Circuitopedia to become a much stronger vehicle for CAD software here.

Why Circuitopedia: CAD View


Note: This was first written for DAC-2007, Wild and Crazy Ideas Session. The authors are Varun Aggarwal and Una-May O'Reilly. The article is reproduced in its original form. CANDI has been now re-christened as Circuitopedia.


Is World Wide Web the solution to the unrelenting analog design automation?

In the last few years, World Wide Web has ushered a revolution by becoming a collaborative knowledge-base and an interface for open-source software development and use. Can WWW provide a solution to simplifying and automating analog design, which has been considered art-form and even black-magic, a magic few people know!

We think the answer is YES. Rewind to the 70’s, the art-form reputation of analog enthused AI practitioners like Stallman and Sussman to make a system to heuristically solve circuits. This was followed by tools like IDAC, OASYS and BLADES, which were knowledge-intensive systems and used human-design knowledge to code static design plans and rules for expert systems. Though these systems were very impressive, they just didn’t scale since each topology (and even at times technology) needed new design knowledge, a traditional problem with all Knowledge-based Systems.

Fast-forward to the 90’s, optimization was identified as a method to size circuits using circuit equations. Again, getting accurate equations didn’t completely yield to automation and the approach remained knowledge-hungry and severely bottlenecked for transient and non-linear equations. Riding on the back of Moore’s Law, came in simulation-based approaches, since SPICE was now fast enough to be run inside the loop of optimization, eliminating inaccuracies and need for knowledge. The simulation approach was general, but definitely slower than having an expert system for a particular circuit. Moore’s law may not help any further, for shrinking technology is not only giving more computation power, but also asking for more of it due to more complex simulations. More recently, came in geometric programming, which was very quick due to structural approach of optimization, but once again knocked for knowledge, circuit equations in posynomial form.

The need for knowledge has remained a bottleneck, leading to surrender to simulation-based approaches, which also infact could be sped-up by use of knowledge. Similarly, are students of analog-design starved for knowledge, for knowledge is been scattered into grey-areas of a few, making the learning-curve very slow.

The WWW now offers an opportunity to make analog design fast and easy, to allow it to manifest in its full glory (than playing an old-dwindling father to digital). Come 2000, a knowledge base like Wikipedia is put together entirely by a distributed community, the apache web-server is developed distributedly on the web. Knowledge-based AI is featuring a return, semantic web allowing knowledge representation for expert systems, and Minsky’s Open Mind Common Sense Project attracting more than 70,000 responses. Technical communities have also realized the potential of this, with collaborative knowledge base like Open-Wetware and Bio-Bricks Foundation.

We envision CANDI, a knowledge-base and integrated software environment for analog design. The spirit of CANDI with all the nut and bolts is captured in Figure 1. The knowledge vertical accumulates knowledge for both manual-sizing and automatic sizing approaches. Knowledge Representation is an important issue for different approaches need knowledge in different forms such as posynomials, expert rules, textual design plans for humans, equations, etc. Creating templates for knowledge gathering, which minimize effort and repeatability for user, allow easy conversion across multiple uses is the first task for the knowledge-base. The knowledge-base shall then evolve for itself, getting used/contributed by analog designers, analog design classes in universities, etc.

A complementary, but important vertical is that of an integrated software environment, which directly plugs in the knowledge created on web. These two verticals together can give an end-to-end solution for enabling both manual and automatic approaches of analog design. One of the most interesting emergent effects out of CANDI will be the symbiosis of manual and automatic approaches, as they would inform each other and create a nice partnership between man and machine.

For analog design to transcend the current limitations, CANDI is a necessity. How would it effect the interests of the SOC and CAD industry? Would analog design students stop thinking? The free-software-movement answers this well. We are still creating more and better software engineers even when plethora of free software/code available on the web. The transition has been from reinvention of wheel every time to build the car structure over the wheel. Has the software-services or software product companies died? No, not at all! CANDI would simply make the design cycles shorter for all and create a higher-level playing field for all SOC companies, there will be now a strata of knowledge available for all and innovation would be needed at a higher level. The CAD industry would be in a mood to rejoice, for their tools will be used since the knowledge to plug-in is available online. And again, CANDI would just create a new level playing field, there will be tools and solutions specialized enough to get out of the domain of CANDI.

Thus, we call upon all from academia and industry to come together to make CANDI reality and unleash the power of analog design.

The vision for future

Proposed Java based Entry tool

Given the huge advantage of ease of editting, the wiki-based approach has a few disadvantages.

  • There is non-standardized entry of information, as in the way schematics, equations, netlists, scripts for specification measurements, etc. are stored. This makes it hard to link this information directly to CAD tools for say, netlisting, simulation, modeling, optimization, etc. Manual steps will be needed to take this information to CAD software.
  • Secondly, annotation and reference to heirarchy in the current setup is not ideal (See Hierarchy). The current setup is not easy to maintain and also does not contain complete information about the hierarchical decomposition of the circuit.
  • Also, in the current model, schematic entry is not easy.

The need for standardized entry of circuit schematic, knowledge and annotation of hierarchy, one needs to create a structured library for this. For instance, this could be XML representation of circuit schematics, models, annotation of hierarchy in XML tags, netlisting capability from schematics and standards to store other information. This would be the way in which data is stored, which could then be easily linked up with CAD software.

To facilitate this, we need a circuit entry tool which could capture this information online from the user. In such a tool, one would be able to enter schematic by building it graphically, use already existing libraries entered by other users, annotate hierarchy and use sub-circuits from the library. The user will be able to enter all other information in standardized ways in the tool, which will be stored in a database on Circuitopedia. This information could then easily tied with the CAD software.

This tool will solve the issues with the current Wiki model.

Need for help

We are looking for help for design of the proposed java-based circuit entry tool. We already have a starting point for it which comprises of a partially working java-based schematic entry tool. We want to put together a team to work on this tool as an Open Source Project. If you are interested to be a part, kindly send a mail to software [at] circuitopedia.org. Please include your name, profession, university/company and specific interest.