전체 글 19

[CNN]Convolution Control

Convolution은 Control 신호에 따라 움직이게된다Systolic array는 하나의 Channel에 대한 연산을 거치게된다이와같이 구성되어 이전에도 설명한이 모식도를 따라 움직이게된다PE에는 각 Weight가 들어가있고  Pix data에 따라 Row에대한 Convolution 연산을 진행하게된다이와같은 초기 값이있으면 첫번째 연산에서PE에 Weight는 고정되어있고Fmap에서 한열씩 계산되는것이므로, 6Cycle뒤 이와같이 Conv 연산이 이루어지게된다. 최종적으로 이처럼 연산이 이루어진다고 보면된다 왼쪽그림은 모든 사각형이 3*3이라고보면된다(아래에 깔린거처럼 생각해주면 편할듯..)이 연산은이처럼 하나의 채널에 대한 연산이다하지만 Conv 연산은 여러 Channel에 대해 수행하게된다이처..

CNN 2025.01.16

[AXI]AXI4-Stream

AXI4-Stream은 1:1 연결에서 고효율 Data 전송을 위해 사용된다. 이런 아키텍쳐를 갖고 비디오 고효율 전송이 가능하다윗단의 TVALID TREADY가 Handshake가 일어나게 되면 Information에 있는 data가 넘어가게 된다 이 Waveform을 보게되면 Master Slave는 순서 상관없이 준비가 된다면 '1'로 Set한다1로 set된다면 Handshake 발생 전까지 0으로 Low로 변하면 안된다이 두가지를 지켜줘야한다 변수에 대한 설명을 하자면 일반적으로 알고있는 변수들과 크게 다르지않다앞에붙어있는 Transmission의 약자이다 TDATA 단위는 byte 단위를 지원한다. AXI4의 기본단위는 Byte따라서 TDATA는 [8n-1:0] ,TSTRB[n-1:0]은 스트로..

AXI 2025.01.15

[AXI] AXI4-Lite Interface

