반응형

Tera Term 프로그램을 통해 FPGA보드를 리눅스 환경에서 다룰 수 있다.

 

사용한 FPGA보드는 Minized 보드를 사용하였다.

 

www.softonic.kr/download/tera-term/windows/post-download

 

Download Tera Term 4.105 - free - latest version

AutoCAD 데이터 파일보기 용 무료 소프트웨어

www.softonic.kr

위의 링크에서 Tera Term 을 다운받아 실행시킨다.

 

 

처음엔 이렇게 아무것도 출력되지 않는 상태로 프로그램이 실행될 것이다.

 

프로그램 상단의 Setup 메뉴에서 General.. 선택

그리고 FPGA보드가 연결된 포트를 확인 후 설정을 진행해준다.

Language는 Korean을 선택해주자.

 

 

그리고 Save setup... 을 진행하여 본인이 설정한 셋팅이 저장되도록 하자.

기존에 teraterm 폴더에  TERATERM.ini 파일이 존재할텐데 이 과정을 통해

덮어쓰기를 진행하며 수정 내용이 저장되게 된다.

 

TERATERM.INI
0.01MB

위의 파일은 내가 사용한 설정 파일이다.

 

설정이 완료되었으면 FPGA보드의 reset 스위치를 눌러주자.

 

아래와 같이 출력될 것이다.

 

나같은 경우 ID와 PW를 이미 설정해줬기에 로그인을 하기 위한 과정이 출력되는데 처음 진행하는 경우라면

ID 와 PW를 설정하라는 내용이 출력될 것이다.

 

설정 후 로그인하면

위와 같이 리눅스 환경으로 사용할 수 있게 된다.

반응형

'FPGA' 카테고리의 다른 글

MiniZed 를 통한 Pulse 출력  (0) 2020.12.29
MiniZed 를 통한 VGA 출력(Pmod VGA)  (0) 2020.07.02
Minized를 다루기 위한 Vivado 프로젝트 설정  (0) 2020.06.30
반응형

https://howtoworld.tistory.com/22

https://daeson.tistory.com/308

 

자유로운 가상환경에서 Pycharm 사용하기 (window, tensorflow, cpu/gpu)

이전 포스팅을 따라서 Anaconda와 tensorflow-gpu를 설치했다면, 로컬 가상환경에서 특정 환경을 생성하고 Pycharm에서 개발환경을 변경해가면서 개발 및 테스트를 해볼 수 있습니다. 이에 대한 문의도 �

daeson.tistory.com

 

PyQt5 Mainwindow에 Qt Designer를 사용한 graph Widget 추가

Qt Designer로 설계할 때 PyQt5 응용프로그램에서 사용자 정의 위젯을 사용하는 방법에 대해 알아보기 Qt Designer는 PyQt5 GUI를 설계하기 위한 훌륭한 도구로, PyQt5 위젯과 레이아웃의 전체 범위를 사용��

howtoworld.tistory.com

위의 내용들을 바탕으로 진행하였다.

 

 

 

 

 

우선 가상환경에서의 프로젝트를 생성하여 준다.

 

Pycharm을 통해 프로젝트를 생성한다.

 

그럼 지정된 경로에 설정한 이름의 폴더와 함께 프로젝트가 생성된다.

해당 경로로 이동하여 가상환경으로 designer을 실행시킨다.

 

이는 Anaconda Prompt를 실행시킨 후 가상환경으로 이동,

> designer    을 입력하면 된다.

 

 

아래와 같은 창이 뜨면 Main Window를 선택 후 Create

 

 

그 후 좌측의 'Containers' 항목에서 Widget을 드래그하여 Window에 위치시키고

크기를 조정하여 본인이 그래프를 나타내고자 하는 크기로 설정하여 준다.

 

2개의 그래프를 나타내고자 하는 상황이니 이를 두번 반복하여 Widget을 2개 생성하여 준다.

 

우측의  'object name' 부분에서 Widget의 이름을 설정해준다.

나는 Graph1, Graph2로 설정해주었고 이는 우측 상단에 표시되게 된다.

 

 

그 다음 위젯의 상황에 맞는 메뉴에서 승격 대상을 선택한다.

QWidget을 승격하면 PyQtGraph plot 위젯에서 지정된 하위 클래스로 교체해야 함을 나타낸다.

 

 

그럼 이제 위젯 클래스를 지정하는 창이 뜨게 된다.

 

아래와 같이 입력 후 우측의 Add 버튼을 누른다.

 

