반응형

이전에는 Ubuntu 환경이 필요해서 petalinux 설치가 막혔었다.

 

이번 시간에는 Virtualbox를 사용해 Ubuntu를 설치해 본다.

 

먼저, 다운로드 링크다.

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. VirtualBox 7.0.14 platform packages The binaries are released unde

www.virtualbox.org

 

접속해 Windows host 를 받아 설치한다.

 

* 7.0.14 로 진행하였다.

 

 

딱히 건들 것이 없다. Next 만 눌러 설치한다.

설치하게 되면 이런 앱이 켜지게 된다.

 

 

우리는 Ubuntu 를 먼저 설치해야 하니 Ubuntu 20.04 LTS 를 다운받으러 간다.(중요 : Petalinux 2018.3을 돌리려면 Ubuntu 16.04 LTS를 받아야 한다)

 

 

Ubuntu 20.04.6 LTS (Focal Fossa)

Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what m

releases.ubuntu.com

 

 

 

Ubuntu 16.04.7 LTS (Xenial Xerus)

Select an image Ubuntu is distributed on two types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what mos

releases.ubuntu.com

 

64-bit PC desktop image 를 설치해 준다.

설치가 모두 완료되었다면 VM에 우분투를 설치 할 차례이다.

 

 

새로 만들기를 선택한다.

 

 

이름은 구분할 수 있는 이름으로 설정한다.

 

 

메모리와 프로세서의 경우, 자신의 환경에 맞게 설정한다.

Ubuntu 20.04 버전은

  • 2 GHz dual core processor
  • 4 GiB RAM (system memory)
  • 25 GB of hard drive space (or USB stick, memory card or external drive but see LiveCD for an alternative approach)

을 시스템 요구사항으로 말하고 있다.

나는 4 Core, 6GB Memory 로 설정했다.(16.04도 동일)

 

 

하드 드라이브의 경우, 50기가로 설정했다.(정상적인 동작을 위해 최소 80기가 이상으로 할당하자)

 

이후 설정에서 저장소 > 디스크 파일 선택 > 다운받은 ubuntu iso 파일 선택을 해 준다.

 

 

확인을 누르고, 실행시켜준다.

 

그러면 알아서 실행이 되고, 우분투를 설치 할 건지에 대해 물어본다.

 

 

 

언어는 영어로 놓고 Install Ubuntu 를 클릭한다.

Keyboard layout 도 English(US) 로 설정해 준다.

 

 

Minimal installation 을 클릭하고 Continue (16.04 버전은 이런게 없다)

 

 

Erase disk and install Ubunu 누르고 Install Now 클릭

 

 

Continue 클릭 해 준다.

위치를 물어보는 것은 시간대 때문에 그렇다. 아무거나 해도 상관 없다.

 

 

name, password 를 정하고 continue 를 눌러준다.

간단한 용도로만 쓸 예정이기 때문에 보안은 크게 신경 쓰지 않는다.

 

설치에 시간이 어느 정도 소요되기 때문에 기다려 준다.

 


 

설치가 끝나면 재시작 해 준다.

(이후 내용은 시행착오이니 보드로 petalinux 돌리기 - [3] 의 16.04 설치 내용부터 보면 깔끔하게 설치 가능하다)

 

Firefox 브라우저를 통해 다시 petalinux 2018.3 을 다운받는다.

 

 

다음으로 리눅스 콘솔을 열어 다음과 같은 명령을 실행한다. (바탕화면에서 우클릭으로 열 수 있다.)

 

sudo apt-get install update

sudo apt-get install -y tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev tftpd-hpa zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0 screen pax gzip automake

 

sudo 명령어로 인해 Password 를 요구하는데, 버튼을 눌러도 아무 반응이 없다.

하지만 걱정하지 말자. 실제로는 비밀번호가 다 쳐지고 있으니까 마음 놓고 pw 를 입력하면 된다.

 

.. 로 될 줄 알았는데 Python 이 발목을 잡았다.

