Hello everyone: If anyone is interested in helping me mentor one or two high school students for the summer, please let me know. I did this very successfully last summer, and a few of my interns presented at the WOSET workshop at ICCAD (which was virtual, of course). I am posting in this channel because all of my internship ideas are related in some way or other to the Google/SkyWater project. These are very bright upcoming seniors in the premier science and technology maget high school in Montgomery County, Maryland (which happens to be a mile from my house), and they are well-versed in programming skills. Last year I tried to mentor 13 students, which was due to the fact that the pandemic hit and all the summer internships stopped due to lockdowns just as the students were applying. This year I have committed to three students, but there are two others who may still need internships, and if I can get a little help I may be able to accommodate them. The following is the list of potential internships that I would like to get done over the summer:
EDA tool development:
Analog flow --- Work with members of the Google/SkyWater community to define one or more analog circuit design flows using open source EDA tools, and to write a number of scripts (in Python) to create, manage, and organize analog projects. Potentially can work on migrating the CACE system from efabless to open_pdks, and improve its integration into the whole flow. Skills: Python programming.
Power analysis --- Investigate the use of the IRSIM switch-level simulator for performing power analysis. Determine if any software updates are needed to get it to run, and prepare a full set of online instructions for running power analysis. Work with members of the Google/SkyWater community to test and to run commercial tools for comparison. Skills: C programming
Open PDK development:
PDK Continuous Integration --- Help develop continuous integration (CI) scripts for confirming the correctness of files in the Google/SkyWater open PDK, through the use of GitHub actions. Most of this will be done in Python and will run various open source tools. Can engage the Google/SkyWater community for ideas and help. Skills: Python programming
Novel device layouts --- Add automatically-generated device layouts to the SkyWater PDK. Can be tested by building an analog chip design using the efabless Caravan framework and submitted for precheck. Most programming would be done in Tcl using the existing framework as a starting point. New devices of interest that have not been done yet include: Photo-diode, extended-drain MOSFETs, bipolar transistors, ESD transistors, inductors, metal fuse, UHV devices. Skills: Tcl programming
Application engineering:
Raspberry Pi-based logic analyzer --- Build a DIY logic analyzer based around a Raspberry Pi. Use it to test and characterize the OpenRAM break-out board. Write up a user guide and publish it to the Google/SkyWater community for use with the Caravel project development boards. Skills: Raspberry Pi
efabless Caravel design flow --- Design a novel digital special-application circuit mainly to prove that the tools and flows are accessible enough to a non-specialist that they can be used successfully by a sufficiently bright high school student. Project design to be determined. Most work would be done in Verilog. Skills: Verilog
Machine learning --- As a follow-on to last year's machine learning internship, we found last year that the Ravenna RISC-V chip does not have enough memory to run the basic Tensorflow-lite micro speech example. However, it should be enough to run the example accelerometer pattern recognition. The task would be to rewrite the C code and RISC-V assembly routines to communicate with the Digilent PMOD ACL2 accelerometer, and to prepare a github fork of the Tensorflow lite repository with official support for the efabless Ravenna chip. Mid-summer, it may be possible to try the same thing on the efabless Caravel-plus chip from the first Google/SkyWater manufacturing run. Skills: C, RISC-V assembler