ULX3S용 LiteX 사용법:

ULX3S는 FPGA 설계를 처음 배우기에 좋은 보드입니다. 넉넉한 ECP5 FPGA(변형에 따라 12K~85K 로직 엘리먼트), 프로그램과 데이터를 저장하는 데 사용할 수 있는 SD 카드 커넥터, 비디오 커넥터, 그리고 온보드 SDRAM(옵션에 따라 16MBytes~32MBytes)을 갖추고 있습니다. 또한 Wi-Fi를 지원하는 온보드 마이크로컨트롤러(ESP32)도 있어 SD 카드에 원격으로 접근하는 데 사용할 수 있습니다.

ULX3S는 LiteX에서 직접 지원합니다. 원래의 LiteX 설계와 비교하여 몇 가지 작은 개선을 했습니다(boards/radiona_ulx3s_ex.py 참고). 개선 사항은 다음과 같습니다:

ULX3S용 비트스트림을 생성하려면 먼저 다음을 수행해야 합니다:

참고 1: IS42S16160G SDRAM 칩이 장착된 ULX3S 변형도 있습니다. 이 경우에는 --sdram-module MT48LC16M16을 사용하십시오(@darkstar007님께 감사드립니다).

참고 2: AS4C32M16(64MB)에서 프레임버퍼를 사용하면 SDRAM 리프레시 타이밍을 충족하지 못합니다. 대신 AS4C32M16(32MB)인 것처럼 지정하십시오.

이제 다음을 수행할 수 있습니다:

$ cd learn-fpga/LiteX
$ python3 -m boards.radiona_ulx3s_ex --device LFE5U-85F --sdram-module AS4C16M16 --cpu-type femtorv --cpu-variant petitbateau --build --load --ecppack-compress

이 명령은 의존성을 다운로드합니다(FemtoRV의 최신 버전도 github 저장소에서 직접 받아옵니다. 훌륭합니다!). 또한 BIOS를 컴파일하고 게이트웨어를 합성한 다음 장치로 전송합니다. 모든 것이 잘 되었다면 LED에서 알록달록한 승리의 '전격 Z 작전(knight driver)' 블링키를 보게 될 것입니다. 이제 litex_term /dev/ttyUSB0으로 SoC에 접속할 수 있습니다.

이제 SoC용 소프트웨어를 작성하는 방법을 알아봅시다.

보드의 전원을 끈 후에도 비트스트림이 유지되게 하려면 다음을 사용하십시오:

    fujprog -j FLASH build/radiona_ulx3s/gateware/radiona_ulx3s.bit