<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>chip design | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/chip-design/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/chip-design/index.xml" rel="self" type="application/rss+xml"/><description>chip design</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Sun, 19 Jan 2025 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>chip design</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/chip-design/</link></image><item><title>OpenROAD - An Open-Source, Autonomous RTL-GDSII Flow for Chip Design</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/openroad/openroad/</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/openroad/openroad/</guid><description>&lt;p>The &lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> project is a non-profit project, originally funded by DARPA with the aim of creating open-source EDA tools; an Autonomous flow from RTL-GDSII that completes &amp;lt; 24 hrs, to lower cost and boost innovation in IC design. This project is now supported by &lt;a href="precisioninno.com">Precision Innovations&lt;/a>.&lt;/p>
&lt;p>OpenROAD massively scales and supports EWD (Education and Workforce Development) and supports a broad ecosystem making it a vital tool that supports a rapidly growing Semiconductor Industry.&lt;/p>
&lt;p>OpenROAD is the fastest onramp to gain knowledge, skills and create pathways for great career opportunities in chip design. You will develop important software and hardware design skills by contributing to these interesting projects. You will also have the opportunity to work with mentors from the OpenROAD project and other industry experts.&lt;/p>
&lt;p>We welcome a diverse community of designers, researchers, enthusiasts, software engineers and entrepreneurs to use and contribute to OpenROAD and make a far-reaching impact in the rapidly growing, global Semiconductor Industry.&lt;/p>
&lt;h3 id="improving-code-quality-in-openroad">Improving Code Quality in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Coding Best Practices in C++&lt;/code>, &lt;code>Code Quality Tooling&lt;/code>, &lt;code>Continuous Integration&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++&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>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/arthur-koucher/">Arthur Koucher&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>OpenROAD is a large and complex program. This project is to improve the code quality through resolving issues flagged by tools like Coverity and clang-tidy. New tools like the clang sanitizers ASAN/TSAN/UBSAN should also be set up and integrated with the Jenkins CI.&lt;/p>
&lt;h3 id="gui-testing-in-openroad">GUI Testing in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Testing&lt;/code>, &lt;code>Continuous Integration&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>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/matt-liberty/">Matt Liberty&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peter-gadfort/">Peter Gadfort&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>The OpenROAD GUI is a crucial set of functionality for users to see and investigate their design. GUI testing is specialized and rather different from standard unit testing. The GUI therefore needs improvements to its testing to cover both interaction and rendering. The GUI uses the Qt framework. An open-source testing tool like &lt;a href="https://github.com/faaxm/spix" target="_blank" rel="noopener">https://github.com/faaxm/spix&lt;/a> will be set up and key tests developed. This will provide the framework for all future testing.&lt;/p>
&lt;h3 id="rectilinear-floorplans-in-openroad">Rectilinear Floorplans in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Electronic Design Automation&lt;/code>, &lt;code>Algorithms&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: C++, data structures and algorithms&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 hours)&lt;/li>
&lt;li>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/eder-monteiro/">Eder Monteiro&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/augusto-berndt/">Augusto Berndt&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>OpenROAD supports block floorplans that are rectangular in shape. Some designs may require more complex shapes to fit. This project extends the tool to support rectilinear polygon shapes as floorplans. This will require upgrading data structures and algorithms in various parts of OpenROAD including floor plan generation, pin placement, and global placement.&lt;/p>
&lt;h3 id="lef-reader-and-database-enhancements-in-openroad">LEF Reader and Database Enhancements in OpenROAD&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Electronic Design Automation&lt;/code>, &lt;code>Database&lt;/code>, &lt;code>Parsing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Boost Spirit parsers, Database, C++&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>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/osama-hammad/">Osama Hammad&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/ethan-mahintorabi/">Ethan Mahintorabi&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>LEF (Library Exchange Format) is a standard format for describing physical design rules for integrated circuits. OpenROAD has support for many constructs but some newer ones for advanced process nodes are not supported. This project is to support parsing such information and storing in the OpenDB for use by the rest of the tool.&lt;/p>
&lt;h3 id="orassistant---llm-data-engineering-and-testing">ORAssistant - LLM Data Engineering and Testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Data Engineering&lt;/code>, &lt;code>Model Deployment&lt;/code>, &lt;code>Testing&lt;/code>, &lt;code>Full-Stack Development&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, database, evaluation, CI/CD, open-source or related software development, full-stack&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/jack-luar/">Jack Luar&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/palaniappan-r/">Palaniappan R&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project is aimed at enhancing robustness and accuracy for &lt;a href="https://woset-workshop.github.io/PDFs/2024/11_ORAssistant_A_Custom_RAG_ba.pdf" target="_blank" rel="noopener">OR Assistant&lt;/a>, the &lt;a href="https://github.com/The-OpenROAD-Project/ORAssistant" target="_blank" rel="noopener">conversational assistant for OpenROAD&lt;/a> through comprehensive testing and evaluation. You will work with members of the OpenROAD team and other researchers to enhance the existing dataset to cover a wide range of use cases to deliver accurate responses more efficiently. This project will focus on data engineering and benchmarking and you will collaborate on a project on the LLM model engineering. Tasks include: creating evaluation pipelines, building databases to gather feedback, improving CI/CD, writing documentation, and improving the backend and frontend services as needed (non-exhaustive). You will gain valuable experience and skills in understanding chip design flows and applications. Open to proposals from all levels of ML practitioners.&lt;/p>
&lt;h3 id="orassistant---llm-model-engineering">ORAssistant - LLM Model Engineering&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Model Architecture&lt;/code>, &lt;code>Model Deployment&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, prompt engineering, fine-tuning&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/jack-luar/">Jack Luar&lt;/a> &amp;amp; &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/palaniappan-r/">Palaniappan R&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project is aimed at enhancing robustness and accuracy for &lt;a href="https://woset-workshop.github.io/PDFs/2024/11_ORAssistant_A_Custom_RAG_ba.pdf" target="_blank" rel="noopener">OR Assistant&lt;/a>, the &lt;a href="https://github.com/The-OpenROAD-Project/ORAssistant" target="_blank" rel="noopener">conversational assistant for OpenROAD&lt;/a> through enhanced model architectures. You will work with members of the OpenROAD team and other researchers to explore alternate architectures beyond the existing RAG-based implementation. This project will focus on improving reliability and accuracy of the existing model architecture. You will collaborate on a tandem project on data engineering for OR assistant. Tasks include: reviewing and understanding the state-of-the-art in retrieval augmented generation, implementing best practices, caching prompts, improving relevance and accuracy metrics, writing documentation and improving the backend and frontend services as needed (non-exhaustive). You will gain valuable experience and skills in understanding chip design flows and applications. Open to proposals from all levels of ML practitioners.&lt;/p></description></item><item><title>OpenROAD - An Open-Source, Autonomous RTL-GDSII Flow for Chip Design</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/openroad/openroad/</link><pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/openroad/openroad/</guid><description>&lt;p>The &lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> project is a non-profit project, originally funded by DARPA with the aim of creating open-source EDA tools; an Autonomous flow from RTL-GDSII that completes &amp;lt; 24 hrs, to lower cost and boost innovation in IC design. This project is now supported by &lt;a href="precisioninno.com">Precision Innovations&lt;/a>.&lt;/p>
&lt;p>OpenROAD massively scales and supports EWD (Education and Workforce Development) and supports a broad ecosystem making it a vital tool that supports a rapidly growing Semiconductor Industry.&lt;/p>
&lt;p>OpenROAD is the fastest onramp to gain knowledge, skills and create pathways for great career opportunities in chip design. You will develop important software and hardware design skills by contributing to these interesting projects. You will also have the opportunity to work with mentors from the OpenROAD project and other industry experts.&lt;/p>
&lt;p>We welcome a diverse community of designers, researchers, enthusiasts, software engineers and entrepreneurs to use and contribute to OpenROAD and make a far-reaching impact in the rapidly growing, global Semiconductor Industry.&lt;/p>
&lt;h3 id="create-openroad-tutorials-and-videos">Create OpenROAD Tutorials and Videos&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Documentation&lt;/code>, &lt;code>Tutorials&lt;/code>, &lt;code>Videos&lt;/code>, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Video/audio recording and editing, training and education&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (350 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>Create short videos for training and course curriculum highlighting key features and flows in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>.&lt;/p>
&lt;h3 id="improve-the-openroad-autotuner-flow-and-documentation">Improve the OpenROAD AutoTuner Flow and documentation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>AutoTuner&lt;/code>, &lt;code>Design Exploration&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of ML for hyperparameter tuning, Cloud-based computation, Basic VLSI design and tools knowledge, python, C/C++&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Medium&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Large (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>Test, analyze and enhance the &lt;a href="https://openroad-flow-scripts.readthedocs.io/en/latest/user/InstructionsForAutoTuner.html" target="_blank" rel="noopener">AutoTuner&lt;/a> to improve usability, documentation and QoR. The Autotuner is an important tool in the OpenROAD flow - &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> for Chip design exploration that significantly reduces design time. You will use state-of-the-art ML tools to test the current tool exhaustively for good PPA (performance, power, area) results. You will also update existing documentation to reflect any changes to the tool and flow.&lt;/p>
&lt;h3 id="implement-a-memory-compiler-in-the-openroad-flow">Implement a memory compiler in the OpenROAD Flow&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>Memory Compiler&lt;/code>,&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Basic VLSI design and tools knowledge, python, tcl, C/C++, memory design a plus&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/matt-liberty/">Matt Liberty&lt;/a>, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/austin-rovinski/">Austin Rovinski&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Implement a memory compiler as part of the OpenROAD flow to improve the placement and layout efficiency of large, memory-intensive designs. You will start with an existing code base to develop this feature: &lt;a href="https://github.com/The-OpenROAD-Project-staging/OpenROAD/tree/dffram" target="_blank" rel="noopener">https://github.com/The-OpenROAD-Project-staging/OpenROAD/tree/dffram&lt;/a>
This is another option: &lt;a href="https://github.com/AUCOHL/DFFRAM" target="_blank" rel="noopener">https://github.com/AUCOHL/DFFRAM&lt;/a>
Enhance code to support DFFRAM support for the OpenROAD native flow, &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>.&lt;/p>
&lt;h3 id="integrate-a-tcl-and-python-linter">Integrate a tcl and python linter&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Linting&lt;/code>, &lt;code>Workflow&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: tcl, python, linting&lt;/li>
&lt;li>&lt;strong>Difficulty&lt;/strong>: Easy&lt;/li>
&lt;li>&lt;strong>Size&lt;/strong>: Small (90 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/austin-rovinski/">Austin Rovinski&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Integrate a tcl and python linter for tools in OpenROAD and &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> to enforce error checking, style and best practices.&lt;/p>
&lt;h3 id="llm-assistant-for-openroad---create-model-architecture-and-prototype">LLM assistant for OpenROAD - Create Model Architecture and Prototype&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Model Architecture&lt;/code>, &lt;code>Model Deployment&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, prompt engineering, fine-tuning&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/jack-luar/">Jack Luar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project involves the creation of a conversational assistant designed around &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a> to answer user queries. You will be working in tandem with members of the OpenROAD team and other researchers to deliver a final deployable prototype. You will focus on the design and implementation of modular LLM architectures. You will be experimenting through different architectures and justifying which approach works the best on our domain-specific data. Open to proposals from all levels of ML practitioners.&lt;/p>
&lt;h3 id="llm-assistant-for-openroad---data-engineering-and-testing">LLM assistant for OpenROAD - Data Engineering and testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Large Language Model&lt;/code>, &lt;code>Machine Learning&lt;/code>, &lt;code>Data Engineering&lt;/code>, &lt;code>Model Deployment&lt;/code>, &lt;code>Testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: large language model engineering, prompt engineering, fine-tuning&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/jack-luar/">Jack Luar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This project involves the creation of a conversational assistant designed around &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD" target="_blank" rel="noopener">OpenROAD&lt;/a> to answer user queries. You will be working in tandem with members of the OpenROAD team and other researchers to deliver a final deployable prototype. This project will focus on the data engineering portion of the project. This may include: training pipelines specifically tailored for fine-tuning LLM models, data annotation, preprocessing and augmentation. Open to proposals from all levels of ML practitioners.&lt;/p>
&lt;h3 id="create-unit-tests-for-openroad-tools">Create Unit tests for OpenROAD tools&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>unit testing&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Basic VLSI design and tools knowledge, python, tcl, C/C++, Github&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/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>You will build unit tests to test specific features of the OpenROAD tool which will become part of the regression test. Here is an example of a test for UPF support: &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/test/upf/mpd_aes.upf" target="_blank" rel="noopener">https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/test/upf/mpd_aes.upf&lt;/a>.
This is a great way to learn VLSI flow basics and the art of testing them for practical applications.&lt;/p></description></item><item><title>OpenRAM</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsc/openram/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/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="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="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jesse-cirimelli-low/">Jesse Cirimelli-Low&lt;/a>, &lt;a href="mailto:mrg@ucsc.edu">Matthew Guthaus&lt;/a>&lt;/li>
&lt;li>&lt;strong>Contributor(s):&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mahnoor-ismail/">Mahnoor Ismail&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 - An Open-Source, Autonomous RTL-GDSII Flow for VLSI Designs (2023)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/openroad/</link><pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre23/ucsd/openroad/</guid><description>&lt;p>The &lt;a href="https://theopenroadproject.org" target="_blank" rel="noopener">OpenROAD&lt;/a> project is a non-profit, DARPA-funded and Google sponsored project committed to creating low-cost and innovative Electronic Design Automation (EDA) tools and flows for IC design. Our mission is to democratize IC design, break down barriers of cost and access and mitigate schedule risk through native and open source innovation and collaboration with ecosystem partners. &lt;a href="https://github.com/The-OpenROAD-Project" target="_blank" rel="noopener">OpenROAD&lt;/a> provides an autonomous, no-human-in-the-loop, 24-hour, RTL-GDSII flow for fast ASIC design exploration, QoR estimation and physical implementation for a range of technologies above 12 nm. We welcome a diverse community of designers, researchers, enthusiasts, software engineers and entrepreneurs to use and contribute to OpenROAD and make a far-reaching impact. OpenROAD has been used in &amp;gt; 600 tapeouts across a range of ASIC applications with a rapidly growing and diverse user community.&lt;/p>
&lt;h3 id="enhance-openroad-gui-flow-manager">Enhance OpenROAD GUI Flow Manager&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="mailto:ethanmoon@google.com">Ethan Mahintorabi&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Develop custom features for analysis and visualizations in the [OpenROAD GUI] (&lt;a href="https://openroad.readthedocs.io/en/latest/main/src/gui/README.html" target="_blank" rel="noopener">https://openroad.readthedocs.io/en/latest/main/src/gui/README.html&lt;/a>) to support native and third party flows. These include &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>, &lt;a href="https://github.com/The-OpenROAD-Project/OpenLane" target="_blank" rel="noopener">OpenLane&lt;/a> and other third-party flows . Create documentation: commands, developer guide notes, tutorials to show GUI usage for supported flows.&lt;/p>
&lt;h3 id="profile-and-tune-openroad-flow-for-runtime-improvements">Profile and tune OpenROAD flow for Runtime improvements&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>OpenROAD-flow-scripts&lt;/code>, &lt;code>Flow Manager&lt;/code>, &lt;code>Runtime Optimization&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge about Computational resource optimization, Cloud-based computation, Basic VLSI design and tools knowledge&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:ethanmoon@google.com">Ethan Mahintorabi&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Test, analyze and develop verifiable and re-producible strategies to improve run times in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a>. These include optimizations of computational resources over the cloud, tuning of algorithmic and design flow parameters. Create test plans using existing or new designs to show runtime improvements.&lt;/p>
&lt;h3 id="update-openroad-documentation-and-tutorials">Update OpenROAD Documentation and Tutorials&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Documentation&lt;/code>, &lt;code>Tutorials&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 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/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;li>&lt;strong>Contributor(s)&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jack-luar/">Jack Luar&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Review and update missing documentation and tutorials in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> for existing and new features. Here is an example Tutorial link: &lt;a href="https://openroad-flow-scripts.readthedocs.io/en/latest/tutorials/FlowTutorial.html" target="_blank" rel="noopener">https://openroad-flow-scripts.readthedocs.io/en/latest/tutorials/FlowTutorial.html&lt;/a> for reference.&lt;/p>
&lt;h3 id="lef-and-liberty-model-testing">LEF and Liberty Model Testing&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Topics&lt;/strong>: &lt;code>Testing&lt;/code>, &lt;code>LEF&lt;/code>, &amp;lsquo;LIB&amp;rsquo;, &lt;code>VLSI design basics&lt;/code>&lt;/li>
&lt;li>&lt;strong>Skills&lt;/strong>: Knowledge of EDA tools, basics of VLSI design, lef and lib model abstracts, 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 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;/li>
&lt;/ul>
&lt;p>Test the accuracy of generated LIB and LEF models for signoff in &lt;a href="https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts" target="_blank" rel="noopener">OpenROAD-flow-scripts&lt;/a> for flat and hierarchical design flows. Build test cases to validate and add to the regression suite.&lt;/p></description></item><item><title>LiveHD (2022)</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/livehd/</link><pubDate>Mon, 07 Nov 2022 10:15:56 -0700</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre22/ucsc/livehd/</guid><description>&lt;p>Projects for &lt;a href="https://github.com/masc-ucsc/livehd" target="_blank" rel="noopener">LiveHD&lt;/a>. Lead Mentors: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/jose-renau/">Jose Renau&lt;/a> and &lt;a href="mailto:swang203@ucsc.edu">Sheng-Hong Wang&lt;/a>.&lt;/p>
&lt;h3 id="hif-tooling">HIF Tooling&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>HIF tooling&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Tools around Hardware Interchange Format (HIF) files&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/hif" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>HIF (&lt;a href="https://github.com/masc-ucsc/hif" target="_blank" rel="noopener">https://github.com/masc-ucsc/hif&lt;/a>) stands for Hardware Interchange Format.
It is designed to be a efficient binary representation with simple API that
allows to have generic graph and tree representations commonly used by hardware
tools. It is not designer to be a universal format, but rather a storate and
traversal format for hardware tools.&lt;/p>
&lt;p>LiveHD has 2 HIF interfaces, the tree (LNAST) and the graph (Lgraph). Both can
read/write HIF format. The idea of this project is to expand the hif repository
to create some small but useful tools around hif. Some projects:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>hif_diff + hif_patch: Create the equivalent of the diff/patch commands that
exist for text but for HIF files. Since the HIF files have a more clear
structure, some patches changes are more constrained or better understood
(IOs and dependences are explicit).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>hif_tree: Print the HIF hierarchy, somewhat similar to GNU tree but showing the HIF hieararchy.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>hif_grep: capacity to grep for some tokens and outout a hif file only with those. Thena hif_tree/hif_cat can show the contents.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="mockturtle">Mockturtle&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Mockturtle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Perform synthesis for graph in LiveHD using Mockturtle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17, synthesis&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#mockturtle" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>There are some issues with Mockturtle integration (new cells) and it is not using the latest Mockturtle library versions.
The goal is to use Mockturtle (&lt;a href="https://github.com/lsils/mockturtle" target="_blank" rel="noopener">https://github.com/lsils/mockturtle&lt;/a>) with LiveHD. The main characteristics:&lt;/p>
&lt;ul>
&lt;li>Use mockturtle to tmap to LUTs&lt;/li>
&lt;li>Use mockturtle to synthesize (optimize) logic&lt;/li>
&lt;li>Enable cut-rewrite as an option&lt;/li>
&lt;li>Enable hierarchy cross optimization (hier:true option)&lt;/li>
&lt;li>Use the graph labeling to find cluster to optimize&lt;/li>
&lt;li>Re-timing&lt;/li>
&lt;li>Map to LUTs only gates and non-wide arithmetic. E.g: 32bit add is not mapped to LUTS, but a 2-bit add is mapped.&lt;/li>
&lt;li>List of resources to not map:
&lt;ul>
&lt;li>Large ALUs. Large ALUs should have an OpenWare block (hardcoded in FPGAs and advanced adder options in ASIC)&lt;/li>
&lt;li>Multipliers and dividers&lt;/li>
&lt;li>Barrell shifters with not trivial shifts (1-2 bits) selectable at run-time&lt;/li>
&lt;li>memories, luts&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="query-shell">Query Shell&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Query Shell&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Create a console app that interacts with LiveHD to query parameters about designs&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#query-shell-not-lgshell-to-query-graphs" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;ul>
&lt;li>Based on replxx (like lgshell)&lt;/li>
&lt;li>Query bits, ports&amp;hellip; like
&lt;ul>
&lt;li>&lt;a href="https://github.com/rubund/netlist-analyzer" target="_blank" rel="noopener">https://github.com/rubund/netlist-analyzer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.jameswhanlon.com/querying-logical-paths-in-a-verilog-design.html" target="_blank" rel="noopener">https://www.jameswhanlon.com/querying-logical-paths-in-a-verilog-design.html&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>It would be cool if subsections (selected) parts can be visualized with something like &lt;a href="https://github.com/nturley/netlistsvg" target="_blank" rel="noopener">https://github.com/nturley/netlistsvg&lt;/a>&lt;/li>
&lt;li>The shell may be expanded to support simulation in the future&lt;/li>
&lt;li>Wavedrom/Duh dumps&lt;/li>
&lt;/ul>
&lt;p>Wavedrom and duh allows to dump bitfield information for structures. It would be interesting to explore to dump tables and bit
fields for Lgraph IOs, and structs/fields inside the module. It may be a way to integrate with the documentation generation.&lt;/p>
&lt;p>Example of queries: show path, show driver/sink of, do topo traversal,&amp;hellip;.&lt;/p>
&lt;p>As an interesting extension would be to have some simple embedded language (TCL or ChaiScript or ???) to control queries more
easily and allow to build functions/libraries.&lt;/p>
&lt;h3 id="lgraph-and-lnast-check-pass">Lgraph and LNAST check pass&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>Lgraph and LNAST check pass&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Create a pass that check the integrity/correctness of Lgraph and LNAST&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Large 350 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#lgraph-and-lnast-check-pass" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Create a pass that checks that the Lgraph (and/or LNAST) is semantically
correct. The LNAST already has quite a few tests (pass.semantic), but it can be
further expanded. Some checks:&lt;/p>
&lt;ul>
&lt;li>No combinational loops&lt;/li>
&lt;li>No mismatch in bit widths&lt;/li>
&lt;li>No disconnected nodes&lt;/li>
&lt;li>Check for inefficient splits (do not split buses that can be combined)&lt;/li>
&lt;li>Transformations stages should not drop names if same net is preserved&lt;/li>
&lt;li>No writes in LNAST that are never read&lt;/li>
&lt;li>All the edges are possible. E.g: no pin &amp;lsquo;C&amp;rsquo; in Sum_op&lt;/li>
&lt;/ul>
&lt;h3 id="unbitwidth">unbitwidth&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Title&lt;/td>
&lt;td>unbitwidth&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Description&lt;/td>
&lt;td>Not all the variables need bitwidth information. Find the small subset&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Mentor(s)&lt;/td>
&lt;td>Jose Renau&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skills&lt;/td>
&lt;td>C++17&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Difficulty&lt;/td>
&lt;td>Medium&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Size&lt;/td>
&lt;td>Medium 175 hours&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/masc-ucsc/livehd/blob/master/docs/cross.md#unbitwidth-local-and-global-bitwidth" target="_blank" rel="noopener">Link&lt;/a>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>This pass is needed to create less verbose CHISEL and Pyrope code generation.&lt;/p>
&lt;p>The LGraph can have bitwidth information for each dpin. This is needed for
Verilog code generation, but not needed for Pyrope or CHISEL. CHISEL can
perform local bitwidth inference and Pyrope can perform global bitwidth
inference.&lt;/p>
&lt;p>A new pass should remove redundant bitwidth information. The information is
redundant because the pass/bitwidth can regenerate it if there is enough
details. The goal is to create a pass/unbitwidth that removes either local or
global bitwidth. The information left should be enough for the bitwidth pass to
regenerate it.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Local bitwidth: It is possible to leave the bitwidth information in many
places and it will have the same results, but for CHISEL the inputs should be
sized. The storage (memories/flops) should have bitwidth when can not be
inferred from the inputs.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Global bitwidth: Pyrope bitwidth inference goes across the call hierarchy.
This means that a module could have no bitwidth information at all. We start
from the leave nodes. If all the bits can be inferred given the inputs, the
module should have no bitwidth. In that case the bitwidth can be inferred from
outside.&lt;/p>
&lt;/li>
&lt;/ul></description></item><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>