Xilinx ISE 14.7

Xilinx 회사의 ISE는 FPGA firmware을 만들어 내는 프로그램이다. 알고리즘을 VHDL이나 Verilog으로 코드를 작성하면 ISE는 그것을 FPGA에 심을 수 있는 파일로 바꿔 준다. 이 프로그램은 주로 Windows XP이나 Windows 7에 작동을 한다. 재미있게도 Linux에도 지원을 한다.
image: https://lifetrg.files.wordpress.com/2014/08/0_users_jbkim_dropbox_hobby_blog_isecentos_ise-2.png
image: https://lifetrg.files.wordpress.com/2014/08/1_users_jbkim_dropbox_hobby_blog_isecentos_centos-logo-300x80.png
Linux용 ISE의 장점

 

  • Linux용 ISE와 Windows용 ISE의 GUI 차이는 거의 없다.
  • 제 경험에 의하면 Windows 7 (64bit) 에서 iSim을 돌릴때 가끔씩 crash이 발생하는데 재미있게도 Linux에서는 그런 문제가 발생하지 않는다.
  • 같은 VHDL으로 synthesize을 할때 Linux가 10%정도 빠랐다. (한 경우에만 테스트를 해본 결과라서 통계적인 신뢰성이 없다.)
Linux 용 ISE의 단점

 

  • 설치가 어렵다. (특히 드라이버 설치)
  • Chipscope, ISE, IPCore 외의 기능은 테스트를 해보지 않아서 안 될 수도 있다.
그래서 이 글에서는 Linux용 ISE의 단점 중 하나인 “설치가 어렵다”에 대해 설명을 할려고 한다.

Xilinx ISE 14.7 설치 순서

1. Linux용 Xilinx ISE 14.7 설치

1. http://www.xilinx.com/에서 Download tab을 눌러 Linux ISE를 다운로드한다.
2. 압축을 푼다.
tar -xvf Xilinx_ISE_DS_Lin_14.7_*.tar
3. 설치 프로그램을 실행한다.
을 해도 되지만, 만약 sudo으로 설치하는게 싫다면 /opt/Xilinx 폴더를 만들어서 권한을 바꾼 후에 설치 하면 된다.
sudo ./xsetup
sudo mkdir /opt/Xilinx
sudo chown <user name>:<group> /opt/Xilinx
./xsetup
설치하는 마지막 부분에 Xilinx 드라이버를 설치하겠는지를 물어보는 창이 나타나는데, 설치를 눌러도 실패하니 설치 하지 않는다를 고르면 된다.
라이선스가 만약 Network license key를 사용하면 설치 할때 설정할 수가 없는데, 이거에 대해서는 ISE 환경 설정에서 이야기하겠다.

2. Xilinx 드라이버 설치

드라이버 설치하기 위해 많은 어려움을 겪었는데, 인터넷의 이 문서를 많이 참고하여 성공하였다.
1. Install fxload
atrpms repository에 fxload이 있으니 atrpms-repo을 설치하고 fxload을 설치한다.
 wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/atrpms-repo-6-7.el6.x86_64.rpm
sudo rpm -Uvh atrpms-repo*rpm
sudo yum install fxload
2. /etc/udev/rules.d/xusbdfwu.rules을 만든다.
sudo /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/install_script/install_drivers/linux_drivers/pcusb/setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE
3. /etc/udev/rules.d/xusbdfwu.rules을 수정한다.
sudo sed -i -e 's/TEMPNODE/tempnode/' -e 's/SYSFS/ATTRS/g' -e 's/BUS/SUBSYSTEMS/' /etc/udev/rules.d/xusbdfwu.rules
4. Linux kernel source 그리고 gcc가 필요하니 CentOS Development Tools을 설치한다.
sudo yum groupinstall 'Development Tools' 
5. Xilinx install_drivers script에 버그가 있어 수정한다. Linux kernel 버젼을 인식을 제대로 못하는 버그인데, script안에서 2.4을 2\.4으로 바꾸면 된다.
/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/install_script/install_drivers/install_drivers에서 369번째 줄에 2.4에서 2\.4으로 바꾼다.
6. 드라이버를 설치한다.
sudo /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/install_script/install_drivers/install_drivers
7. 드라이버를 모든 유저가 사용할 수 있게 권한을 수정한다.
sudo chmod 666 /dev/windrvr6

3. ISE 환경 설정

환경 설정을 위해서 여러가지를 해야한다.
1. selinux 때문에 컴퓨터를 재부팅할때 마다 /dev/windrvr6의 권한이 재설정이 되는데, /dev/windrvr6의 권한이 666인지를 확인한다. 만약 권한 설정이 제대로 안되어있다면 FPGA와 통신이 안 될 것이다.
sudo chmod 666 /dev/windrvr6
2. ISE 프로그램을 실행하기 위해 여러가지 환경변수를 설정해야하는데, 그러기 위해서 script을 실행한다.
source /opt/Xilinx/14.7/ISE_DS/settings64.sh
3. 만약 network license key을 사용한다면 그에 따른 환경변수를 설정하면 된다.
export XILINXD_LICENSE_FILE=<location>
<location>에 network license key가 있는 곳을 쓰면 된다.

4. ISE 실행

환경 설정을 다했다면 ISE을 실행하고 싶으면
/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ise
coregen을 실행하고 싶으면
/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/coregen
Chipscope analyzer을 실행하고 싶으면
/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/analyzer
Impact을 실행하고 싶으면
/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/impact

5. 편리한 script

환경을 매번 설정하는것이 귀찮다면, 아래와 같은 스크립트를 만든후에 launcher을 그 스크립트으로 지정하면 된다. 다만 맨끝에 실행 될 수 있는 zenity를 yum으로 설치해야지 경고 메시지를 받을 수 있다.
이때 ise 말고 다른 프로그램을 실행하고 싶으면 /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ise을 알맞게 수정하면 된다.
#!/bin/bash 
# Find if /dev/windrvr6 permission is 666 
b_permission=`ls -l /dev/windrvr6 | grep -c rw-rw-rw` 
if [ $b_permission -eq 1 ] ; then
  # Find if Xilinx environment is set
  b_xilinxEnvironment=`echo $PATH | grep -c Xilinx`
  if [ $b_xilinxEnvironment -eq 0 ] ; then
    source /opt/Xilinx/14.7/ISE_DS/settings64.sh
  fi
  /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ise 
else
  zenity --error --text="xilinxDriver permission is not set. Change permission for /dev/windrvr6" 
fi 
Advertisements