Skip to content

UVM based Verification of SPI_Protocol and I2C_Protoccol. A Serial intra System Communication Peripheral Protocol

Notifications You must be signed in to change notification settings

cong2738/May_team_project_I2C_SPI

Repository files navigation

SPI, I2C with AXI Microblaze

2025년 HARMAN Semicon Academy 1기
개발기간: 2025.05.17 ~ 2025.25

개발팀 소개

박호윤 박지수 임윤재 함영은
@cong2738 @Friday930 @immune @heyhoo46
I2C design & develop SPI design & Simulate SPI design & develop I2C design & Simulate

Introduce

  • I2C & SPI Communication
    Learn how microcontrollers talk to peripheral devices — by actually making them talk. This project explores I2C and SPI protocols through hands-on implementation and analysis.
    "Nothing beats learning low-level communication than writing it yourself."
    CPU가 주변 장치가 대화하는 법, 직접 구현하고 검증한다.
    UVM검증을 통해 방대한 양의 데이터를 한번에 검증한다.
    I2C와 SPI 통신을 실습하고 분석한 프로젝트로, 하드웨어의 신호 흐름을 눈으로 보고, 손으로 느끼며 이해한다.
    "직접 하드웨어을 구현해보는 것만큼 확실한 공부법은 없다."

Stacks

Environment

Vivado Verdi VCS

Development

C Verilog SystemVerilog

Hardware

Basys3
Microblaze
AXI

Design

SPI

  • transmission design
    SPI transmission design
  • SPI Master ASM
    SPI MASTER ASM
  • SPI Slave ASM
    SPI Slave ASM

SPI UVM Simulation

-Verdi
image

-VCS(UVM)
image
image

I2C

  • transmission design
    SPI transmission design
  • I2C Master
    • Block Diagram
      I2C Master Diagram
    • ASM FLOW
      I2C Master ASM
  • I2C Slave
    • ASM FLOW
      I2C Slave ASM
    • ISSUE
      • CDC sync ISSUE: 보드간 CDC구간 메타스테이트 이슈가 발생, 엣지 디텍터를 싱크로나이저로서 사용함

I2C Simulation

-I2C DATA SIM image

Layout, Circuit

Layout

SPI

SPI Layout

  • Master device
    SPI Circuit
  • Slave device
    SPI Circuit

I2C

I2C Layout

  • Master device
    I2C Block Circuit
  • Slave device
    I2C Circuit

Circuit Output

  • SPI Master LogicAnalyzer Probe
    SPI Output
  • I2C Master LogicAnalyzer Probe
    I2C Output Start
    I2C Output Stop
    I2C Output

video

                               
SPII2C
SPII2C

디렉토리 구조

project
├── C : program demo
├── project_i2C_microblaze : I2C device block
├── project_I2C_SIMULATION : I2C Simulation(vivado SV SIM)
├── project_I2C : I2C modules
├── SPI
│   ├── 20250522_SPI_master_Slave_moudle : SPI module
│   └── 20250523_SPI_AXI_Master_MICROBLAZE : SPI device block
├── SPI_I2C_UVM : SPI Simulation(synopsys VCS SIM, verdi)
└── 발표자료

About

UVM based Verification of SPI_Protocol and I2C_Protoccol. A Serial intra System Communication Peripheral Protocol

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •