תכנות ה-Nexys2 בלינוקס

במסגרת המיני-פרוייקט שלי ב-קורס מעבדה ב-DSP יצא לי להשתמש בערכת הפיתוח Nexys2. מאחר והתכנון שלי כלל פילטר IIR שדרש הרבה מכפלים הערכת פיתוח הזאת פשוט היתה מתנה משמיים (אחרת היתי צריך לשנות את כל התכנון שלי לפילטר כדי לדחוף אותו לרכיב SPARTAN3-256). בכל אופן לערכת פיתוח יש 2 מקורות שאיתם ניתן לתכנת את הרכיב, ישנה את השיטה הישנה JTAG דרך חיבור Parallel, ויש את חיבור ה-USB שעושה את החיים הרבה יותר קלים (מה גם שאפשר לספק מתח ל-BOARD מה-USB ולכסוך את הצורך בשנאי).

אחד הדברים שהיתי צריך ללמוד היה איך להוריד לרכיב את הקובץ BIT ש-ISE מייצר. משום מה iMPACT לא תמך באופציה. למזלי בניגוד לערכת הפיתוח הישנה כאן לא היתי צריך לקמפל שום דרייבר והתשובה הגיעה מאתר היצרן.

Note: In order to program and communicate with the Nexys 2 board, you must download and install the free Digilent Adept software.

נווטו לכתובת: http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2

שם תחת הכותרת ADEPT for Linux יש להוריד את הדייברים המתאימים לפלטפורמה שלכם 32/64

הערת בניים לחברה ממכון לב שצריכים לצאת דרך פרוקסי כדי להוריד את הקבצים ורוצים לעשות את התהליך דרך ה-SHELL

export http_proxy='http://wwwproxy.jct.ac.il:3128/'
wget 'http://www.digilentinc.com/Cart/Download.cfm?DURL=/Data/Products/ADEPT2/digilent.adept.runtime_2.5.1-i686.tar.gz&ProductID=Adept2.5.1-L-86' --proxy-user=theiceman_blog --proxy-password=Pa$$w0rD
wget 'http://www.digilentinc.com/Cart/Download.cfm?DURL=/Data/Products/ADEPT2/digilent.adept.utilities_2.1.1-i686.tar.gz&ProductID=Adept2.1.1-L-86' --proxy-user=theiceman_blog --proxy-password=Pa$$w0rD

חבילת ה-Runtime היא בעצם המודול\דרייבר שלנו וחבילת ה-Utilities כשמה מספקת מספר כלים על מנת לעבוד על הערכת פיתוח. עם החבילות מגיע קובץ README מפורט על אופן ההתקנה ומערכת שבהם המודל נבדק וקומפל עבורם. המערכת שלי Fedora 14 לא היתה ברשימה אך מאחר והיא מקבילה מאוד ל- CentOs 5 / Red Hat Enterprise Linux 5 אז המשכתי עם חשש קל לגבי האפשרות המודל קומפל עבור קרנל ישן או מול ספריות ישנות יותר.

נחלץ את החבילות

tar xzvf digilent.adept.runtime_2.5.1-x86_64.tar.gz
tar xzvf digilent.adept.utilities_2.1.1-x86_64.tar.gz
cd digilent.adept.runtime_2.5.1-i686
install.sh
Adept Runtime Installer
32-bit operating system detected
In which directory should 32-bit libraries be installed? [/usr/local/lib]
Installing 32-bit runtime libraries.....
32-bit runtime libraries successfully installed in "/usr/local/lib/digilent/adept"
In which directory should data files be installed? [/usr/local/share/digilent/data]
Installing firmware images.....
Installed firmware images in "/usr/local/share/digilent/data/firmware"
Installing JTSC device list.....
Installed JTSC device list "/usr/local/share/digilent/data/jtscdvclist.txt"
Installing CoolRunner support files.....
Installed CoolRunner support files in "/usr/local/share/digilent/data/xpla3"
Installing CoolRunner 2 support files.....
Installed CoolRunner 2 support files in "/usr/local/share/digilent/data/xbr"
Installing Adept Runtime configuration.....
Installed Adept Runtime configuration "/etc/digilent-adept.conf"
Installing USB UDEV rules.....
Installed USB UDEV rules "/etc/udev/rules.d/52-digilent-usb.rules"
Installing dynamic loader configuration.....
Installed dynamic loader configuration "/etc/ld.so.conf.d/digilent-adept-libraries.conf"
Reloaded UDEV rules
Updated dynamic loader cache
Successfully installed Adept Runtime
digilent.adept.runtime_2.5.1-i686 # cd ../digilent.adept.utilities_2.1.1-i686/
digilent.adept.utilities_2.1.1-i686 # ./install.sh
Adept Utilities Installer
32-bit operating system detected
In which directory should binaries be installed? [/usr/local/bin]
manpath: warning: $MANPATH set, ignoring /etc/manpath.config
In which directory should manuals be installed? [/usr/local/man]
Installing binaries.....
    installed dadutil: "/usr/local/bin/dadutil"
    installed djtgcfg: "/usr/local/bin/djtgcfg"
Successfully installed binaries in "/usr/local/bin"
Installing manuals.....
    installed dadutil.1: "/usr/local/man/man1/dadutil.1"
    installed djtgcfg.1: "/usr/local/man/man1/djtgcfg.1"
Successfully installed manuals in "/usr/local/man"
Successfully installed Adept Utilities

עד כאן החלק הקשה, כעת יש לנו את המודל תחת udev ואת הכלים לתכנות (dadutil, djtgcfg), אני לא אכנס להסברים מורחבים לגבי אופן השימוש בהם מאחר והם מגיעים כבר עם קבצי man מאוד פשוטים וברורים.

  • djtgcfg – Digilent JTAG Config Utility
  • dadutil – Digilent Adept Utility
man djtgcfg

מה שכן מומלץ הוא ליצור alias כדי לקצר את הפקודה הארוכה של הצריבה במקרה שלנו, ולשים אותה תחת הקובץ .bashrc

alias nexys2prog='djtgcfg prog -d Nexys2 --index 0 --file '

דבר שיאפשר כתיבה מהירה וקלה יותר כשנרצה להוריד את קובץ ה-BIT ללוח

bash$ nexys2prog my_project.bit


2 thoughts on “תכנות ה-Nexys2 בלינוקס

  1. נ.ב אצלי ב-SUSE Linux Enterprise Desktop 11 SP1 (i586) היתי צריך להוריד את החבילה libusb-1_0-0-1.0.8-1.2.i586.rpm מסתבר שיש 2 גרסאות של libusb

להגיב על netanel לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *

*
*