$ sudo apt install python 으로 설치를 했는데, 자꾸 2.7.3 보다 위의 버전을 설치해 오라고 했다.

 

리눅스 우분투 python 다른 버전 설치

작업 환경 - OS : Ubuntu 18.04.6 LTS 기본적으로 우분투 운영체제에 python2, pytho3가 설치되어있었다. 하지만 내가 개발한 것을 리눅스 서버에서 돌리려면 아무래도 개발환경과 같은 버전으로 맞춰주는

joytk.tistory.com

따라서 이 포스트를 참고해 파이썬 2.7.3을 설치했다.

근데도 계속 다른 파이썬 버전이 잡히는 것 같다.

 

찾아보니 같은 이슈를 겪고 있는 외국인이 많은 것 같다. 

 

 

 

python error when installing Xilinx Petalinux on Ubuntu 20.04

I got this error while I tried to install Xilinx Petalinux on Ubuntu 20.04 dpkg-query: package 'python' is not installed and no information is available Use dpkg --info (= dpkg-deb --info) to exam...

stackoverflow.com

 

Cody Piersall 씨가 준 설치법을 참고로 하면 실행이 된다.

내용은 다음과 같다.

 

 

다음은 다운로드가 모두 끝난 petalinux 파일을 를 옮겨준다.

나는 Downloads --> /home/<사용자명>/peta2018 폴더에 저장했다.

 

파일 실행을 위해 chmod 로 실행 파일의 권한을 바꿔준다. 이후 실행까지 한다.

chmod 777 petalinux-v2018.3-final-installer.run

./petalinux-v2018.3-final-installer.run

 

진행이 되면서 EULA 등 license agreements 가 나오는데,

pgdn 키를 이용해서 아래로 내려서 볼 수도 있고, q를 누르면 즉시 뷰어가 꺼진다.

그리고 모든 항목에 y 를 눌러 계속 설치하자.

 

 

 

 

Yocto SDK 에러가 났다..

 

dpkg 때문에 python 이 인식이 안되서 에러가 난다니 하는 사람들도 있었다.

일단 보류..

 


 

다른 PC 환경에서도 진행 해 보았다.

 

$ sudo apt upgrade 를 먼저 진행하고

Python 설치부터 python2 를 설치해 보았다.

그리고 메뉴얼 방식으로 /var/lib/dpkg/status 파일을 수정했다.

$ sudo vi /var/lib/dpkg/status

Package: python
Status: install ok installed
Maintainer: Fake Entry <fake@example.com>
Architecture: all
Version: 2.7.17
Description: fake package for petalinux

 

의 내용을 가장 상단에 추가해 줬다.

 

$ sudo apt upgrade 이후

재부팅을 한 번 하고 다시 진행해 보았다.

qemu 설치

$ sudo apt install python-dev

파이썬 버전이 역시 문제인 것 같다.

 

 

에러가 좀 뜨긴 하는데 설치는 완료되었다고 뜬다.

 

반응형
반응형

petalinux 2018.3 버전을 사용하였음

 

Linux 설치에 앞서, 새로 Vivado Project 를 먼저 생성 해 준다.

 

 

Project name 은 그림과 같이 설정하고, 나머지는 이전과 동일하게 한다.

물론 소스코드는 생성하지 않는다.

 

다 생성했다면, IP 블록을 하나 생성한다.

 

 

이후 다이어그램 창에서 ZYNQ PS를 불러온다.

 

 

이후 ZYNQ7 PS 를 더블클릭해 Configuration tab 에 들어가 다음과 같이 설정 해 준다.

 

 

Peripheral I/O Pins 에 들어가 UART1을 enable 해준다.

 

 

Clock configuration 에서 FCLK_CLK0 도 disable 해준다.

 

 

DDR configuration 에서 Memory part, bus width 를 바꿔 준다.

 

 

다 되었으면 OK

 

 

이후 Run block Automation 으로 DDR, FIXED_IO output 으로 나오게 설정한다.

 