1.AXI4-LiteAXI4-Lite는 AXI4의 단순화된 버전이니 AXI4-Lite에 대해서 먼저 공부하고 AXI4를 리뷰해 보도록 하자 Processor (like PS): 프로세서는 SoC에서 소프트웨어를 실행하는 핵심 연산 장치입니다. 이 프로세서는 **PS(Processing System)**라고 불리며, SoC에서 소프트웨어적으로 하드웨어를 제어합니다. 일반적으로 ARM Cortex 코어와 같은 범용 프로세서를 포함합니다.역할: 사용자 소프트웨어 실행, 버스를 통해 하드웨어 IP 블록을 제어.BUS: 프로세서와 IP 블록 간의 데이터 및 제어 신호를 연결하는 인터페이스입니다. 주로 사용되는 버스 프로토콜: AXI (고속 데이터 전송), APB (저속 주변 장치 연결), AHB (중간 성능 데이..

AXI 2025.01.14

[CNN] Padding

이와같은 그림을 보게되면 Input featuremap을 거치게되면 작은 Kernel(Weight)를 거치게 되면 Output featuremap은 작아지게된다 이와같은 공식을 따르게 되는데 여기서 P는 Padding ,K는 Kernel, S는 Stride이다Ouput map은 이와같이 기술되는데Padding을 사용하지않았다면 Output Featuremap은 2*2 Size가 된다 이와같이 Padding을 사용하게되면Output Featuremap이 증가하게된다 이는이 공식에 따라 확인할수있다 Input Featuremap은 3*3이였고 Stride는 1로 설정하였으므로 Output Feauturemap은 4*4가된다이는 Fmapdata를 읽을때 rd_en을 꺼줌으로써 0을 읽어오는것처럼 활용할 수있다..

CNN 2025.01.14

[CNN] CNN in Verilog 1

YOLO Series나 다른 CNN module을 보면 Convolution Network가 자주 사용되는것을 볼 수 있다.기본적으로 물체를 탐지하는 Object detection을 보면 간단한 도식도로 이런식으로 생겼다. Input Image가 Convolution Network를 거쳐 Output Image를 생성한다 솔직히 나는 처음배울때 전혀 와닿지 않았다. Convolution이 뭐고 input image가 뭐고 output image가 뭔데.... InputImage는 원본사진이고 Conv Network를 거쳐 OutputImage로이와같이 객체를 탐지해서 Output Image가 나오게된다이를 Verilog로 설계하는것은 매우복잡하기때문에 기초부터 공부하여 설계를 해보도록 하자 1. Conv..

CNN 2025.01.13

[Window11]Mobaxterm을 이용해 Linux환경으로 Vivado 2022.2 설치

1. Mobaxterm 다운로드https://mobaxterm.mobatek.net/download.html MobaXterm free Xserver and tabbed SSH client for WindowsThe ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!mobaxterm.mobatek.net위 링크를 통해 Mobaxterm을 다운받는다Installer edition을 다운받는다 이후 Microsoft Store에 방문하여 Ubuntu 22.04.05를 다운받는다 이후 Ubuntu를 실행했을때 이와같이 error가 발생한다면 1.Windows 기능Hyper-V , Linux용 W..

Linux 2025.01.06

[AXI]2.FIFO

1. FIFO란FIFO란 (First Input First Output)의 의미입니다Queue와 비슷한 개념인데  이와같이 먼저들어온 Data가 먼저 나간다는 뜻을 의미합니다Data가 들어오는걸 EnqueueData가 나가는걸 Dequeue라고 합니다    선형큐를 살펴보게되면, Front와 Rear의 포인터가 이동하며 데이터를 저장하고 읽게 됩니다 하지만 선형큐의 문제점은6의 용량을 가진 큐가 제거 연산을 수행할 때마다 용량이 줄어들고 있다.오른쪽처럼 제거 연산 후 하나씩 옆으로 옮기기에는 비용이 너무 크다. 따라서 이와같이 순환큐를 구성하게됩니다나누기 연산자를 사용하여, 데이터가 계속 쓰여질 수 있도록 합니다.     FIFO는1.Write operation: full condition이 발생할 때까..

AXI 2025.01.06

[AXI] 1. AXI 이론

1.AXI기본개념AXI의 기본개념입니다솔직히 말해서 처음공부할때 와닿지 않았습니다.즉 통신이름중 하나라고 생각하면 편할거 같습니다 AXI의 기본은 DATA를 제공해주는 Source(Master)                        DATA를 받는 Destination(Slave)로 구성되어있습니다Source(Master)에서는 VALID 신호를 제공하고 Destination(Slave)에서는 READY신호를 제공합니다즉 데이터가 엉키지 않도록 Master에서는 Valid신호를 줌으로써 데이터 전송준비완료 신호를 주는것이고, 그와함께 전송할 Data도 전송합니다Slave에서는 Data를 받을 준비가 되었다면 READY 신호를 줌으로써 Data를 전송받게 됩니다 Timing Diagram이와같이 VAL..

AXI 2025.01.05

Linux 기초 command

1. 파일 및 디렉토리 관리ls: 디렉토리의 내용(파일 및 폴더)을 나열.ls -l: 상세 정보 표시 (권한, 소유자, 파일 크기 등).ls -a: 숨김 파일 포함하여 표시.cd: 디렉토리 이동.cd /home: /home 디렉토리로 이동.cd ..: 상위 디렉토리로 이동.cd ~: 홈 디렉토리로 이동.cd - : 이전 디렉토리로 이동 pwd: 현재 작업 중인 디렉토리의 경로 출력.mkdir: 새 디렉토리 생성.mkdir new_folder # new_folder 디렉토리 생성.rmdir: 빈 디렉토리 삭제.rmdir empty_folder # empty_folder 디렉토리 삭제.rm: 파일 또는 디렉토리 삭제.rm file.txt # file.txt 삭제.rm -r folder # folder와 그 ..

Linux 2025.01.04