ARTIX-7 FPGA용 오픈 소스 도구 설치하기

ARTIX-7에 쓸 수 있는 툴체인은 두 가지입니다. 하나는 symbiflow(올인원 통합형이며 설치가 더 쉬움)이고, 다른 하나는 yosys + xray + nextpnr-xilinx(설치는 더 복잡하지만 더 최신이며, 더 무거운 vpr 대신 nextpnr을 사용함)입니다.

Yosys/NextPNR/ProjectXRay

1단계: yosys

yosys 웹사이트의 설치 안내를 따르십시오.

요약

필수 패키지를 설치합니다

$ sudo apt-get install build-essential clang bison flex \
  libreadline-dev gawk tcl-dev libffi-dev git \
  graphviz xdot pkg-config python3 libboost-system-dev \
  libboost-python-dev libboost-filesystem-dev zlib1g-dev

GUI가 필요하다면 다음도 설치해야 합니다:

$ sudo apt-get install libboost-python1.67.0-py38 

소스를 받습니다

$ git clone https://github.com/YosysHQ/yosys.git

컴파일하고 설치합니다

$ cd yosys
$ make
$ sudo make install

2단계: prjxray

데이터베이스를 직접 생성하거나(단, Vivado가 필요합니다) 미리 생성된 것을 사용할 수 있습니다. 좋습니다, 미리 생성된 것을 사용합시다.

prjxray의 README를 따르십시오.

요약

$ git clone https://github.com/SymbiFlow/prjxray.git
$ cd prjxray
$ export PRJXRAY=`pwd`
$ git submodule update --init --recursive
$ make build
$ sudo python3 $PRJXRAY/setup.py install
$ sudo python3 $PRJXRAY/third_party/fasm/setup.py install
$ ./download-latest-db.sh
$ sudo mkdir -p /usr/share/nextpnr/
$ sudo cp -r database /usr/share/nextpnr/prjxray-db
$ sudo apt-get install python3 python3-pip python3-yaml

3단계: nextpnr-xilinx

GUI를 포함해서는 빌드하지 못했습니다. 제 컴퓨터에서는 boost-python에서 심볼 누락 오류가 발생했기 때문에 GUI를 비활성화했습니다.

$ git clone https://github.com/gatecat/nextpnr-xilinx.git
$ cd nextpnr-xilinx
$ git submodule init
$ git submodule update
$ mkdir build
$ cd build
$ cmake ../ -DARCH=xilinx -DBUILD_GUI=OFF -DBUILD_PYTHON=OFF 
$ make
$ sudo make install

한 가지 더 있습니다. chipdb를 생성해야 합니다(그게 무슨 뜻인지는 모르겠습니다. 여기 있는 내용을 전부 이해하지는 못합니다...). 이 내용은 이 웹페이지)의 'building the Arty example'에서 배웠습니다. 35t 대신 100t를 가지고 있다면 이에 맞게 수정해야 합니다.

$ cd nextpnr-xilinx
$ python3 xilinx/python/bbaexport.py --device xc7a35tcsg324-1 --bba xilinx/xc7a35t.bba
$ build/bbasm --l xilinx/xc7a35t.bba xilinx/xc7a35t.bin
$ sudo mkdir -p /usr/share/nextpnr/xilinx-chipdb
$ sudo cp xilinx/xc7a35t.bin /usr/share/nextpnr/xilinx-chipdb/

이제 .bashrc에 $PRJXRAY와 $LEARN_FPGA를 설정하고, $PRJXRAY/utils/가 PATH에 포함되어 있는지 확인하십시오(그래야 fasm2frames.py를 찾을 수 있습니다).

자, 시작합시다! 이제 다음을 할 차례입니다.

대안: SYMBIFLOW

Symbiflow 문서는 여기에 있습니다.

1단계: symbiflow 설치하기

이를 위해 symbiflow-magic의 (커스텀) 버전이 FemtoRV에 포함되어 있습니다. Symbiflow-magic은 ARTIX-7용으로 미리 컴파일된 symbiflow를 내려받아 설정하는 makefile입니다. FemtoRV에 포함된 버전은 몇 가지 문제를 수정한 것입니다.

$ cd learn-fpga/FemtoRV
$ sh -f TOOLS/get_symbifow.sh

여러 패키지를 내려받아 설치합니다(시간이 좀 걸립니다...).

2단계: 설치 후 단계

다음과 같이 셸 시작 파일에 anaconda 초기화 코드를 추가하십시오.

$ $HOME/opt/symbiflow/xc7/conda/bin/conda init $SHELL

셸 시작 파일(bash를 사용한다면 .bashrc)에 다음 줄을 추가하십시오.

export PATH=/home/blevy/opt/symbiflow/xc7/install/bin/:$PATH
conda activate xc7

새 터미널 창을 여십시오. 모든 것이 잘 되었다면 프롬프트가 (xc7)로 시작해야 합니다.

learn_fpga/FemtoRV/Makefile을 편집하여 arty_yosys_nextpnr.mk가 있는 줄은 주석 처리하고 arty35_symbiflow.mk가 있는 줄은 주석을 해제하십시오.