여기서 다시 ZYNQ7 PS 를 더블클릭해 이번에는 MIO Configuration 에 들어간다.

 

 

해당하는 부분들을 바꿔 준다.

조금 내리면 SD 0 이 보이는데 이것도 체크 해 준다.

 

 

이후 OK 를 눌러준다.

 

다 되었다면 SDK를 실행시키기 위해 만든 디자인을 Wrapping 해준다.

 

이후 Output 파일을 만들어 준다.(Wrapping 하기 전 해도 된다.)

 

 

이후 파일을 Export 해준다.

 

 

그리고 SDK를 실행시켜 준다.

 

 

HW에 대한 정보들이 나와있는 페이지를 볼 수 있다.

 


Petalinux 2018.3 을 다운받는다.

다운로드 경로는 다음과 같다.

 

Downloads

Vivado, Vitis, Vitis Embedded Platform, PetaLinux, Device models

www.xilinx.com

 

Petalinux installer 를 다운받아 준다.

 

 

Windows 환경에서 해 보려고 했는데, 아무래도 Linux 환경에서만 가능한 듯 하다.

따라서 Virtual Machine 을 설치해서 해 보도록 하겠다.

 

반응형
반응형

03_Use SDK to solidfy FLASH code.pdf 를 참고하였다.

 

이번에는 셀러가 제공해 준 코드를 사용해 만들어 보도록 한다.

먼저, 프로젝트를 하나 생성한다.

프로젝트 네임 fpga_03_fpga_flash_download
프로젝트 타입 RTL project
소스 추가 X
보드 설정 xc7z010clg400-1

 

 

생성된 프로젝트 모습이다.

여기서 이번에는, IP INTEGRATOR 의 Generate Block Design 을 선택한다.

 

 

OK 를 선택한다.

그럼 Design 탭이 추가로 생성된 것을 볼 수 있다.

소스에도 디자인 소스에 design_1.bd 파일이 추가된 것을 볼 수 있다.

 

 

다이어그램에 + 에 커서를 갖다대면 Add IP 라는 창이 뜨는데, 이를 선택한다.

 

 

ZYNQ7 Processing System 을 선택한다.

 

 

그러면 ZYNQ7 PS 를 가지고 오게 된다. 이를 더블클릭 해 보자.

 

 

내부 구조가 나오게 된다.

 

이번에 설정할 것은, PS-PL Configuration 을 먼저 클릭해 보자.

General > Enable Clock Resets > FCLK_RESET0_N 의 Select 를 disable 한다.

 

 

아래의 AXI Non Secure Enablement > GP Master AXI Interface > M AXI GP0 interface의 select 도 disable 한다.

 

 

왼쪽 네비게이터 탭의 Peripheral I/O Pins 에 들어간다.

Quad SPI Flash 를 활성화 한다.

 

 

이후 MIO Configuration 으로 들어가 Quad SPI Flash 항목의 Speed를 모두 Fast로 바꾼다.

 

 

이후 Clock Configuration > PL Fabric Clocks > FCLK_CLK0 을 disable 한다.

 

 

이후 DDR Configuration > DDR Controller Configuration > Memory Part 를 MT41J128M16 HA-125로 바꿔준다.

 

 

아래의 Effective DRAM Bus Width 도 16Bit 로 바꿔준다.

 

 

긴 설정 작업을 다 했다. OK 를 눌러 나간다.

 

 

위의 초록색 바에 Designer Assistance avilable. Run Block Automation 이라고 나와 있는데, Run Block Automation 을 누른다.

 

 

선택을 하고 OK를 누른다.

 

그러면 ZYNQ PS OUTPUT 으로 DDR, FIXED_IO 가 생긴다.

 

 

이후 디자인 검증을 한 번 해준다.

 

 

성공했다면 OK 를 누른다.

 

 

이후 소스에서 내가 만든 .bd 파일에서 Generate Output Products 를 선택한다.

 

 

