learn-fpga
FPGA, yosys, nextpnr, RISC-V 배우기
목표: 학생 한 명당 약 $40의 비용으로 FPGA, 프로세서 설계, RISC-V 교육 자료를 만드는 것입니다.

FemtoRV: 최소한으로 구성한 RISC-V CPU
FemtoRV는 최소한으로 구성한 RISC-V 설계로, RISC-V 명세를 바탕으로 직접 작성한 읽기 쉬운 Verilog 소스로 이루어져 있습니다. 가장 기본적인 버전(quark)은 RV32I 코어로, VERILOG 코드가 400줄(주석이 달린 버전)이며 주석을 제거하면 100줄입니다. 더 정교한 버전도 있으며, 그중 가장 큰 버전(petitbateau)은 RV32IMFC 코어입니다. 저장소에는 UART, LED 매트릭스, 소형 OLED 디스플레이, SPI RAM, SD 카드용 드라이버를 갖춘 SoC도 함께 들어 있습니다. 가장 기본적인 구성은 Lattice IceStick(< 1280 LUT)에 들어갑니다. 프로세서 설계와 RISC-V 프로그래밍을 가르치는 데 사용할 수 있습니다.
LiteX 가지고 놀기: SoC를 조립하는 플러그 앤 플레이 시스템
저장소에는 LiteX 예제가 포함되어 있습니다. LiteX 프레임워크는 SoC를 만들기 위한, 잘 설계되고 사용하기 쉬운 프레임워크입니다. Python으로 구성 요소(프로세서, SDRAM 컨트롤러, SD 카드 컨트롤러, USB 등)를 조립하여 SoC를 만들 수 있습니다. FemtoRV는 LiteX에서 직접 지원됩니다(SoC의 프로세서로 FemtoRV를 선택하면 LiteX가 이 저장소에서 직접 내려받습니다).
블링키에서 RISC-V까지
에피소드 I에서는 LED를 깜빡이는 가장 단순한 설계에서 시작하여 계산을 수행하고 그래픽을 표시할 수 있는 완전한 기능의 RISC-V 코어까지, 나만의 RISC-V 프로세서를 단계별로 만드는 방법을 배웁니다.
에피소드 II에서는 파이프라인 프로세서를 설계하는 방법을 배웁니다.
링크 - 기타 FPGA 자료
- TinyPrograms 소프트코어에서 실행해 볼 수 있는 작지만 흥미로운 C 프로그램 모음
- LiteX SoC를 만들기 위한 Amaranth(Python 기반 HDL) 프레임워크
- Silice 제 친구 Sylvain Lefebvre가 만든 새로운 HDL
- FuseSOC와 Edalize, FPGA 도구용 패키지 관리자 및 추상화 계층
- PipelineC C 프로그램을 파이프라인 방식의 특화 코어로 변환합니다!
- ultraembedded 놀라운 자료 모음, FatIOLib,ExactStep...
- picoRV Claire Wolf가 만든 코어로, 제게 가장 큰 영감을 준 원천
- VexRiscV와 NaxRiscV, Charles Papon이 SpinalHDL로 만든, 성능이 뛰어나고 구성 가능한 파이프라인 코어 및 비순차(OoO) 실행 코어
- SERV 비트 직렬 ALU를 사용하는 가장 작은 RiscV 코어
- DarkRiscV 단순한 파이프라인 코어(전설에 따르면 하룻밤 만에 작성됨)
- kianRiscV 단순하지만 Linux를 실행할 수 있는 완전한 코어 + SoC
- TinySys 그렇게 작지만은 않은 SoC 및 OS
- Will Green의 project F: 멋진 그래픽 효과를 다루는 튜토리얼입니다
- fpga4fun: 이곳에서 VGA 그래픽을 만드는 방법을 배웠습니다
- CoreScore: FPGA 하나에 코어를 몇 개나 넣을 수 있습니까?
Basic: 2020년 5월부터 2020년 6월까지 작성한 더 기초적인 예제들입니다
파일은 여기에 있습니다. 여기에는 다음이 포함됩니다:
- Blinker: "hello world" 프로그램입니다
- LedMatrix: MAX7219 IC로 구동하는 8x8 LED 매트릭스를 다뤄 봅니다.
- OLed: 4선식 SPI 프로토콜로 구동하는 SSD1351 OLed 디스플레이를 다뤄 봅니다.
- Serial: 내장된 USB 가상 UART 핀에 접근합니다
- LedTerminal: USB 가상 UART로 받은 메시지를 LED 매트릭스에 스크롤하며 표시합니다
- FOMU: "USB 동글 속 FPGA"를 위한 간단한 예제로, FrankenVGA 실험도 포함되어 있습니다!
- ULX3S HDMI: 주석을 자세히 단 간단한 독립형 HDMI 예제입니다.