This document describes the design and implementation of I2C and UART blocks for a RISC-V system on chip (SOC). It first introduces the authors and provides an abstract on the topic. It then discusses the RISC-V architecture including its instruction set, pipeline stages, and peripheral blocks. The objectives are to familiarize with the ASIC design flow and implement digital blocks for a RISC processor. Next, the document reviews related work on low power RISC-V processors and compressed instruction sets. It proceeds to describe the methodology for implementing I2C architecture, involving address transmission, read/write operations, and acknowledgement signaling between master and slave devices.