바로 Generate 버튼을 눌러 준다.

Number of jobs 는 자신의 스레드 개수에 따라 바뀌니 상관을 크게 하지 않아도 된다.

 

 

끝나면 끝났다고 알려준다.

 

 

다음으로 Create HDL Wrapper 를 실행한다.

 

 

OK 선택.

그리고 소스를 하나 더 추가한다.

 

 

디자인 소스를 추가하는데, 파일은 이것이다.

 

breath_led.v
0.00MB

 

 

파일을 추가하고 Copy sources into project 옵션도 on 으로 설정한뒤 Finish 선택.

 

 

이렇게 소스에 breath_led 가 추가로 생겼다.

 

그리고 design_1_wrapper.v 를 살짝 수정해 준다.

 

 

...
FIXED_IO_ps_porb,
FIXED_IO_ps_srstb,

    clk,
    rstn,
    led
    );
    input wire clk;
    input wire rstn;
    output wire [3:0] led;
    
  inout [14:0]DDR_addr;
  ...

 

 

breath_led breath_led_inst(
    .clk(clk),
    .rstn(rstn),
    .led(led));

 

를 각각 추가하고 저장해준다.

 

이후 합성을 진행한다(Synthesis > Run Synthesis)

이후 I/O 핀 매핑을 위해 RTL ANALYSIS의 Open Elaborated Design > 우측 상단 I/O Planning 에 들어가 I/O Ports 변경

I/O port 는 led [0]~[3], clk, rstn 만 수정한다.

 

 

그림과 같다.

다 기입했다면 저장하고 File name을 fpga_flash_download 로 설정해 준다.

 

 

OK 를 누른다.

이후 Bitstream 까지 다시 만들어 준다.

(Synthesis > Implementation > Bitstream)

 

이번에는 Bitstream 을 바로 보드에 올릴 것이 아니기 때문에 Bitstream 생성이 끝난 뒤에 cancel 을 눌러 창을 닫는다.

 

 

 

HW Export 를 선택한다.

 

 

bitstream 포함을 하고 OK 를 누른다.

 

이후 SDK 를 켠다.

 

 

Launch SDK 창이 뜨면 OK를 눌러 SDK를 킨다.

 

그러면 Eclipse 기반의 SDK 창이 켜진다.

 

 

SDK는 이렇게 생겼고, HW description file인 system.hdf 가 생성되어 있는 것을 확인 가능하다.

 

이제 SDK 상에서 새로운 프로젝트를 만들어 본다.

File > New > Application Project

 

 

프로젝트 이름은 fsbl 로 한다.

 

 

Next 를 누르고 Zynq FSBL 을 선택한다.

 

 

Finish 를 누른다.

 

왼쪽 프로젝트에 fsbl, fsbl_bsp 가 생성된 것을 볼 수 있다.

 

 

다음으로, Xilinx > Create Boot Image 를 선택한다.

 

 

 

이런 이상한 창이 나오는데, Output BIF file path 를 찾아보자.

 

 

.\fpga_03_fpga_flash_download\fpga_03_fpga_flash_download.sdk\fsbl\Debug 

경로 지정을 해 준다.

 

 

경로 지정을 했다면 아래 Boot image partitions 의 우측 Add 를 선택한다.

 

들어가서 File path > Browse..

보통 이쪽 경로는 자동으로 잡힌다.

 

 

아까 있었던 경로에서 .elf 파일을 찾고 열기를 눌러준다.

 

 

File Path 가 이렇게 잡히고, Partition type 는 bootloader 로 설정해 준다. 그리고 OK를 눌러 나가자.

파일을 하나 더 추가할 것이다. 다시 Add 를 눌러 아까 만들었던 wrapper 의 bitstream을 추가 할 것이다.

 

 

이 파일은 .\fpga_03_fpga_flash_download\fpga_03_fpga_)flash_download.runs\impl_1 에 위치해 있다.

찾아서 열고, Partition type 을 datafile 로 지정해 주자.

 

 