헤더 파일은 클래스를 가져오는데 사용되는 Python 모듈의 이름인 pyqtgraph이고 대체할 위젯의

클래스 이름을 "PlotWidget"으로 지정한다.

 

 

 

아래와 같이 위의 목록에 뜨게 되고 'Global include'를 체크하여 준다.

이 부분을 하지 않으면 동시에 2개의 위젯을 불러오지 못하는 듯 하다.

 

 

그리고 생성했던 위젯들을 우클릭하여 Promote to  에서 PlotWidget으로 변경

2개의 위젯에 대해 모두 적용시켜 준다.

 

 

그럼 우측의  Class가 변경되는 것을 확인할 수 있다.

 

 

 

여기까지 완료되었으면 저장을 눌러 프로젝트 폴더 경로에 .ui 파일을 생성하도록 한다.

 

그럼 다시 프로젝트로 돌아가 아래 코드를 입력한다.

 

from PyQt5 import QtWidgets, uic
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
import sys
import os

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        uic.loadUi('monitoring.ui', self)	## monitoring.ui 는 qt designer에서 생성한 파일 이름

        self.plot([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [30, 32, 34, 32, 33, 31, 29, 32, 35, 45])

    def plot(self, hour, temperature):
        self.Graph1.plot(hour, temperature)		## Graph1, Graph2 는 Designer에서 만든 위젯 이름
        self.Graph2.plot(hour, temperature)

def main():
    app = QtWidgets.QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

그럼 아래와 같은 그래프가 뜨는 것을 확인할 수 있다.

 

 

 

 

그치만 사실 위, 아래 동일한 그래프를 그릴 일은 없을 것이다.

 

따라서 MainWindow 클래스를 아래와 같이 수정하면 각각의 그래프를 나타낼 수 있다.

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        uic.loadUi('monitoring.ui', self)

        self.plot1([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [30, 32, 34, 32, 33, 31, 29, 32, 35, 45])
        self.plot2([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [20, 40, 60, 40, 30, 42, 53, 35, 64, 32])

    def plot1(self, hour, temperature):
        self.Vibration_Graph.plot(hour, temperature)

    def plot2(self, hour, temperature):
        self.Piezo_Graph.plot(hour, temperature)
반응형
반응형

Disparity Map을 생성하기 위해 한 쌍의 스테레오 이미지를 불러와 연산을 수행하여야 한다.

해당 스테레오 이미지는 아래의 링크를 통해 다운받았고 혹시 모르니 첨부해놓도록 하겠다.

 

 

 

https://vision.middlebury.edu/stereo/data/scenes2003/

 

2003 Stereo Datasets

2003 Stereo datasets with ground truth These datasets were created by Daniel Scharstein, Alexander Vandenberg-Rodes, and Rick Szeliski. They consist of high-resolution stereo sequences with complex geometry and pixel-accurate ground-truth disparity data. T

vision.middlebury.edu

left.bmp.bmp
0.48MB
right.bmp.bmp
0.48MB

 

 

 

 

 

 

 

Verilog HDL을 통해 이미지파일을 불러오고 Disparity값을 구하여 Depth Map을 생성한 후 결과 파일을 저장하는

과정을 진행하도록 하겠다.

 

 

우선 Verilog에서는 이미지파일을 그대로 가져와 연산을 수행하기 힘들기에

Matlab을 통해 .hex파일로 변환해준 후 작업을 진행해야 한다.

 

 

Matlab 코드는 위와 같다.

 

imread를 통해 bmp파일을 불러와 b에 저장하고 해당 값들은 a에 저장된 후

작성되게 된다.

 

이 과정에서 반복횟수은 375와 450은 각각 이미지파일의 Width와 Height를 의미한다.

 

위의 과정을 통해 left이미지와 right이미지 파일을 각각 left.hex, right.hex 파일로 변환해주도록 한다.

 

해당 이미지파일은 Image Rectification과정이 수행된 완전한 수평관계의 이미지들이므로 Rectification과정은 따로

수행하지 않아도 된다.

 

정확한 3차원 Depth Data를 추출하기 위해선 카메라의 초점거리와 두 카메라 사이의 간격을 알아야 정확한 거리를

계산할 수 있지만 이미지 파일만을 통해선 이러한 스펙들을 알아내기 힘들기에 초점거리와 영상 사이의 거리는 임의로 지정하고 따라서 Depth정보는 정확한 거리가 아닌 상대적인 거리임을 알아두도록 하자.

 

 

진행 순서는 아래와 같다.

 

 

1. ImageFile을 불러와 Gray_Scale의 데이터로 표현

  

   이 과정에서 1열의 Image File Data를 2차원 배열 크기로 지정해줌으로서 나중에 계산하기 용이하도록 한다.

 

 

2. 기준점 지정

 

    이 과정에서는 기준이 되는 좌측 이미지의 어떠한 점(pixel)에 대하여 계산을 진행할 것인지를 지정하게 된다.

    입력으로는 CLK신호화 En신호를 두어 En신호가 High상태라면 CLK에 맞추어 Row, Column의 좌표를 출력하고

    En신호가 다시 Low를 갖도록 한다.

 

 

3. 기준영상의 기준점과 주변 데이터를 1열의 형태로 출력

 

    2단계에서 지점을 정하였으면 해당 지점 주변의 데이터를 출력하도록 한다. 나는 9x9 크기의 윈도우를 생성하여

    진행할 것이므로 총 81개의 데이터를 1열로 표현하여 출력하도록 한다.

 

 

4. 기준영상의 데이터를 토대로 우측이미지 탐색

 

    앞에서 좌측 이미지의 데이터를 받아온 위치를 알고 있고 Stereo Image는 Rectification이 진행되었으므로 해당 Row

    만을 탐색하면 된다. 따라서 우측 이미지의 왼쪽 끝부터 오른쪽 끝까지 해당 Row의 9x9 Window를 생성하고 입력받

    은 기준 영상의 데이터와 가장 유사한 점을 선택, 좌측 기준점과 우측 탐색점과의 Disparity값을 출력하도록 한다.

 

5.  출력된 Disparity값을 통해 거리정보를 계산하고 다시 2단계로 돌아가 그 다음 지점의 기준점에 대해 위의 내용을

    반복한다.

반응형

'FPGA > Verilog 공부' 카테고리의 다른 글

VIVADO 사용법(완전 기초)  (2) 2020.12.29
Verilog를 통한 MUX회로 구현  (0) 2020.12.29
OV7670 카메라 영상 출력  (0) 2020.07.28
Verilog를 이용한 Pulse 출력 확인  (0) 2020.07.19
BRAM  (0) 2020.07.08
반응형

우선 전체적인 흐름은 아래와 같다.

 

 

 

FCLK_CLK0는 100MHz의 신호가 나오고 있고 clock_divider에서는 이를 50MHz로 바꿔준다.

 

 

camera_configure.v
0.00MB

 

 

 

clock_divider.v
0.00MB

 

 

200pulse 후 start신호가 1이 되면서 통신을 시작하게 되고 완료가 되면 led에 불이 들어오게 해놓았다.

 

VGA_OUT 모듈의 내용은 아래와 같다.

 

칼라 포멧은 위와 같이 나타내어지고 나는 RGB565 포맷을 사용중이므로 이에 맞게 핀을 설정하여 준다.

https://wiki.epfl.ch/prsoc/ov7670

 

VGA Camera extension OV7670

YUV Y U Y V Y V Y U U Y V Y V Y U Y      

wiki.epfl.ch

 

 

 

VGA_OUT.v
0.00MB

 

이를 통해 출력되는 화면은 아래와 같다.

 

 

누가봐도 색이 제대로 출력되지 않고 있다.

 

 

이는 초기 SCCB통신이 원활하게 이루어지지 않아 RGB 데이터가 아닌 HSV데이터가 카메라 모듈로부터

출력되고 있는데 이를 RGB값인마냥 그대로 VGA신호에 넣어줬기 때문에 이러한 현상이 발생한 것일 것이다.

 

따라서 SCCB 통신부터 다시 해보자

 

반응형

'FPGA > Verilog 공부' 카테고리의 다른 글

VIVADO 사용법(완전 기초)  (2) 2020.12.29
Verilog를 통한 MUX회로 구현  (0) 2020.12.29
Verilog를 사용하여 Disparity Map 생성_(1)  (0) 2020.08.28
Verilog를 이용한 Pulse 출력 확인  (0) 2020.07.19
BRAM  (0) 2020.07.08
반응형

Vivado tool을 사용하여 작업하다보면 Simulation을 사용하는 경우가 많은데

아주 간단한 사용법을 적어두려고 한다.

 

 

 

위와 같은 아주 간단한 모듈을 만든다.

 

입력은 클럭을 갖고 하나의 출력포트를 갖는 형태이다.

 

3Bit 크기의 counter을 만들어주고

counter값이 4가 되게 되면 out의 신호가 반전되는 모듈이다.

 

가장 먼저 위의 clk는 wire로 만들어주었는데

입력포트이기에 이 부분은 clk신호를 생성해주는 곳과 선으로 연결되게 될 것이다.

따라서 이 부분은 wire로 생성해 주었다.

 

그 다음은 out 출력포트인데 이 부분은 출력되는 값을 저장하여 갖고있어야 하기에 reg 형태로 만들어주었다.

 

 

따라서 출력포트는 0 혹은 1의 값을 갖게 되고  그 다음으로 4까지의 값을 갖도록 해주기 위해

3Bit 크기의 counter 을 만들어준다.

 

모든 Reg에 대해서는 초기화가 필요하다.

 

counter의 경우 모듈 중간에 생성된 부분이기에 중간에 초기화를 해주면 되고

out의 경우 모듈의 포트이기에 모듈이 생성되고 초기에 값을 가지고 있어야 하기에

initial 을 사용하여 초기화를 해준다.

 

그 다음은 counter값이 4가 되게되면 값을 0으로 바꿔주고

out의 값을 반전시키는 코드이다.

 

 

 

다음은 시뮬레이션 코드이다.

 

우선 입력신호를 0과 1로 바꿔가며 줄 것이기에

1Bit 크기의 clk신호를 만들어주고 초기화를 진행해준다.

 

그 다음 out인데 이는 위에서 생성한 모듈의 출력의 출력결과를 연결하여 표현해 줄 것이기에 wire로 생성해주었다.

 

그리고 이들을 각각 모듈의 clk와 out신호와 맵핑하여주고

테스트벤치의 clk값만을 반복적으로 변화시켜가면서 결과를 확인해본다.

 

반응형

'FPGA > Verilog 공부' 카테고리의 다른 글

VIVADO 사용법(완전 기초)  (2) 2020.12.29
Verilog를 통한 MUX회로 구현  (0) 2020.12.29
Verilog를 사용하여 Disparity Map 생성_(1)  (0) 2020.08.28
OV7670 카메라 영상 출력  (0) 2020.07.28
BRAM  (0) 2020.07.08
반응형

BRAM(Block RAM)

 

https://goodlman.tistory.com/entry/Block-RAM-in-FPGA

 

Block RAM in FPGA

*Youtube 강의를 정리해 놓은 것 https://www.youtube.com/watch?v=fqUuvwl4QJA What is Block RAM? -. 기본적으로 FPGA안에 필요한 정보, data를 저장하는 공간이다 -. Most can be initialized to non-zero valu..

goodlman.tistory.com

- 기본적으로 FPGA안에 필요한 data를 저장하는 공간으로 볼 수 있다.

- Memory의 용량은 Width와 Depth로 계산하게 되는데 Width는 몇 바이트 크기인지, Depth는 배열 원소의 갯수를

  의미한다고 보면 될 것 같다. 즉 Width는 각각의 원소의 크기를 나타내고 Depth는 배열의 크기를 의미하게 된다.

- FPGA안에 램구조를 가진 블럭이라는 의미

- 하나의 블럭램 용량은 18KBits

 

 

 

Single Port BRAM은 하나의 포트만을 사용하는 BRAM이다.

 

 

 

RAM을 설계하는 과정은 아래 링크를 들어가 참고해보자.

https://m.blog.naver.com/PostView.nhn?blogId=ansdbtls4067&logNo=221281079043&proxyReferer=https:%2F%2Fwww.google.com%2F

 

[FPGA 강의] 31강 - RAM 설계 따라하기

0. 들어가며...지난 시간 ROM 설계 따라하기에 이어서 이번 포스팅에서는 RAM 설계 따라하기 강의를 ...

blog.naver.com

 

아래와 같은 형태로 이루어져 있는데

아래 이미지는 Single Port이므로 포트 A만을 사용한다.

 

Wr En신호가 들어가게 되면 Write이 가능해지고

읽기모드만을 사용하고자 한다면 off하거나 GND에 위치시키면 된다.

 

Addr은 읽고 쓸 Data의 위치를 저장하게 되고

Wr/Rd Data는 읽고 쓸 데이터 정보를 나타낸다.

 

RAM의 Width 와 Depth의 크기에 따라 Address버스와 Data버스의 신호 갯수가 정해지게 된다.

 

 

 

아래는 Dual Port BRAM을 도식화한 것이다.

이 경우 동시에 같은 addr에 write할 수 없다.

 

 

 

FIFO FRAM은 Write/Read side로 나뉘어지고 Full/Empty flag가 있어 memory안의 Data Capacity를 알려준다.

반응형
반응형

MiniZed 보드에 보면 Pmod 포트가 있다.

여기에 Pmod VGA 어뎁터를 연결하여 모니터에 출력을 하고자 한다.

 

https://timetoexplore.net/blog/arty-fpga-vga-verilog-01

 

FPGA VGA Graphics in Verilog Part 1 — Time to Explore

This tutorial series introduces video graphics programming using FPGAs, starting with creating a VGA driver and moving onto more advanced features including bitmaps, sprites and effects. FPGAs excel at high-speed I/O and custom logic: you'll be surprised h

timetoexplore.net

위의 블로그를 참고하여 실행하였다.

 

디지털 신호들이 어떻게 VGA케이블을 통해 모니터에 출력될 수 있는지는 본 게시물에서 다루지 않도록 하겠다.

이를 자세히 설명해주는 많은 한글 자료들이 많이 있기에 참고하면 될 것 같다.

 

본 게시물에서는 그냥 코드를 가져와 어떻게 실행하는지 기본적인 내용만 다룬다.

 

우선 프로젝트를 하나 생성하여 준다.

이때 minized의 Constraint 파일도 등록하여 진행하고 보드도 minized를 선택하여 프로젝트를 생성해준다.

위와 같이 프로젝트가 생성된 것을 확인할 수 있다.

 

프로젝트 생성 후 좌측에 보이는 'IP INTEGRATOR' 에서 Create Block Diagram을 선택하면 위의 사진과 같이 윈도우가 하나 뜨게 되는데 여기서 Design name을 적어준 후 OK를 누른다.

 

위와 같이 Diagram 창의 가운데 보이는 '+'를 클릭하면 검색창이 뜨게 되는데 zynq를 입력하면

'Zynq7 Process System'이 보이게 된다.

이를 더블클릭하여 생성하여 준다.

 

위와 같이 IP가 생성되게 되고 이름을 더블클릭하면 아래와 같은 창이 뜨게된다.

 

위의 창이 뜨면 'Clock Configuration' 항목에서 'PL Fabric Clocks', 그리고 아래 목록들 중 가장 위의 CLK0 항목만

체크한 후 OK를 누른다.

 

그리고 위의 'Zynq7 Process System' IP를 생성하였을때와 같이 'Processor System Reset' IP도 추가하여 준다.

그 후 아래와 같이 선을 이어준다.

 

그리고 상단의  'Run Block Automation'을 클릭하여준다.

 

 

아래는 그 결과화면이다.

그럼 이제 소스를 입력해주자.

 

 

vga640x480 이라는 이름의 모듈을 만들어주자.

 

 

 

그 다음 top모듈을 생성하여 준다.

 

 

 

위의 문장 중

 

always@(posedge CLK)

    {pix_stb, cnt} <= cnt + 16'h4000;

 

이라는 문장이 있다.

 

이 부분은 100MHz의 CLK 펄스를 25MHz로 나눠주기 위한 과정으로 {a, b} 는 Verilog의 결합연산자 이다.

 

결합연산자란 중괄호 { }에 의해 묶인 두 개 이상의 표현이 갖는 비트들의 결합으로

위와 같은 특징이 있다.

즉 중괄호 안의 값들에 대한 비트를 순서대로 그냥 붙인다는 특징이 있다.

따라서 위의 과정에서는 

{pix_stb, cnt} 로 사용되었는데 pix_stb는 1비트의 크기를 갖는 값이고

cnt는 [15:0] 의 16비트 크기이므로 {pix_stb, cnt}는 총 17비트 크기의 값을 갖게 된다.

 

또한 cnt는 16비트의 값으로 초기에는 0의 값을 갖게 되고

16'h4000 은 2진수로 나타내면 16'b 0100 0000 0000 0000  의 값을 갖게 된다.

 

always@(posedge CLK) 에 의해 매 CLK 펄스에 맞추어

처음에는

 

             0000 0000 0000 0000

           +0100 0000 0000 0000

= pix_stb, 0000 0000 0000 0000

 

이 되고 두번째 posedgeCLK에서는

 

             0000 0000 0000 0000

           +0100 0000 0000 0000

= pix_stb, 0100 0000 0000 0000

 

 

             0100 0000 0000 0000

           +0100 0000 0000 0000

= pix_stb, 1000 0000 0000 0000

 

 

 

             1000 0000 0000 0000

           +0100 0000 0000 0000

= pix_stb, 1100 0000 0000 0000

 

 

             0000 0000 0000 0000

           +0100 0000 0000 0000

= pix_stb, 0000 0000 0000 0000   이 되고 pix_stb의 값이 1이 되게 된다.

 

그리고 위의 과정을 다시 반복하여 pix_stb 값은 다시 0이 되게 되고 따라서 결과적으로

CLK의 펄스 주기를 1/4 로 나누는 효과가 발생하게 된다.

 

즉 100MHz의 CLK를 통해 25MHz의 pix_stb 신호를 만들 수 있게 된다.

 

 

그렇게 되면 Design Source에 아래와 같이 뜨게 된다.

 

top 모듈에서 vga640x480 모듈의 신호를 사용하기에 위와 같이 뜨게된다.

 

 

그럼 이제 다시 Diagram으로 돌아와서 모듈을 추가해준다.

 

그럼 생성한 모듈이 2개이므로 아래와 같이 2개 항목이 뜨게 된다.

 

 

하지만 top모듈 안에서 vga640x480 모듈을 가져와 사용하므로 Diagram에서는 top모듈만 추가하여준다.

 

그리고 위와 같이 선을 연결하여준다.

 

그리고 top 모듈 각각의 출력포트를 우클릭하면 다음과 같이 뜨게된다.

 

Create Port를 선택하여 진행하고 이를 모든 출력에 대해 진행하여준다.

 

그 다음 좌측의 Sources 목록에서 Zynq_system 항목을 우클릭 한 후 Create HDL Wrapper 선택

 

 

 

그럼 아래와 같이 top모듈과 그 하위 vga640x480 모듈이 추가되었음을 확인할 수 있다.

 

 

 

그 다음 Zynq_system_wrapper을 우클릭한 후 Set as Top 을 선택

 

 

 

그 후 .xdc 파일을 열어 minized의 포트와 모듈의 출력신호를 mapping하여준다.

 

 

Minized의 포트관련 정보는 첨부파일에 있다.

[PRJ-MI1DEV,1-01-04]_Schematic Prints.pdf
1.03MB

 

 

 

여기까지 완료되었으면 Synthesis와 Implementation, generate Bitstream을 차례차례 실행하여준다.

 

 

 

Generate Bitstream까지 완료되었으면 아래 사진과 같이 OpenTarget, Auto Connect를 실행

 

 

 

연결 되었다면 Program Device에서 해당 장치를 선택하여준다.

그리고 Bitstream파일을 장치에 프로그래밍해준다.

 

 

 

 

 

화면에 출력되는 것을 확인할 수 있다.

반응형
반응형

 

 

 

 

Minized를 구입하였고 Vivado에서 이를 다뤄보려 한다.

 

이를 위해 프로젝트를 생성해줘야 하는데 생성하는 과정에서

보드의 Constraint 파일이 없으므로

아래 파일을 다운받은 후 위의 "Add Constraints" 윈도우에서 아래의 파일을 추가하여준다.

MiniZed_Constraints_Rev1_170613.xdc
0.02MB

 

 

 

 

그 다음 창인 "Default Part" 윈도우에서 MiniZed보드를 선택해야 하는데 아래 사진에서 볼 수 있듯이

Minized가 검색되지 않는 경우일 수 있다.

 

 

 

 

 

C:\Xilinx\Vivado\2017.4\data\boards\board_files

 

위의 경로로 이동해보면 해당되는 minized에 대한 정보가 없기 때문이다.

따라서 아래 첨부된 파일인 MiniZed_Board_Definition_File_1p2.zip파일을 압축을 풀고

위의 경로에 추가하여준다.

 

MiniZed_Board_Definition_File_1p2 (1).zip
0.46MB

 

 

이렇게 minized폴더를 만들어 넣어주었다.

 

그리고 Vivado를 다시 실행시키면 위와 같이 Minized 항목이 추가된 것을 확인할 수 있다.

 

 

반응형

'FPGA' 카테고리의 다른 글

MiniZed 를 통한 Pulse 출력  (0) 2020.12.29
Tera Term(테라텀)을 사용하여 FPGA 보드 다루기  (0) 2020.09.23
MiniZed 를 통한 VGA 출력(Pmod VGA)  (0) 2020.07.02

+ Recent posts