RTL, Synthesis, P&R 12

Filter - (2) FPGA에서 CNN구현

진행년월: 24.07 본래 다른 곳에 올리려고 했다가 옮기는 중에설명이 전부 날아가버려서, 우선은 과정 정도로 남겨놓고빠른 시일 내에 자세한 설명 다시 작성하도록 하겠습니다. 목차1. 배경2. 과제 정의 및 개요3. 소스코드4. 시뮬레이션 결과  1. 배경CNN 모델 중 가장 기본적인 Lenet-5 모델을 구현해보려고 합니다.메모리 등을 고려해야 하기 때문에,성능 자체를 끌어올리기보다는 구현 자체에 초점을 맞춥니다.  2. 과제 정의 및 개요  구현할 모델은 위와 같습니다. 1. CNN Python코드 작성2. Verilog 구현용 C코드 작성3. Verilog 코드 구현4. 이미지 예측 정확도 평가 3. 소스코드- Python CNNimport tensorflow as tffrom tensorflow...

RTL, Synthesis, P&R 2024.09.09

Filter - (1) 2차원 Filter

진행년월: 24.07 본래 다른 곳에 올리려고 했다가 옮기는 중에설명이 전부 날아가버려서, 우선은 과정 정도로 남겨놓고빠른 시일 내에 다시 작성하도록 하겠습니다. 목차1. 배경2. 과제 정의 및 개요3. 소스코드4. 시뮬레이션 결과  1. 배경Convolution 연산은 신호 처리 부분에서 많이 사용합니다.특히, Filtering이 주된 용도이고, HPF, LPF가 있겠죠. 저는 이번에 2차원 Filter를 이해하고 설계해본 뒤에application으로 이미지 처리 모델인 CNN을 구현해보려고 합니다.  2. 과제 정의 및 개요 제가 사용할 필터는 아래와 같으며, LPF(Low Pass Filter) 입니다.  위 필터는 중심을 기준으로 평균화해줍니다. 원본 이미지와 필터링된 이미지를 먼저 보면, 좌측(..

RTL, Synthesis, P&R 2024.09.09

Cortex-M0 SOC 활용 - (3) Snake game with API

진행년월: 24.08   IDEC 강의 "SOC 설계 및 구현" 에서 실습하였습니다.내용이 너무 방대하고, 자료가 많고 용량이 크기 때문에적절하게 정리할 수 있는 방법을 찾고 올리도록 하겠습니다.   DE2-115 Board- Intel FPGA Cyclone IVQuartus II- Verilog codes (H/W) Keil uVision- Assembly codes (S/W)Process1. Quartus II에서 사용할 Peripheral을 AHB-Lite에 적절히 연결2. API들을 추가3. Quartus 에서 compile, program 후 동작 확인

RTL, Synthesis, P&R 2024.09.09

Cortex-M0 SOC 활용 - (2) Peripheral with C,CMCIS

진행년월: 24.08 IDEC 강의 "SOC 설계 및 구현" 에서 실습하였습니다.내용이 너무 방대하고, 자료가 많고 용량이 크기 때문에적절하게 정리할 수 있는 방법을 찾고 올리도록 하겠습니다.   DE2-115 Board- Intel FPGA Cyclone IVQuartus II- Verilog codes (H/W) Keil uVision- Assembly codes (S/W)Process1. Quartus II에서 사용할 Peripheral을 AHB-Lite에 적절히 연결2. 메모리맵을 참고하여 Keil에서 ASSEMBLY 코드 작성 후 빌드3. 완성된 code.hex를 FPGA/AHB_BRAM/에 복사4. Quartus 에서 compile, program 후 동작 확인

RTL, Synthesis, P&R 2024.09.09

Cortex-M0 SOC 활용 - (1) AMBA3 AHB-Lite와 Pheripheral

진행년월: 24.08 IDEC 강의 "SOC 설계 및 구현" 에서 실습하였습니다.내용이 너무 방대하고, 자료가 많고 용량이 크기 때문에적절하게 정리할 수 있는 방법을 찾고 올리도록 하겠습니다.   DE2-115 Board- Intel FPGA Cyclone IVQuartus II- Verilog codes (H/W) Keil uVision- Assembly codes (S/W)Process1. Quartus II에서 사용할 Peripheral을 AHB-Lite에 적절히 연결2. 메모리맵을 참고하여 Keil에서 ASSEMBLY 코드 작성 후 빌드3. 완성된 code.hex를 FPGA/AHB_BRAM/에 복사4. Quartus 에서 compile, program 후 동작 확인

RTL, Synthesis, P&R 2024.09.09

16KB Cache Memory Controller - (1) RTL 및 Coverage

진행년월: 24.06목차1. 배경2. 과제 정의 및 개요3. 소스코드4. 시뮬레이션 결과  1. 배경규모가 큰 설계를 하게 된다면, 메모리에 접근은 반드시 필요하게 됩니다.Cache는 고속으로 일을 처리해 응답시간을 줄여주고,DRAM 등에 접근하는 횟수를 줄여주어 메모리 부하를 줄여줍니다. 이전에 Testbench들은 몇 가지 의도된 케이스를 직접 만들어 실험하였고,모든 케이스가 검증되었다고 볼 수는 없습니다.Cache 메모리 컨트롤러를 설계하며,다양한 Test case들에 대해 Coverage를 올리는 Verification에 대해 학습해 봅니다.  2. 과제 정의 및 개요 위 그림처럼 원래는 Cache가 DRAM에 접근하지만,이번 설계에서는 조금 더 간단하게 하기 위해Bus Interface가 있다고..

RTL, Synthesis, P&R 2024.09.07

UART 통신 - (2) Arm보드로 FPGA LCD 제어

- 이전 글(1) RTL : https://chonh0531.tistory.com/5 UART 통신 - (1) RTL목차1. 배경2. 과제 정의 및 개요3. 소스코드4. 시뮬레이션 결과  1. 배경지난 프로젝트에서 컴퓨터와 신호를 주고받기 위해 UART 통신을 사용하였는데요,UART 통신도 이해하고 Verilog로 구현해보고chonh0531.tistory.com 목차1. 과제 개요2. 소스코드3. 실습 결과  1. 과제 개요이전에 구현해 본 UART_RX를 테스트해 보기로 합니다.UART 신호 생성은 ARM Cortex-M4 Core가 있는 NUCLEO-F429ZI 보드를 이용하여FPGA에서 LCD를 제어해 보도록 합니다. 1. 컴퓨터에서 UART 통신으로 Nucleo 보드에 명령을 전달2. Nucleo..

RTL, Synthesis, P&R 2024.09.03

UART 통신 - (1) RTL

진행년월: 24.05목차1. 배경2. 과제 정의 및 개요3. 소스코드4. 시뮬레이션 결과  1. 배경지난 프로젝트에서 컴퓨터와 신호를 주고받기 위해 UART 통신을 사용하였는데요,UART 통신도 이해하고 Verilog로 구현해보고자 합니다.Receiver 부분과 Transmitter 부분이 있는데,전부 구현은 하지만, 테스트 단계에서SPI 때처럼 Receiver 부분을 중점적으로 테스트하려고 합니다.  2. 과제 정의 및 개요 1. TX, RX 2개의 핀을 사용합니다.2. 10비트 데이터를 교환하며 구성은 다음과 같습니다.    - [0] 비트는 start bit (0)    - [1~8] 비트는 8비트 data    - [9] 비트는 end bit (1)3. 16배로 오버샘플링하며, 중앙 샘플링 방법을..

RTL, Synthesis, P&R 2024.09.03

32-bit SPI Interface - (3) Arduino로 FPGA Motor 제어

- 이전 글(1) RTL : https://chonh0531.tistory.com/2(2) Synthesis, P&R : https://chonh0531.tistory.com/3목차1. 과제 개요2. 소스코드3. 실습 결과  1. 과제 개요이전에 구현해 본 SPI_Slave를 테스트해 보기로 하였고,Master 역할로 Arduino Uno 보드를 이용하여FPGA에서 Motor를 제어해보도록 합니다. 1. 컴퓨터에서 UART 통신으로 Arduino Uno 보드에 명령어를 전달2. Arduino Uno는 FPGA에 SPI 통신으로 명령을 전달3. FPGA는 data 부분의 마지막 4비트를 모터 속도제어에 이용   2. 소스코드- SPI_Slave`timescale 1ns / 1psmodule top( ..

RTL, Synthesis, P&R 2024.09.03

32-bit SPI Interface - (2) Synthesis, P&R

- 이전 글(1) RTL : https://chonh0531.tistory.com/2 SPI 통신 - (1) RTL목차1. 배경2. 과제 정의 및 개요3. 소스코드4. 시뮬레이션 결과  1. 배경모든 칩은 통신이 필요하기 때문에 통신 모듈이 들어가있습니다.그중에서 좀 기본적인 통신 모듈중 하나인 SPI통신을 이chonh0531.tistory.com    목차1. 합성 코드2. Pre-Layout Simulation3. P&R4. Post-Layout Simulation  1. 합성 코드리눅스 환경에서 진행하였으며, 디렉토리는 다음과 같습니다.SPI  ─  SIM  ─ function_SIM ─ [SPI_Slave.v , tb_SPI_Slave.v]                     └ pre_SIM ─..

RTL, Synthesis, P&R 2024.09.03