다 되었다면 OK를 눌러준다.

 

 

이렇게 추가되었다면 완료다.

Create Image 를 눌러 바이너리 파일을 생성하자.

 

이후 보드에 파일을 올리기 위해 처음은 JTAG(00) 모드로 킨다.

JTAG 에 USB를 꼽고 JTAG 모드로 전원을 켠다.

 

 

 

그림과 같이 Program Flash 를 켜준다.

 

 

그럼 그림과 같은 창이 나오는데, Image file 은 아까 우리가 생성했던 Binary 파일을 넣어준다.

 

 

경로는 다음과 같다. .\fpga_03_fpga_flash_download\fpga_03_fpga_flash_download.sdk\fsbl\Debug 

BOOT.bin 파일을 열어주고

FSBL file 도 지정을 해 줘야 한다. 이 친구도 BOOT.bin 과 있는 위치가 동일하기 때문에 바로 열 수 있다.

.elf 파일을 넣어 주도록 하자.

 

 

다 끝나면 이렇게 되어 있다.

Program 을 눌러 실행 시킨다.

 

Progress Information 이라는 창이 나오는데, 첫 실행에 굉장히 느리다.

나의 경우 30분 정도 기다렸는데 진행 될 생각을 안 해서 껐다가 키니까 빨리 진행 되었다.

 

Programming Flash를 진행 할 때에는 JTAG 모드로 키는 것을 잊지 말자.

 

이후 완료되었다면 보드의 BOOT 를 QSPI(10) 으로 설정하고 POR(reset button) 을 한 번 눌러 보자.

LED breathing 이 구현 되었을 것이다.

또한 보드의 ROM에 Write 한 것이기 때문에 전원이 끊겼다가 다시 QSPI 모드로 키더라도 내장된 코드가 바로 구현된다.

반응형
반응형

02_Create project under VIVADO.pdf 를 참고하였다.

 

첫 번째로, 설치한 VIVADO 2018.3 을 실행한다.

 

프로젝트 설치를 위해 File > Project > New 를 선택한다.

 

New Vivado Project Wizard 가 나올 텐데, Next 를 누르고 

Project name 을 정해보도록 하자.

Project name : fpga_01_pl_led_stream
Project location : <use your own path>

 

Project location 같은 경우, 너무 깊게 Path 를 설정하면 오류가 날 수도 있다고 했으니 적당하게 C 드라이브에 폴더를 하나 생성하자. 예를 들자면 C:\VivadoProjects 같은게 좋겠다. 다음과 같은 경로로 설정한다.

 

 

다 했으면 Next 를 누른다.

 

 

이번에 Verilog 파일을 이용해 보드를 세팅할 계획이므로 RTL Project 로 만든다.

 

Add Sources, Add Constraints (optional)

: Skip (Next 누르기)

 

 

우리가 쓰는 칩을 고른다.

셀러가 친절하게도, 선택 기준에 대해 알려주고 있다.

Family : Zynq - 7000

Package : clg400

Speed : 7010은 -1, 7020은 -2

 

결론은 

Ver 7010 : xc7z010clg400-1

Ver 7020 : xc7z020clg400-2

 

지금 봤는데 7010이 LUT 나 FF 나 개수가 역시 적긴 하다. 7020이 7010에 비해 약 3배 정도 차이나는 듯 하다.

Next 선택하면 프로젝트 요약을 보여준다.

확인하고 Finish 를 선택해 프로젝트를 생성하자.

 


 

 

현재 프로젝트는 생성되었지만 프로젝트 내의 소스 파일이 없기 때문에 아무것도 실행할 수 없다.

좌측 상단 Project Manager > Add sources 를 선택해 소스 파일을 추가하자.

 

 

새로 디자인 소스를 추가한다. Next 선택

 

 

새로 파일 생성을 해야 하므로 Create File 을 선택

 

 

새 파일의 이름은 led_stream 으로 한다. OK > Finish 선택

 

