GithubHelp home page GithubHelp logo

seantbaker / systematic-design-notebooks Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 16.96 MB

A repository for Jupyter Notebooks that demo a systematic method for analog circuit design, based off of "Systematic Design of Analog CMOS Circuits" by Jespers & Murmann.

Home Page: https://seantbaker.github.io/systematic-design-notebooks/

Jupyter Notebook 99.72% Python 0.26% SourcePawn 0.02%
analog-design circuitdesign

systematic-design-notebooks's People

Contributors

seantbaker avatar

Stargazers

 avatar

Watchers

 avatar

systematic-design-notebooks's Issues

Add diagram showing flow from Notebook -> Schematic

If we built this out, we'd have some glue to tie together the Notebook and a matching Schematic. My initial thought is that we do our "design" in the Notebook, using lookup tables, then when we're done sizing everything we run some SKILL / Python+SkillBridge to update the devices in an associated schematic.

Some thoughts:

  • I think this lends itself to the idea of having schematic templates, i.e. there's a schematic for [ CS / SF / CG ] amplifiers, diff amps, current mirrors, etc. with pre-defined names for each device, and that schematic gets updated via some code that we run from the Notebook
  • Maybe a good place to prototype this is with plain netlists that I can simulate with Xyce?

List dependencies for the project

It would be helpful to have a list of dependencies, ideally in something like a requirements.txt file, so they can be automatically installed.

The list I have so far is:

scipy
pandas

I haven't gotten everything running yet, so I'm not sure if that's the complete list.

Also, I think there's a dependency on ../../Book-on-gm-ID-design-main/starter_kit. I tried grabbing it from: https://github.com/jarvis94/Gm-ID-starter-kit

But then I hit this error:

ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (18,) + inhomogeneous part.

More bokeh helper functions - color mapping, plotting lines

It's still a bunch of code in the Notebooks to setup color maps for plots, so I should bundle that together into a function.

Same story with plotting lines - at the least, we probably want to bundle together the line and scatter plot functions, so users have an easy way to just plot a line with or without markers.

Better default behavior for pretty_table formatting

Right now, if a user doesn't pass in a string or dict for the col_formats argument, we use a default dictionary of {column name: formatting}.

But, what if users want to format a specific column, and don't care much about the rest? We shouldn't toss out all of the other default formats, like we do now; we should only override the format(s) supplied by the user.

Add support for transposed pretty tables

This is a tricky one - once we apply .style() to a DataFrame, we can't transpose it.

But if we transpose it first, we can't apply .format() the way we would if it weren't transposed, because .format() is looking for column header names which have become indices after transposing.

Maybe the way to do this is to have a separate pretty_table_transpose function, where we convert the arguments we'd pass into .format() into something that can be applied to indices, like a pd.IndexSlice() object.

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.