<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Matthew Guthaus | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matthew-guthaus/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matthew-guthaus/index.xml" rel="self" type="application/rss+xml"/><description>Matthew Guthaus</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 07 Nov 2022 10:15:56 -0700</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>Matthew Guthaus</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matthew-guthaus/</link></image><item><title>OpenRAM</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openram/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openram/</guid><description>&lt;p>&lt;a href="https://github.com/VLSIDA/OpenRAM" target="_blank" rel="noopener">OpenRAM&lt;/a> is an award winning open-source Python framework to create the layout, netlists, timing and power models, placement and routing models, and other views necessary to use SRAMs in ASIC design. OpenRAM supports integration in both commercial and open-source flows with both predictive and fabricable technologies. Most recently, it has created memories that are included on all of the &lt;a href="https://efabless.com/open_shuttle_program/" target="_blank" rel="noopener">eFabless/Google/Skywater MPW tape-outs&lt;/a>.&lt;/p>
&lt;h3 id="replace-logging-framework-with-library">Replace logging framework with library&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>User Interfaces&lt;/code>, &lt;code>Python APIs&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>,&lt;a href="mailto:jcirimel@ucsc.edu">Jesse Cirimelli-Low&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Replace the custom logging framework in OpenRAM with &lt;a href="https://docs.python.org/3/library/logging.html" target="_blank" rel="noopener">Python logging&lt;/a> module. New logging should allow levels of detail as well as tags to enable/disable logging of particular features to aid debugging.&lt;/p>
&lt;h3 id="rom-generator">ROM generator&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Memories&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium/Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Use the OpenRAM API to generate a Read-Only Memory (ROM) file from an input hex file. Project
will automatically generate a Spice netlist, layout, Verilog model and timing characterization.&lt;/p>
&lt;h3 id="register-file-generator">Register File generator&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Memories&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium/Challenging&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Use the OpenRAM API to generate a Register File from standard library cells. Project
will automatically generate a Spice netlist, layout, Verilog model and timing characterization.&lt;/p>
&lt;h3 id="built-in-self-test-and-repair">Built-In Self Test and Repair&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Python&lt;/code>, &lt;code>Verilog&lt;/code>, &lt;code>Testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Medium/Challenging&lt;/li>
&lt;li>&lt;strong>Size:&lt;/strong> Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:bonal@ucsc.edu">Bugra Onal&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Finish integration of parameterized Verilog modeule to support Built-In-Self-Test and Repair
of OpenRAM memories using spare rows and columns in OpenRAM memories.&lt;/p>
&lt;h3 id="layout-verses-schematic-lvs-visualization">Layout verses Schematic (LVS) visualization&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics:&lt;/strong> &lt;code>VLSI Design Basics&lt;/code>, &lt;code>Python&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills:&lt;/strong> Python, VLSI, JSON&lt;/li>
&lt;li>&lt;strong>Difficulty:&lt;/strong> Easy/Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors:&lt;/strong> &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>,&lt;a href="mailto:jcirimel@ucsc.edu">Jesse Cirimelli-Low&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Create a visualization interface to debug layout verses schematic mismatches in &lt;a href="https://github.com/RTimothyEdwards/magic" target="_blank" rel="noopener">Magic&lt;/a> layout editor. Results will be parsed from a JSON output of &lt;a href="https://github.com/RTimothyEdwards/netgen" target="_blank" rel="noopener">Netgen&lt;/a>.&lt;/p></description></item><item><title>OpenROAD - A Complete, Autonomous RTL-GDSII Flow for VLSI Designs</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openroad/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/openroad/</guid><description>&lt;p>&lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> is a front-runner in open-source semiconductor design automation tools and know-how. OpenROAD reduces barriers of access and tool costs to democratize system and product innovation in silicon. The OpenROAD tool and flow provide an autonomous, no-human-in-the-loop, 24-hour RTL-GDSII capability to support low-overhead design exploration and implementation through tapeout. We welcome a diverse community of designers, researchers, enthusiasts and entrepreneurs who use and contribute to OpenROAD to make a far-reaching impact.
Our mission is to democratize and advance design automation of semiconductor devices through leadership, innovation, and collaboration.&lt;/p>
&lt;p>OpenROAD is the key enabler of successful Chip initiatives like the Google-sponsored &lt;a href="efabless.com">Efabless&lt;/a> that has made possible more than 150 successful tapeouts by a diverse and global user community. The OpenROAD project repository is &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">https://github.com/The-OpenROAD-Project/OpenROAD&lt;/a>.&lt;/p>
&lt;p>Design of static RAMs in VLSI designs for good performance and area is generally time-consuming. Memory compilers significantly reduce design time for complex analog and mixed-signal designs by allowing designers to explore, verify and configure multiple variants and hence select a design that is optimal for area and performance. This project requires the support of memory compilers to &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> based on popular PDKS such as those provided by &lt;a href="https://github.com/vlsida/openram" target="_blank" rel="noopener">OpenRAM&lt;/a>.&lt;/p>
&lt;h3 id="openlane-memory-design-macro-floorplanning">OpenLane Memory Design Macro Floorplanning&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Memory Compilers&lt;/code>, &lt;code>OpenRAM&lt;/code>, &lt;code>Programmable RAM&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, basic knowledge of memory design, VLSI technology, PDK, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:mehdi@umich.edu">Mehdi Saligane&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Improve and verify &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> design planning with OpenRAM memories. Specifically, this project will utilize the macro placer/floorplanner and resolve any issues for memory placement. Issues that will need to be addressed may include power supply connectivity, ability to rotate memory macros, and solving pin-access issues.&lt;/p>
&lt;h3 id="openlane-memory-design-timing-analysis">OpenLane Memory Design Timing Analysis&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Memory Compilers&lt;/code>, &lt;code>OpenRAM&lt;/code>, &lt;code>Programmable RAM&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, basic knowledge of memory design, VLSI technology, PDK, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:mehdi@umich.edu">Mehdi Saligane&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Improve and verify &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> Static Timing Analysis using OpenRAM generated library files. Specifically, this will include verifying setup/hold conditions as well as creating additional checks such as minimum period, minimum pulse width, etc. Also, the project will add timing information to Verilog behavioral model.&lt;/p>
&lt;h3 id="openlane-memory-macro-pdk-support">OpenLane Memory Macro PDK Support&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Memory Compilers&lt;/code>, &lt;code>OpenRAM&lt;/code>, &lt;code>Programmable RAM&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: python, basic knowledge of memory design, VLSI technology, PDK, Verilog&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>, &lt;a href="mailto:mehdi@umich.edu">Mehdi Saligane&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integrate and verify FreePDK45 OpenRAM memories with an &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> FreePDK45 design flow. OpenLane currently supports only Skywater 130nm PDK, but OpenROAD supports FreePDK45 (which is the same as Nangate45). This project will create a design using OpenRAM memories with the OpenLane flow using FreePDK45.&lt;/p>
&lt;h3 id="vlsi-power-planning-and-analysis">VLSI Power Planning and Analysis&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Power Planning for VLSI&lt;/code>, &lt;code>IR Drop Analysis&lt;/code>, &lt;code>Power grid Creation and Analysis&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, tcl, VLSI Layout&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: Mehdi Saligane &lt;a href="mailto:mehdi@umich.edu">mailto:mehdi@umich.edu&lt;/a>, Ming-Hung &lt;a href="mailto:minghung@umich.edu">mailto:minghung@umich.edu&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Take the existing power planning (pdngen.tcl) module of openroad and recode the functionality in C++ ensuring that all of the unit tests on the existing code pass correctly. Work with a senior member of the team at ARM. Ensure that designs created are of good quality for power routing and overall power consumption.&lt;/p>
&lt;h3 id="demos-and-tutorials">Demos and Tutorials&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Demo Development&lt;/code>, &lt;code>Documentation&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design flow, tcl, shell scripts, Documentation, Markdown&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>For &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a>, develop demos showing:
The OpenLane flow and highight key features
GUI visualizations
Design Explorations and Experiments
Different design styles and particular challenges&lt;/p>
&lt;h3 id="comprehensive-flow-testing">Comprehensive Flow Testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Testing&lt;/code>, &lt;code>Documentation&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design, tcl, shell scripts, Verilog, Layout&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium (175 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop detailed test plans to test the OpenLane flow to expand coverage and advanced features. Add open source designs to the regression test suite to improve tool quality and robustness. This includes design specification, configuration and creation of all necessary files for regression testing. Suggested sources : ICCAS benchmarks, opencores, LSOracle for synthesis flow option.&lt;/p>
&lt;h3 id="enhance-gui-features">Enhance GUI features&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>GUI&lt;/code>, &lt;code>Visualization&lt;/code>, &lt;code>User Interfaces&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Qt&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>For &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a>, develop and enhance visualizations for EDA data and algorithms in the OpenROAD GUI. Allow deeper understanding of the tool results for users and tool internals for developers.&lt;/p>
&lt;h3 id="automate-opendb-code-generation">Automate OpenDB code Generation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Database&lt;/code>, &lt;code>EDA&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, Python, JSON, Jinja templating&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="mailto:aspyrou@eng.ucsd.edu">Tom Spyrou&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>For &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a>- Automatic code generation for the OpenDB database which allows improvements to the data model with much less hand coding. Allow the generation of storage, serialization, and callback code from a custom schema description format.
r&lt;/p>
&lt;h3 id="implement-an-nlp-based-ai-bot-aimed-at-increasing-users-enhancing-usability-and-building-a-knowledge-base">Implement an NLP based AI bot aimed at increasing users, enhancing usability and building a knowledge base&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>AI&lt;/code>, &lt;code>ML&lt;/code>, &lt;code>Analytics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Python. ML libraries (e.g., Tensorflow, PyTorch)&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Medium or Large (175 or 350 hours)&lt;/li>
&lt;li>&lt;strong>Mentor&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/vitor-bandeira/">Vitor Bandeira&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/indira-iyer/">Indira Iyer&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a> project contains a storehouse of knowledge in it&amp;rsquo;s Github repositories within Issues and Pull requests. Additionally, project related slack channels also hold useful information in the form of questions and answers, problems and solutions in conversation threads. Implement an AI analytics bot that filters, selects relevant discussions and classifies/records them into useful documentation and actionable issues. This should also directly track, increase project usage and report outcome metrics.&lt;/p></description></item></channel></rss>