FPGA

재미있는걸 알게되서 조금 조사 해 봤다

개념

  • https://ko.wikipedia.org/wiki/FPGA
  • https://namu.wiki/w/FPGA

코딩이 가능한 임베디드 장비로 ASIC이 특정목적에 맞게 설계를 하는반도체라면
FPGA는 조금 더 범용적인 장비.. 하지만 일반적인 CPU보다는 조금 더 임베디드한? 동작을 하는 장비다
당연히 ASIC보다는 조금 느리지만 특화된 기능에 대해 CPU보다는 빠른 동작이 가능한 장비
ethernet처럼 아주 고정된 동작만을 한다면 ASIC을 사용하겠지만
자율주행, 5G, IoT 처럼 아직 변화가 많이 발생할만한 분야라면 FPGA를 사용

원래 설명

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

코딩

  1. 언어는 Verilog, VHDL, schematic
  2. 컴파일(synthesis)
  3. 모듈의 위치와 선을 배치하는 작업인 라우팅을 한다고???
  4. 퓨즈 설정으로 회로를 구성시킨다고???
  5. flash나 eeprom에 넣어 실행(펌웨어?)

그냥프로그램만 넣어서 쓸 수 있는건 아닌 모양이다. 여러개의 input과 여러개의 output이 있고 이것중에 일부를 선택해서 사용해야 하는 형태일까

FPGA 코딩으로 할 수 있는 것

  • http://wiki.vctec.co.kr/devboard/fpga/spartan-3a-fpga-gaebalbodeu–elbert/overview
  • https://dkeemin.com/vivado-verilog-%EC%BD%94%EB%94%A9%ED%95%B4%EB%B3%B4%EA%B8%B0/

사진 인코딩, 비디오 스트링 전처리 등
방화벽, 웜바이러스, 디도스 등등 – 패턴화된 네트워크 처리

FPGA router project

FPGA로 라우터를 만든다면?

  • https://en.wikipedia.org/wiki/NetFPGA
  • https://www.turris.cz/cs/omnia/predstaveni/
  • https://www.solid-run.com/marvell-armada-family/macchiatobin/
  • https://librecmc.org/
  • https://openwrt.org/toh/recommended_routers

Custom Router

라우터 OS

  • OPENWRT
  • DD-WRT
  • pfsense
  • VyOS
  • suricata

OpenWRT

https://openwrt.org/
공유기

임베디드에 설치. 오래된 공유기 안쓰는거에 설치해서 사용
x86은 공식지원이 없다. uefi 지원은 별도 빌드 필요

DD-WRT

https://dd-wrt.com/
공유기

pfsense

https://www.pfsense.org
공유기

BIRD

https://bird.network.cz/
데탑

REF