2024/09 20

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

AI 기반 응급배송드론 최적화된 하늘길 구축

● 진행기간 - 2022.06.08 ~ 22.08.22 ● 요약 - 공공데이터를 활용, 군집분석을 통한 드론공항 위치 선정 - AI가 최적의 하늘길을 계산 - 해당 모델이 탑재된 Web 관제 시스템 구축 ● 역할 - 프로젝트 기획, 군집분석, 강화학습 알고리즘 보상체계 설계, 최단경로 알고리즘, 웹 구현 (총 3명 중 기여도 50%) ● 성과 - 국토교통부 빅데이터 활용 공모전 우수상 수상   https://github.com/MiddleJo/SkyRoad_for_Drone GitHub - MiddleJo/SkyRoad_for_Drone: Optimal drone aeronautical route calculation for making emergency delivery system using droOp..

AI 2024.09.09

스마트 팩토리 APS 시스템과, 수요 예측 및 재고 관리 자동화

● 진행기간 - 2022.04.15 ~ 22.05.20 ● 요약 - 콘크리트 혼화제 회사의 데이터로부터 수요 예측 - 대시보드 구축 및 원자재 발주 자동화 ● 역할 - 데이터 전처리, 변수 개발, 시계열 모델 알고리즘, Tableau 구조설계 (총 6명중 기여도 60%) ● 성과 - 수요량 예측 개선을 통한 발주 오차율 개선 ( 30% → 10% 내외 ) - 재고관리부터 발주까지의 자동화로 일평균 2시간가량 절약 - Tableau를 활용한 대시보드로 효율적인 고객관리 및 회의 준비 시간 대폭 감소  https://github.com/MiddleJo/Automatic_stock_management GitHub - MiddleJo/Automatic_stock_management: Automatic stock..

AI 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

유통회사 구매감소고객 개인맞춤형 추천 솔루션

● 진행기간 - 2022.03.07 ~ 22.04.01 ● 요약 - 유통회사의 고객 구매데이터 2700만 건을 분석 - 고객 유형별 솔루션과 개인별 솔루션을 합쳐 유의미한 추천 시스템 구축 ● 역할 - 메인 이슈 탐색, 군집분석, 변수개발, 머신러닝 알고리즘, 추천시스템 개발 및 솔루션 도출 (5명 중 기여도 60%) ● 성과 - 방대한 데이터에서 필요한 부분을 빠르게 추출하고 분류하는 방법 학습 - 많은 고객의 개별 행동들을 분석하기 위해 데이터들을 가공하는 방법 학습 - 테이블 생성 및 연결 관리의 중요성을 학습 - 도메인지식의 중요성 인식 - ETL의 기본과 고객데이터 분석에 대한 중요한 경험이 되었음  https://github.com/MiddleJo/Marketing_solutions_for_t..

AI 2024.09.05

ARM Cortex M4 core - (6) PWM을 활용한 주파수 변형 (악보연주)

목차1. 배경2. 보드 구성 및 소스코드3. 실습결과  1. 배경 칩 설계를 공부하다 보니, 모터 제어가 필요한 경우가 있었습니다.모터 제어 등에서 진동수 혹은 주기를 다룰 때는 PWM이 필요합니다.   이번에는 PWM과 Buzzer를 이용해 노래를 연주해보려고 합니다.      2. 보드 구성 및 소스코드이번에도 역시 다른 분석 없이 PWM의 이론을 테스트할 것이기 때문에,Board Select 방식으로 진행하겠습니다.   - 보드 세팅   - TIMER 세팅  Prescaler는 설정하기 나름입니다.결과적으로 원하는 주파수만 계산할 수 있으면 됩니다.   - PV/* USER CODE BEGIN PV */#define c 261.63#define c_sharp 277.18#define d 293.66..

Embedded 2024.09.04