Xilinx/Vitis

Booting & Running Zynq-7000 without External DDR Memory

mouessee 2022. 9. 9. 12:37
728x90
반응형

 

 

 

 Introduction

 

Zynq-7000 Device를 사용함에 있어 외부에 DDR memory를 사용하지 않고 Booting and Running하는 방법에 대하여 설명하겠습니다.

 

 

Test를 위한 PC 사용환경은 다음과 같습니다.

 

 

 

 Booting & Running Zynq-7000 without External DDR Memory

 

 

1.

Block Design의 ZYNQ7 Processing System을 double-click하면 "Re-customize IP" 창이 띄워집니다. 여기서 다음과 같이 "Enable DDR"을 uncheck 합니다.

 

Re-customize IP

 

 

2.

Vivado Tool에서 다음과 같이 "Generate Bitstream" 까지 완료합니다.

 

Design Runs

 

 

3.

다음과 같이 Vivado에서 Export Hardware..."를 클릭합니다.

Export Hardware...

 

 

4.

다음과 같이 "Export Hardware Platform"을 통하여 "top.xsa"를 생성합니다.

 

Export Hardware Platform

 

 

5.

다음과 같이 Vivado에서 "Launch Vitis IDE"를 클릭하여 Vitis를 실행합니다.

 

Launch Vitis IDE

 

 

6.

다음과 같이 "project_2.sdk" 폴더를 선택한 후, "Launch"를 클릭합니다.

 

Vitis IDE Launcher

 

 

7.

다음과 같이 "top.xsa" 파일을 가지고 "lab1"의 이름으로 Platform Project를 생성합니다.

 

New Platform Project

 

 

 

 

728x90
반응형

 

 

 

8.

다음과 같이 "Hello World" Example을 "hello"의 이름으로 Application Project를 생성합니다.

 

New Application Project

 

 

9.

Vitis에서 다음과 같이 Platform Project "lab1"의 "xparameters.h"를 double-click 합니다.

 

xparameters.h

 

 

10.

"xparameters.h" 파일에서 아래와 같이 빨간 색 네모 박스 안의 내용을 추가로 기입한 후 저장합니다.

 

xparameters.h

 

 

11.

Vitis에서 다음과 같이 Platform Project "lab1"의 "lscript.ld"를 double-click 합니다.

 

lscript.ld

 

 

12.

"lscript.ld" 파일에서 아래와 같이 ".stack"을 "ps7_ram_1_S_AXI_BASEADDR"을 "ps7_ram_0_S_AXI_BASEADDR"로 변경합니다.

 

lscript.ld

 

 

13.

Vitis에서 다음과 같이 Platform Project "lab1"의 "main.c"를 double-click 합니다.

 

main.c

 

 

14.

"main.c" 파일에서 아래과 같은 내용을 .....

 

main.c

 

 

15.

다음과 같은 내용으로 변경합니다.

 

main.c

 

 

16.

Vitis에서 다음과 같이 Platform Project "lab1"의 "fsbl.h"를 double-click 합니다.

fsbl.h

 

 

17.

"fsbl.h" 파일에서 아래과 같은 내용을 .....

 

fsbl.h

 

 

18.

다음과 같은 내용으로 변경합니다.

 

fsbl.h

 

 

19.

Vitis에서 다음과 같이 Platform Project "lab1"의 "qspi.c"를 double-click 합니다.

 

qspi.c

 

 

20.

"qspi.c" 파일에서 아래과 같은 내용을 .....

 

qspi.c

 

 

21.

다음과 같은 내용으로 변경합니다.

 

qspi.c

 

 

22.

Vitis에서 다음과 같이 Application Project "hello_system"의 "lscript.ld"를 double-click 합니다.

 

lscript.ld

 

 

23.

"lscript.ld" 파일에서 아래와 같이 모든 Memory Region의 "ps7_ram_0"을 "ps7_ram_1"로 변경합니다.

 

lscript.ld

 

 

24.

Platform Project와 Application Project를 Build 한 후, Create BOOT Image를 생성합니다.

이 후, Program Flash를 하면 External DDR memory없이 정상적으로 동작되는 것을 확인할 수 있습니다.

(QSPI Flash PROM에 Program Flash할 경우에 Boot Mode를 JTAG으로 설정합니다. QSPI Flash PROM에 Program Flash가 완료되면 Boot Mode를 QSPI로 변경 후 동작을 확인합니다.)

 

 

25.

아래의 파일 링크는 위에서 진행한 Vivado & Vitis Project file 입니다.

 

Zynq_DDR_less.zip

 

 

 


 

지금까지 Zynq-7000 Device를 사용함에 있어 외부에 DDR memory를 사용하지 않고 Booting and Running하는 방법에 대하여 알아보았습니다.
여러분의 FPGA 설계에 조금이라도 도움이 되었으면 합니다.
오늘도 좋은 하루 되세요.

(공감, 구독, 댓글은 저에게 힘이 됩니다!)

 

 

 


Create Date: July 00, 2022

Posted By: Mouessee

 

 

 

Xilinx 본사는 한국 내에 Corporate and Sales Distributor로 MAKUS를 두고 있습니다.
Xilinx 국내 Corporate and Sales Distributor인 MAKUS는 XIlinx FPGA Device를 기술영업을 통해 판매하며 기술지원이 가능합니다.
MAKUS www.makus.co.kr

 

 

 


관련 BLOG

------------------------------

------------------------------

 

 

728x90
반응형