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를 찾을 수 있습니다).
자, 시작합시다! 이제 다음을 할 차례입니다.
- openFPGALoader를 설치하십시오(일반 툴체인 튜토리얼의 끝부분 참고).
- ARTY를 연결하십시오.
basic/ARTY/ARTY_blink에서makeit.sh를 실행하십시오. 모든 것이 잘 되었다면 화려한 색상의 블링키를 보게 될 것입니다!
대안: 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가 있는 줄은 주석을 해제하십시오.