본문 바로가기
기본 이론

BRAM

by smileww 2024. 9. 8.

BRAM 실습 파일 참고

 

 

 

 

 

 



이 실습에서는 Vivado와 Vitis를 사용하여 Zynq SoC에서 PS(Programmable System)와 PL(Programmable Logic) 간의 데이터 공유를 위한 시스템을 구성하는 과정을 거칩니다. 주요 목적은 BRAM(Block RAM)을 활용하여 PS와 PL 사이에서 데이터를 공유하는 방법을 실습하는 것입니다. 이 과정을 통해 Vivado에서 Block Design을 생성하고, 이를 Vitis에서 활용하는 방법을 배울 수 있습니다.

Vivado에서의 PL 구성

  1. 프로젝트 생성 및 설정
    • my_bram 프로젝트 생성: 새 프로젝트를 시작하고, 필요한 설정을 진행합니다.
    • BRAM write Verilog 코드 작성 (bram_inf.v): BRAM에 데이터를 쓰는 로직을 포함한 Verilog 코드를 작성합니다. 여기서는 BRAM 시작 신호가 주어지면 주소(ADDR), 쓰기 활성화(WE), 데이터 출력(DOUT) 신호를 생성하여 BRAM에 순차적으로 데이터를 쓰는 작업을 수행합니다.
  2. Block Design 생성 및 설정
    • Zynq block 추가 및 설정: Zynq 7 프로세싱 시스템을 추가하고, I/O 주변기기, 클록 설정을 구성합니다.
    • BRAM 및 GPIO 추가: AXI BRAM Controller를 추가하고, BRAM과의 연결을 설정합니다. GPIO 모듈을 추가하여 PS의 상태를 확인하고 제어할 수 있도록 합니다.
  3. 비트스트림 생성 및 하드웨어 플랫폼 내보내기
    • 비트스트림 생성: 설계를 검증하고, FPGA에 프로그래밍 할 수 있는 비트스트림 파일을 생성합니다.
    • 하드웨어 플랫폼 내보내기: Vitis에서 사용할 수 있도록 하드웨어 플랫폼을 내보냅니다.

Vitis에서의 PS 구성 및 실행

  1. Vitis 프로젝트 생성 및 설정
    • 플랫폼 및 애플리케이션 컴포넌트 생성: 하드웨어 설계에 기반한 소프트웨어 플랫폼을 생성하고, 필요한 애플리케이션 컴포넌트를 설정합니다.
    • 테스트 코드 작성 및 빌드: BRAM에서 데이터를 읽고 쓰는 로직을 포함하는 C 코드를 작성하고, 이를 빌드하여 보드에서 실행합니다.
  2. 실행 및 테스트
    • 보드 연결 및 프로그램 실행: 생성된 애플리케이션을 보드에 다운로드하고, 실제 하드웨어에서 실행하여 결과를 확인합니다.

실습의 핵심 요소

  • BRAM을 사용한 데이터 공유: PL에서 생성된 데이터를 PS로 전송하고, 이를 통해 하드웨어와 소프트웨어 간의 인터페이스 방법을 실습합니다.
  • IP Integrator 사용: Vivado의 IP Integrator를 사용하여 복잡한 하드웨어 구성요소를 시각적으로 조합하고 연결하는 방법을 배웁니다.

이러한 실습을 통해, FPGA의 PL 영역에서 특정 기능을 구현하고, 이를 ARM 기반 PS에서 제어하며 상호작용하는 전체적인 SoC 설계 프로세스를 체험하게 됩니다. 이 과정은 복잡한 시스템의 이해를 돕고, 실제 응용 프로그램에 FPGA를 효과적으로 통합하는 방법을 제공합니다.

'기본 이론' 카테고리의 다른 글

데이터 흐름 시나리오  (0) 2024.09.19
[Vivado] Logic Block  (0) 2024.09.17
베릴로그 방과후 1  (0) 2024.09.08
FPGA와 ARM CPU 관계  (1) 2024.09.08
[UART, AXI, SPI] 간단한 통신 이론  (0) 2024.09.06