끝나면 Define Module 창이 나올텐데, 그냥 OK > YES 로 넘기도록 하자.

간단하게 input / output 설정을 할 수 있는 창이라 넘겨도 무방하다.

 

 

그러면 led_stream.v 파일이 디자인 소스에 추가된 것을 확인할 수 있다.

더블클릭을 해서 파일을 연다.

 

 

Verilog 파일 하나가 생성되어 있는 것을 볼 수 있다.

이후 다음과 같은 코드를 붙여넣는다.

 

module led_stream(
    input i_Clk,          // 클럭 입력
    input i_Rst,          // 리셋 입력
    output reg [3:0] o_LED // LED 출력
);

// 카운터와 LED 번호를 저장하는 레지스터 변수 정의
reg [31:0] cnt;
reg [1:0] led_on_number;

// 클럭 주파수와 카운터의 최대 카운트 값을 설정하는 매개변수
parameter CLOCK_FREQ = 50_000_000;
parameter COUNTER_MAX_CNT = CLOCK_FREQ/2 - 1;

// 클럭 신호의 상승 에지와 리셋 신호의 하강 에지에 반응하여 동작하는 블록
always @(posedge i_Clk, negedge i_Rst) begin
    if (!i_Rst) begin
        // 리셋 신호가 활성화되면 카운터와 LED 번호를 초기화
        cnt <= 0;
        led_on_number <= 0;
    end else begin
        // 그렇지 않으면 카운터를 증가시키고 최대 카운트에 도달하면 리셋
        cnt <= cnt + 1;
        if (cnt == COUNTER_MAX_CNT) begin
            cnt <= 0;
            led_on_number <= led_on_number + 1;
        end
    end
end

// LED 번호에 따라 LED 출력을 설정하는 블록
always @ (led_on_number) begin
    case(led_on_number)
        0: o_LED <= 4'b0001; // LED 번호가 0이면 0001
        1: o_LED <= 4'b0010; // LED 번호가 1이면 0010
        2: o_LED <= 4'b0100; // LED 번호가 2이면 0100
        3: o_LED <= 4'b1000; // LED 번호가 3이면 1000
        default: o_LED <= 4'b1111; // 그 외의 경우 모든 LED가 꺼짐
    endcase
end

endmodule

 

모두 작성했다면 저장한다. (Ctrl + S)

 

 

이후 SYNTHESIS 항목의 Run Synthesis 를 선택하면 다음과 같은 창이 나온다.

OK 를 눌러 다음으로 넘어가면 자동으로 디자인 합성을 시도한다.

 

 

합성이 성공하면 다음과 같은 창이 나온다.

I/O 포트를 지정해 줘야 하므로 Cancel 을 눌러 나온다.

이후 RTL ANALYSIS > Open Elaborated Design 을 선택한다. 창 나오면 OK 눌러준다.

 

 

그럼 우리가 짠 Verilog 파일에 대응하는 회로도가 나온다.

오른쪽 위를 보면 현재 Default Layout 이라고 나와 있는데 이걸 눌러 I/O Planning 으로 바꿔준다.

 

 

그럼 핀 설정 창이 나오게 되고, 아래 콘솔이 있던 부분에 I/O Ports 라는 새 창이 나오게 된다.

I/O std 를 전부 LVCMOS33 으로 설정해주고

대응하는 패키지 핀만 넣으면 나머지는 자동으로 채워진다.

 

 

현재 코드와 대응하는 ZYNQ_MINI 보드의 I/O 는 그림과 같다.

다른 핀들에 대해 궁금하다면, 이 보드를 만든 사람이 친절하게도 핀 넘버와 기능에 대해 설명한 자료가 있다.

01_Schematic\ZYNQ_MINI_REVB Schematic.pdf 파일을 한번 구경해 보자.

 

등등 대략적으로 알려주고 있다.

이번에 사용한 핀들을 보면 

K17 : PL_CLK_50M

M19 : FPGA_PL_KEY2

