전체 글 19

[AXI]RDMA 이론

DMA는 Direct Memory Access의 약자이다 DMA IP를 설계하면 HardWare가 직접 외부에 있는 메모리의 Data를 Read와 Write를 할 수 있게된다.DDR Controller가 DDR Interface로 접근하여 외부에 있는 메모리에 Data를 적게되는것이다 DRAM에 접근하기 될때 중요한 Performance 요소가있다1. DATA BIT WIDTH(BUS WIDTH)2. Pipline   1.Multiple Outstanding address   2.Burst Length3.Acces pattern   1.Random Access vs Incremental Access1. DATA BIT WIDTH(BUS WIDTH) Ideal Bandwidth = (Byte/cycle)*..

AXI 2025.02.05

[DeepLearning]Epoch,Batch의 의미

딥러닝을 돌리게되면 Epoch, Batch size등 용어들이 있다근데 이게 뭔가 와닿지가 않았다. Epoch을 높게하면 mAP가 증가하는 그런 이점이 있는거같은데 Epoch가 뭐지.. Batch size는 또 뭐고..Epoch과 Batch Size의 의미Epoch (에포크)데이터셋 전체를 한 번 신경망에 학습시키는 과정을 1 Epoch라고 합니다.예를 들어, 1개의 데이터셋이 1000개의 이미지로 구성되어 있고, 한 번의 Epoch에서 1000개의 모든 데이터를 학습하면 Epoch = 1입니다.일반적으로 여러 Epoch 동안 학습을 반복하며, Epoch가 많을수록 모델이 더 많은 데이터를 학습하지만, 너무 많으면 **과적합(Overfitting)**이 발생할 수 있습니다.Batch Size (배치 크기..

DeepLearning 2025.02.05

[AXI]AXI4 Standard

AMBA란 뭐냐..Advanced Microcontroller Bus Architecture의 자로 SoC에서 이용하는 표준 spec이다Interconncetor를 이용하여 데이터가 전달된다. 이를 Bus라고한다General-Purpose AXI Port는 AXI Lite로 생각할수있고 High Performance AXI port는 AXI standard로 볼수있다여기보면 5개의 Channel이 있고 상단부에있는건 Read Channel 아래있는건 Write Channel이다각 Channel당 Valid Ready Handshake가 일어나야 data가 전송되는것이다Transfer는 handshake가 일어나 Data가 전달되는것을 Transfer라고하고Transaction은 행동 전체를 말한다 즉 R..

AXI 2025.02.04

[CNN]5. MNIST Post Conv Layer

오늘 해볼것은 Post_Conv_top의 Review입니다드디어 하나의 Layer동작에 대해서 마무리 짓게 되네요Post_Conv_top은 Activation과 Pooling Layer가 존재합니다Yolo Series에 대해서 보게되면  Activation Layer와 Maxpooling Layer가 사용되게 됩니다 1.Activation Layer이게 ReLu함수인데 음수의 값은 다 0으로 만들어 주게됩니다이와같은 이유로 Activation Function을 사용하게됩니다2. MaxPooling Layer 이와같은 이유로 사용하게 됩니다코드는 비교적 간단합니다    input clk,    input nRst,        input [DW*16-1:0] data_in,        input post..

CNN 2025.01.19

[CNN]4. MNIST Conv0_Layer

오늘은 실제 Conv 동작이 일어나게되는 Conv0Layer에 대해서 살펴보겠습니다 module Conv0_Layer#(    parameter DW=16,    parameter WBAW=4,    parameter FBAW= 10,    parameter Out_ch=16)(    input clk,    input rst_n,    input Active_flag,//Active flag는 Post Conv Top에서 Activation및 Maxpooling이 일어날때도 포함해야하기때문에 이를 포함시켜주는것것    input [5:0] state,    input Conv_start,// Convolution 연산을 시작하도록 지시하는 신호입니다.    output active_done,    in..

CNN 2025.01.19

[AXI]AXI Lite 실습

Vivado를 실행하고 Create and Package New IP를 클릭하면 이와같이 나오는데 AXI4 peripheral을 클릭해주고 생성해준다Master로써 이용할꺼기 때문에 Master로 이름을 바꾸고클릭해주자이와같이 되는데 Scope에서 끌어와주고 Protocol Instance를 봐 끌어오게되면 위와같이 되고 다시 Simulation을 돌리면 이처럼 결과가 나온다이는 편의성을 위해 재구성한것인데 AXI에서는 Write Channel에서 3개의 Channel이 있었다Address, Data, Response첫번째 핑크색으로 되어있던게 Address Channel이다AWADDR즉 DATA를 써놓을 주소를 SLAVE에 전송하는것이다. VALID와 AWREADY가 HANDSHAKE가 일어나게되면다음..

AXI 2025.01.16

[CNN]3. MINST Conv0_Input Buffer

오늘은 Conv0 In Buff에 대해서 리뷰해보겠습니다module Conv0_InBuff#(    parameter DW = 16,         // 데이터 폭 (16비트)    parameter WBAW = 4,        // weight buffer 주소 폭    parameter FBAW = 10,       // feature map buffer 주소 폭    parameter Out_ch = 16      // 출력 채널 수    )(    input clk,                 // 클럭 신호    input nRst,                // 비동기 리셋 신호 (active-low)        input Conv_done,           // Convolution..

CNN 2025.01.16

[CNN]2. MNIST Ctrl

오늘 여기서 살펴볼것은 Ctrl 블럭입니다 module Ctrl#(    parameter M_AXI_ADDR_WIDTH = 32    )(        input clk,    input nRst,        input start_cnn,        input conv0_done,    input conv1_done,    input active0_done,    input active1_done,    input FC_done,    output reg conv0_start,    output reg conv1_start,    output reg Conv_inbuff,    output reg Conv_outbuff,        output reg [5:0] state,        outpu..

CNN 2025.01.16

[CNN]1. MNIST

MNIST 데이터셋은 머신 러닝 및 딥러닝 분야에서 가장 널리 사용되는 데이터셋 중 하나로, 숫자 필기체 인식(Handwritten Digit Recognition) 문제를 해결하기 위해 설계되었습니다. 이 글에서는 MNIST 데이터셋의 특징과 이를 하드웨어 관점에서 설계하는 데 필요한 요소들을 상세히 다뤄보겠습니다.MNIST 데이터셋의 기본 정보구성:10개의 클래스: 숫자 '0'부터 '9'까지.각 데이터는 28x28 크기의 그레이스케일 이미지로 이루어져 있으며, 픽셀 값은 0에서 255 사이입니다.총 70,000개의 이미지로 구성되어 있습니다:훈련 데이터: 60,000개테스트 데이터: 10,000개입력 데이터 크기:한 이미지는 28x28 = 784개의 픽셀로 구성됩니다.각 픽셀은 8비트(1바이트)로 표..

CNN 2025.01.16