# Sponsored by

[![efabless](efabless.png)](https://efabless.com/)

# Team

Tiny Tapeout would not be possible without a lot of people helping. We would especially like to thank:

* Uri Shaked for [wokwi](https://wokwi.com/) development and lots more
* [Sylvain Munaut](https://twitter.com/tnt) for help with scan chain improvements
* [Mike Thompson](https://www.linkedin.com/in/michael-thompson-0a581a/) for verification expertise
* [Jix](https://twitter.com/jix_) for formal verification support
* [Proppy](https://twitter.com/proppy) for help with GitHub actions
* [Maximo Balestrini](https://twitter.com/maxiborga) for all the amazing renders and the interactive GDS viewer
* James Rosenthal for coming up with digital design examples
* All the people who took part in [TinyTapeout 01](/runs/tt01) and volunteered time to improve docs and test the flow
* The team at [YosysHQ](https://www.yosyshq.com/) and all the other open source EDA tool makers
* [Efabless](https://efabless.com/) for running the shuttles and providing OpenLane and sponsorship
* [Tim Ansell and Google](https://www.youtube.com/watch?v=EczW2IWdnOM) for supporting the open source silicon movement
* [Zero to ASIC course](https://zerotoasiccourse.com/) community for all your support