T12 : FPGA_PL_LED1

U12 : FPGA_PL_LED2

V12 : FPGA_PL_LED3

W13 : FPGA_PL_LED4

로 구성된 것을 볼 수 있다.

 

LVCMOS33 은 3.3V 전압 레벨에서 작동한다는 의미라 생각하면 될 것 같다.

 

핀 설정이 끝났다면 저장을 해 준다.

 

 

다음과 같은 화면이 나오는데, File name 만 적당히 수정해 준다. 현재 모듈과 같은 이름이면 될 것 같다.

타이핑 후 OK 버튼을 선택하자.

 

그리고 비트스트림이라는 파일을 생성하기 위해

PROGRAM AND DEBUG > Generate Bitstream 을 클릭한다.

 

 

이런 창이 뜰 텐데 그럼 Yes 를 누르고 다시 합성을 진행한다.(I/O 핀 매핑을 했기 때문에 달라짐)

그리고 비트스트림도 합성이 끝난 뒤에 자동으로 진행된다.

 

 

끝나면 Open Hardware Manager 을 누르고 OK 을 누른다.

 

 

Hardware Manager 창이 열리면, 아직 우리가 보드를 툴과 연결하지 않았기 때문에 하드웨어가 잡히지 않는다.

HW 연결 전, 보드와 PC를 연결하는 과정을 한다.

 

 

[중요] Boot 가 00 상태여야 한다. {ON / KE} 방향이 0이고 {1, 2} 방향이 1이다.

Boot 모드가 총 3개로 나뉜다.

* 만약 QSPI 모드로 바꾸고 싶다면 1을 1 방향으로, 2를 KE 방향으로 스위치 조정을 하고 전원을 인가한다.

Boot ON KE
JTAG 0 0
QSPI 1 0
SDCARD 1 1

 

JTAG 에 USB-C 케이블을 연결하고, PC와 연결한다.

 

이후 Vivado 로 돌아와 Open Target > Auto connect 를 선택한다.

 

 

그러면 이렇게 칩이 잡힌다. FPGA 용 칩과 ARM 코어가 잡힌 모습이다.

그럼 우리가 만든 Verilog 파일(현재 bitstream 으로 만듦) 을 보드에 올려볼 차례이다.

Program Device 를 누른다.

 

 

비트스트림 파일에는 우리가 만든 비트스트림 파일의 경로를 넣어 준다.

기본으로는 자동으로 잡힌다.

그리고 Program 버튼을 선택한다.

동작하는 것을 확인한다.

 

 

분명 처음 했을 때는 에러가 나지 않았는데 지금은 에러가 난다........

더 알아보고 고쳐봐야겠다.

 

[추가]

재부팅 하니 정상작동을 한다.

localhost 에서 Auto connect 로 XADC 를 못 잡아서 프로그램 실행이 되지 않은 것 같다.

그 전까지 로컬 서버 리스타트 등을 해도 효과가 없고, 재부팅 해야 되는 듯 하다

 

 

이런 식으로 PL LED쪽 제어를 해 보았다.

(코드는 위에 제공해준 것과 달라 LED 켜지는 모습이 다름)

반응형
반응형

보드가 도착했지만 아직 이 보드에 대해 잘 알지 못한다.

셀러가 보내준 사용 전 준비 사항을 한 번 살펴보자.

 

1. 모든 예제 프로젝트에 Vivado 2018.3을 사용하라.

2. 예제 프로젝트를 디스크의 루트 디렉토리에서 사용하는게 가장 좋다.

- vivado 가 파일 이름 경로 길이 제한이 있어 디렉토리가 너무 많으면 문제가 생길 수 있다고 한다.

3. 온보드 다운로더가 FPGA 디버깅과 다운로딩, 그리고 ARM A9의 디버깅과 시뮬레이션을 지원한다.[1]

또한 Win10은 드라이버가 필요 없고, 오직 하나의 다운로더만 하나의 컴퓨터에 적용된다.. 고 하는데 무슨 말인지는 잘 모르겠다.

