APB architecture

Seungyun Lee·2026년 2월 22일

UVM

목록 보기
6/14

1. 하드웨어와 소프트웨어의 경계 (Top Level)

UVM 세상(소프트웨어)과 칩(하드웨어)이 만나는 최상위 지점입니다.

  • testbench.sv:
    시뮬레이션을 시작하는 가장 바깥쪽 껍데기입니다. 클럭을 만들고, cfs_apb_if를 인스턴스화해서 칩과 연결합니다.

  • cfs_apb_if.sv:
    앞서 우리가 SVA(검증 지뢰)를 심어두었던 바로 그 물리적 구리선(Interface)입니다.

2. UVM 컴포넌트 계층 (The Hierarchy)

cfs_algn_test_base.sv (기본 지휘관)
 └── cfs_algn_test_reg_access.sv (실제 작전 지휘관: 어떤 대본을 실행할지 결정)
      └── cfs_algn_env.sv (전장/환경: 여러 에이전트를 모아두는 곳)
           └── cfs_apb_agent.sv (APB 전담반 소대장)
                ├── cfs_apb_agent_config.sv (에이전트 공통 리모컨/설정)
                ├── cfs_apb_sequencer.sv    (조감독: 대본을 받아 일꾼에게 전달)
                ├── cfs_apb_driver.sv       (일꾼: 핀을 흔듦)
                ├── cfs_apb_monitor.sv      (CCTV: 핀을 훔쳐봄)
                └── cfs_apb_coverage.sv     (서기: 모니터 기록을 채점표에 정리)

3. 데이터와 대본 (Transactions & Sequences)

위의 조직도 안에서 사람들이 이리저리 주고받는 "물건(Data)"들입니다.

택배 상자 (Item): 칩에 쑤셔 넣을 데이터 덩어리들입니다.

  • cfs_apb_item_base.sv (기본 박스)
  • cfs_apb_item_drv.sv (드라이버가 쓸 박스)
  • cfs_apb_item_mon.sv (모니터가 관찰해서 채울 박스)

대본 (Sequence): 상자들을 어떤 순서로 보낼지 적어둔 시나리오입니다.

  • cfs_apb_sequence_base.sv (기본 대본)
  • cfs_apb_sequence_simple.sv (단순 전송 대본)
  • cfs_apb_sequence_rw.sv (읽기/쓰기 대본)
  • cfs_apb_sequence_random.sv (무작위 전송 대본)

4. 포장지 (Packages)

컴파일러가 이 파일들을 순서대로 잘 읽을 수 있도록, 연관된 파일들을 하나의 폴더처럼 묶어주는 패키지 파일들입니다.

  • cfs_apb_pkg.sv: APB 에이전트 관련 파일(item, sequence, driver 등)을 다 묶음
  • cfs_algn_pkg.sv: 환경(env) 관련 파일을 묶음
  • cfs_algn_test_pkg.sv: 테스트(test) 관련 파일을 묶음

5. 기타 유틸리티 (Utilities)

  • cfs_apb_types.sv:
    READ, WRITE, OKAY 같은 공통 단어(Enum)나 설정값들을 모아둔 사전입니다.

  • cfs_apb_reset_handler.sv:
    방금 마지막에 배운 "리셋이 터지면 멈춰라!"를 지시하기 위해 컴포넌트들에게 부여하는 '자격증(Interface Class)' 파일입니다.

profile
RTL, FPGA Engineer

0개의 댓글