All Projects → mattvenn → flipflop_demo

mattvenn / flipflop_demo

Licence: Apache-2.0 license
Flip flop setup, hold & metastability explorer tool

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to flipflop demo

avalanche
A educational / research implementation of the Avalanche consensus algorithm written in Rust
Stars: ✭ 18 (-18.18%)
Mutual labels:  metastability
node-ngspice
A frontend for NgSpice. (Archived and no longer maintained)
Stars: ✭ 23 (+4.55%)
Mutual labels:  ngspice
caravel mpw-one
Caravel is a standard SoC hardness with on chip resources to control and read/write operations from a user-dedicated space.
Stars: ✭ 130 (+490.91%)
Mutual labels:  sky130

Interactive flip flop simulation

Made for a video about flip flops: https://www.youtube.com/watch?v=5PRuPVIjEcs

For the Zero to ASIC course

screenshot

To play with bundled data set from SKY130 df transmission gate flip flop

git clone https://github.com/mattvenn/flipflop_demo
cd flipflop_demo/spice
tar xf csv.tar.bz2
./wave.py

You will probably need to install the requirements

pip3 install -r spice/requirements.txt

If you want to build the GDS of the design

After install of openlane/pdk etc, copy this directory to $OPENLANE_ROOT/designs. Then:

cd $OPENLANE_ROOT
make mount
./flow.tcl -design flipflop_demo

Create the dataset yourself

This will simulate moving a data pulse through the setup and hold times of a d type flop.

make setup
make sim

schematic

Takes about 8 mins on my laptop.

Schematic generated with schemdraw with thanks to Proppy.

Fun facts

The flip flop is one of the largest and most complex standard cells. Here's the GDS layout:

gds

  • 26 fets, 13 CMOS pairs
  • 7 inverters
  • 2 tristate inverters
  • 2 transmission gates
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].