4. FPGA 부분은 ZYNQ에 통합되어 있고, 일반적으로 칩의 소모 전력은 1W 정도라고 한다. 그런데 여름이나 자원을 많이    사용하면 열이 날건데, 그럼에도 일반적인 학습용으로는 여름에 써도 무방할 정도라고 한다.

물론 큰 프로젝트를 한다면 히트 싱크가 필요하겠다.

5. 보드가 PL(Programmable logic)-side FPGA에서 IO 핀을 34개 가지고 있다. IO 정규 레벨은 3.3V 고 5V를 인가하면 안  되는 것 같다.

6. 보드를 사용하기 위해 다음과 같은 소프트웨어가 설치되어 있어야 한다.

vivado 2018.3, CH340 driver, Serial port assistant

(additional for installing linux : petalinux installation program under linux / ubuntu / vmbox)

 

[1] : ZYNQ 칩이 FPGA 부분과 ARM-Cortex 로 이루어져 있어서 그렇다고 한다.

반응형
반응형

주문한 보드는 24년 3월 18일에 주문해 28일에 도착했다.

 

 

구성품은 그대로 왔다.

나는 아크릴 판이랑 나사, 스탠드오프는 미리 장착을 해 둔 상태고, 배송은 각각 따로 와서 조립을 해야 한다.

 

그리고 셀러가 SW, 설명서 등이 담긴 링크를 보내준다만

이게 정품일거라 생각은 하지도 않았지만 vivado 2018 + 라ol선스를 같이 보내준다.

 

음.. 웬만해선 개인 학습용으로 사용만 하도록 하자.

 


 

그럼 Vivado 를 설치해 보자. 불친절하게도 셀러는 툴 설치법에 대해서는 알려주지 않는다.

 

vivado 폴더의 xsetup.exe 를 실행시키면

 

와 같은 화면이 나올 텐데, 이후 인스톨러가 실행된다.

 

New version avilable 창이 뜨면 가볍게 무시해주도록 하자.

 

Vivado 2018에서 권장하는 OS 목록이다. 

Windows 11 에서도 정상적으로 동작하는걸 확인했다. Win11 사용자도 그대로 사용해도 될 듯 하다.

 

Next 를 누르고 License agreements 에 모두 동의하고 다시 Next 를 누르자.

 

 

설치할 판을 선택한다. 설명서에 SDK 주저리 적혀있는 것도 있으니 대충 HL Design Edition 을 설치하면 될 것 같다.

Next를 잘 못 눌렀어도 뒤에 설치 옵션을 지정할 수 있기 때문에 상관 없다.

 

Next 를 눌러 설치하자.

 


 

설치가 끝나면 라이선스를 추가하는 팝업 창이 나온다.(설치는 좀 걸린다.)

그러면 라이선스 파일을 모두 추가해주면 된다

 

 

Load License 에 들어가서 라이선스를 복사해 오자. 나는 셀러가 총 5개 파일을 제공해 줘서 모두 적용했다.

정식적으로 사서 사용하는 라ol선스도 아니기 때문에 개인 공부용으로만 사용하자.

반응형
반응형

 

연구실에서 공부를 하던 중, 심심해서 Aliexpress 에 접속을 했다.

그리고 생각보다 재밌어 보이는 보드를 발견했다.

ZYNQ-7010 칩을 사용하는 미니 개발 보드인데, Vivado를 한 번 써볼까 싶은 마음에 구매했다.

 

주 목적은 인터페이스 공부와 GPIO가 될 듯 하다. 기본적으로 달려 있는 OLED, 이더넷, HDMI, SDcard, GPIO 실습을 할 계획이다. 또한 AXI4 인터페이스도 추가로 할 것 같다.

 

다만 Quartus 라면 사용해 본 경험이 있는데, Vivado 라는 툴이 굉장히 익숙치 않아 배워 가는 과정이 필요할 듯 하다.

반응형

+ Recent posts