با بینشی که تا اینجا نسبت به مفهوم، ماهیت و کاربردهای FPGA به دست آوردید، اکنون زمان آن فرا رسیده تا کمی عملیتر وارد موضوع طراحی و پیادهسازی دیجیتال به کمک FPGA شوید.
در ادامه برنامههای “آموزش FPGA از صفر”، شما را مرحله به مرحله با نرمافزار مخصوص پیادهسازی با FPGA و زبان توضیف سختافزاری VHDL آشنا میکنم.
در اولین برنامه از دور جدید آموزشها، قصد دارم شما را با نرمافزار مخصوص پیادهسازی به کمک FPGA به نامISE Design Suite که محصول شرکت Xilinx هست آشنا کنم.
More...
به کمک نرمافزار ISE Design Suite میتوانید تمام مراحل طراحی و پیادهسازی شامل ورود طرح، شبیهسازی، سنتز، جانمایی و مسیریابی رو انجام بدید. بعد از آن فایل پیکرهبندی را ایجاد کنید و FPGA را پروگرام کنید.
به کمک نرمافزار ISE میتوانید انواع تحلیلهای زمانی و توان مصرفی را برای طرحی که پیادهسازی کردید انجام بدید.
این نرمافزار IP Coreها یا کدهای از پیش نوشته شده زیادی را در اختیارتان قرار میدهد که میتوانید به کمک آنها مدارات بزرگ را سریعتر طراحی و تست کنید.
به کمک دهها قابلیت دیگر این نرمافزار و بدون نیاز به هیچ نرمافزار دیگری میتوانید به راحتی، تمام مراحل پیادهسازی را انجام دهید.
ویدئو یا متن؟
محتوای این برنامه آموزشی، به دو صورت ویدئو و متن آماده شده است. اگر علاقمند به یادگیری این مطلب به صورت ویدئویی هستید، ویدئوی زیر را ببینید و اگر ترجیح میدهید آن را به صورت متن مطالعه کنید، ادامه این مطلب را بخوانید.
برای دانلود نسخه با کیفیت این ویدئو، روی دکمه زیر کلیک کنید:
در این مقاله، قصد دارم شما را با نرمافزار ISE Design Suite آشنا کنم.
این نرمافزار از سوی شرکت XILINX، برای طراحی و پیادهسازی سیستمهای دیجیتال به وسیلهی FPGAهای این شرکت، ارائه شده است.
نرمافزارهای شرکت XILINX
به طور کلی، شرکت XILINX دو نرمافزار ارائه داده است؛ یکی نرمافزار ISE و دیگری نرمافزار Vivado.
نرمافزار Vivado، نرمافزار جدید این شرکت است که از اواخر سال 2013 عرضه شده است.
نرمافزارهای شرکت XILINX؛ ISE و Vivado
پیشنهاد شرکت XILINX این است که استفادهکنندگان از FPGAهای این شرکت، هر چه سریعتر شروع به استفاده از نرمافزار Vivado کنند.
اما با توجه به اینکه در حال حاضر اکثر شرکتها هنوز از نرمافزار ISE استفاده میکنند، بهتر است که ابتدا با این نرمافزار آشنا شویم.
در آموزشگاه فراد اندیش نیز ما از نرمافزار ISE در دورههای تخصصیمان استفاده میکنیم.
مراحل پیادهسازی یک مدار روی FPGA به کمک نرمافزار ISE
قبل از اینکه وارد محیط نرمافزار شویم، اجازه دهید به صورت کلی به روندی که باید برای پیادهسازی یک مدار در این نرمافزار در پیش بگیرید اشاره کنم:
شما میتوانید به کمک ادیتور نرم افزار ISE، طرحتان را به یکی از زبانهای VHDL یا Verilog وارد کنید.
همچنین میتوانید با شبیهساز نرمافزار ISE که ISim نام دارد، طرحتان را شبیهسازی کنید.
سپس، طرح را سنتز میکنید.
پس از آن، عمل جانمایی و مسیریابی (Placement و Routing) را انجام میدهید.
و فایل پیکرهبندی یا همان Bit File (که در مقالههای قبلی دربارهی آن توضیح دادم) را میسازید.
سپس با قابلیتی که در این نرمافزار وجود دارد و به کمک یک پروگرامر خارجی، FPGA را پروگرام میکنید.
قابلیتهای دیگر نرمافزار ISE
از قابلیتهای دیگری که این نرمافزار دارد این است که میتوانید به کمک آن برای طرحتان انواع بهینهسازیها را انجام دهید.
حتی میتوانید به کمک یکی از قابلیتهای بسیار مهم ISim، که به آن Chip Scope میگویند، طرحتان را در حین اینکه بر روی FPGA پروگرام شده و در حال کار است، تست کنید.
ارائهی IP Coreهای آماده، یکی دیگر از امکانات این نرمافزار است؛ IP Coreها، کدهای از قبل نوشته شدهای هستند که شما میتوانید در طرحهایتان از آنها استفاده کنید.
به کمک نرمافزار ISE میتوانید انواع تحلیلها را قبل از پیادهسازی نهایی کدتان انجام دهید؛ تحلیلهای زمانی و تحلیل توان مصرفی از جملهی مهمترین این تحلیلها هستند.
این نرمافزار به شما گزارشات مفصلی از مراحل سنتز، جانمایی، مسیریابی و شبیهسازی ارائه میدهد که با تحلیل این گزارشات شما میتوانید متوجه شوید که طرحتان تا چه اندازه طبق انتظارات شما عمل میکند.
اکنون با این توضیحات اجازه دهید با محیط نرمافزار ISE هم آشنا شویم.
ورود به محیط نرمافزار ISE
پس از نصب نرمافزار ISE، برای اجرای آن، باید مطابق شکل زیر و با توجه به نوع ویندوزتان که ۳۲بیتی یا ۶۴بیتی است، یکی از گزینهی Project Navigator را انتخاب کنید:
اجرای نرمافزار ISE در ویندوز
پس از اجرای نرمافزار، صفحهای مطابق شکل زیر مشاهده میکنید:
صفحهی ابتدایی نرمافزار ISE
در حال حاضر، هیچ پروژهای در این صفحه باز نیست.
اولین کاری که برای شروع مراحل پیادهسازی باید انجام دهید، ساخت یک پروژه است.
تنظیمات ساخت یک پروژهی جدید در نرمافزار ISE
برای ساخت یک پروژه، میتوانید مطابق شکل زیر، دکمهی New Project را از صفحهی اول این نرمافزار انتخاب کنید؛ و یا از منوی File گزینهی New Project را انتخاب کنید:
ساخت یک پروژهی جدید در نرمافزار ISE
اکنون باید نامی برای پروژهتان انتخاب کنید؛ برای مثال من نام First_project را انتخاب میکنم.
در قسمت Location نیز باید محل قرار گرفتن پروژه را انتخاب کنید که من آن را در فولدری به نام XILINX Project قرار میدهم:
تعیین نام و محل قرار گرفتن پروژه در نرمافزار ISE
در مرحلهی بعد، باید مشخص کنیم که قصد داریم این پروژه را روی چه تکنولوژیای پیادهسازی کنیم. همانطور که میدانید شرکت XILINX دارای انواع مختلف FPGAها است که در یکی از مقالههای سایت به نام "شرکتهای سازندهی FPGA و محصولات آنها" به طور مفصل دربارهی آن توضیح دادهام.
قبل از اینکه شروع به کار طراحی و پیادهسازی کنید، باید مشخص کنید که طرحی که در حال توسعهاش هستید، برای پیادهسازی روی کدام FPGA در نظر گرفتهاید.
مطابق شکل زیر، در قسمت Family مشخص کنید که FPGA شما از کدام خانوادهی FPGAها است.
من SPARTAN 6 را انتخاب میکنم، چون مثالهای عملی که برای مقالههای بعدی در نظر گرفتهام، روی این FPGA پیادهسازی خواهند شد و در دورههای تخصصی آموزشگاه فرا اندیش نیز از همین FPGAها استفاده میکنیم.
خانوادهی SPARTAN 6، دارای اعضای متنوعی است که در زیر میتوانید تعدادی از آنها را ببینید. FPGAای که من در اختیار دارم از نوع XC6SLX9 است.
اعضای خانوادهی SPARTAN 6
بستهبندی یا پکیج FPGA را از نوع TQG144 انتخاب میکنم.
گزینهی بعدی، Speed Grade است که یکی از مشخصههای FPGA است که روی آن نوشته شده است؛ من مطابق شکل زیر، Speed Grade را روی گزینهی ۳- قرار میدهم.
مشخص کردن پکیج و سرعت FPGAای که در اختیار داریم
اکنون در قسمت Synthesis Tool مشخص میکنم که از چه نرمافزاری برای سنتز کد من استفاده شود.
ممکن است این سوال پیش آید که چرا ما باید نرمافزاری را انتخاب کنیم؟
دلیل این مسئله این است که برخی شرکتها، نرمافزارهایی برای بعضی از مراحل طراحی تولید میکنند؛ مثلاً، نرمافزاری مخصوص سنتز مدار و یا نرمافزار شبیهساز مدار ارائه میکنند.
این شرکتها حتی ممکن است تولیدکنندهی تراشهی FPGA نباشند و صرفاً نرمافزار تولید میکنند.
برای مثال، برای شبیهسازی مدار، به جز نرمافزار شبیهساز شرکت XILINX که ISim نام دارد، شبیهسازهای دیگری نیز وجود دارند؛ مانند شبیهساز ModelSim.
اگر این شبیهساز را روی کامپیوترتان نصب کردهاید، میتوانید از قسمت Synthesis Tool، آن را انتخاب کنید.
ما در این پروژه، از شبیهساز نرمافزار ISE که XST نام دارد استفاده میکنیم. XST مخفف XILINX Synthesis Tool است.
برای Simulator هم از شبیهساز خود نرمافزار ISE که ISim نام دارد، استفاده میکنیم.
انتخاب نرمافزار سنتز و شبیهسازی در ساخت یک پروژهی جدید در ISE
در قسمتPreferred Language مشخص میکنیم که زبان مطلوب ما کدام یک از زبانهای VHDL یا Verilog است. توجه کنید که انتخاب یکی از این زبانها به این معنا نیست که شما حتما باید به آن زبان کدنویسی کنید؛ مثلاً، اگر من VHDL را انتخاب کنم، میتوانم برخی از ماژولهای پروژه را به زبان VHDL و برخی دیگر را به زبان Verilog کدنویسی کنم.
پس دلیل اینکه ما در این پنجره یکی از زبانها را انتخاب میکنیم چیست؟
دلیلش این است که در بعضی از مراحل طراحی، بخشی از کدها را خود نرمافزار برای ما تولید میکند و با مشخص کردن Preferred Language، ما برای نرمافزار مشخص میکنیم که آن کدها را به چه زبانی برای ما تولید کند.
من زبان VHDL را انتخاب میکنم و سپس دکمهی Next را فشار میدهم.
تعیین گزینهی Preferred Language در ساخت پروژه در نرمافزار ISE
اکنون، مشخصات پروژه را بار دیگر مرور میکنیم و پس از آن، دکمهی Finish را فشار میدهیم:
پنجرهی خلاصه اطلاعات ساخت پروژه
مطابق شکل زیر، پروژهی ما ساخته شده است اما در آن هیچ فایل و طرحی وجود ندارد:
صفحهی اولیهی یک پروژه در ISE
در صفحهی اصلی ISE چند پنجره داریم؛ پنجرهی کوچکی که در سمت چپ شکل زیر میبینید، پنجرهی Hierarchy است که فایلها را به صورت سلسله مراتبی نشان میدهد:
پنجرهی Hierarchy در نرمافزار ISE
در زیر آن پنجره، پنجرهی Process را داریم که کارهایی مثل سنتز، جانمایی، مسیریابی، ساخت فایل بیتی و غیره را به کمک گزینههایی که در آن وجود دارد، انجام میدهیم:
پنجرهی Process در نرمافزار ISE
پنجرهی بزرگتر، پنجرهای است که در آن طرح را Edit میکنیم.
پنجرهی پایین صفحه، Console نام دارد؛ در این پنجره، نرمافزار اطلاعاتی را به ما میدهد.
محل قرارگیری پنجرهی Editor و پنجرهی Console در نرمافزار ISE
ایجاد اولین فایل در نرمافزار ISE
برای ایجاد اولین فایل، از پنجرهی Hierarchy استفاده کنیم.
دو حالت وجود دارد؛ یا ما از قبل، ماژولهای آماده داریم و میخواهیم به پروژه اضافه کنیم و یا اینکه میخواهیم یک ماژول یا فایل جدید ایجاد کنیم.
اگر در هر بخش از پنجرهی Hierarchy کلیک-راست کنید، مطابق شکل زیر، یک منو ظاهر میشود؛ گزینهی Add Source برای اضافه کردن ماژولهایی است که از قبل آماده کردهایم و New Source، برای ایجاد یک ماژول جدید است.
اضافه کردن ماژول به پروژه در نرمافزار ISE
چون ما ماژولی از قبل نداریم، من گزینهی New Source را انتخاب میکنم.
مطابق شکل زیر، در پنجرهای که باز میشود، انواع ماژولهایی را که میتوان به پروژهی ISE اضافه کرد میبینید:
انواع ماژولهایی را که میتوان در نرمافزار ISE به پروژه اضافه کرد
در حال حاضر، من میخواهم یک فایل VHDL یا ماژول VHDL را به پروژه اضافه کنم.
بنابراین مطابق شکل زیر، گزینهی VHDL Module را انتخاب میکنم و برای این ماژول، نامی قرار میدهم؛ چون قصد طراحی یک Adder را دارم، نام ماژول را Adder انتخاب میکنم.
ساخت یک ماژول VHDL در نرمافزار ISE
دکمهی Next را فشار میدهم.
اگر در پنجرهی شکل زیر، دوباره دکمهی Next را فشار دهم، با یک فایل Text خالی روبهرو میشوم.
اما نرمافزار ISE به وسیلهی پنجرهی Wizard این امکان را به شما میدهد که حداقل بخش Entity یا بخش پورتهای مدارتان را در این قسمت مشخص کرده و بسازید.
مثلاً، من برای ساخت یک Full Adder تک بیتی، احتمالاً دو پورت ورودی A و B نیاز دارم. همچنین، به سیگنال Carry In و پورتهای خروجی Sum و Carry Out نیز نیاز دارم که آنها را به صورت شکل زیر مشخص میکنم و سپس دکمهی Next را فشار میدهم:
ساخت Entity یک ماژول VHDL به کمک Wizard نرمافزار ISE
در پنجرهی زیر، بار دیگر تنظیمات انجام شده را مرور میکنم و سپس دکمهی Finish را فشار میدهم:
پنجرهی خلاصهی اطلاعات ماژول جدید VHDL
در شکل زیر میبینید که نرمافزار در قسمت ادیتور، بخشی از کد را به صورت اتوماتیک، برای من ایجاد میکند. به بخش Entity دقت کنید:
کد VHDL اولیهی ساخته شده توسط نرمافزار
برای کامنتگذاری در زبان VHDL، از دو منها استفاده میکنیم. میتوانیم مانند شکل زیر، کامنتهای پیشفرض که به رنگ سبز هستند را پاک کنیم تا ظاهر کد بهتر شود:
حذف کامنتهای اولیهی کد VHDL و مرتب کردن آن
پس، یک فایل به نام فایلAdder.vhd ایجاد شده است؛ فایلهای VHDL مربوط به نرمافزار ISE با پسوند VHDL ذخیره میشوند.
در خط چهارم از کد، نرمافزار به صورت خودکار نام فایلمان را به عنوان نام Entity داده است؛ بهتر است همیشه این قاعده را رعایت کنیم؛ یعنی، نام Entity را با نام فایلمان یکی انتخاب کنیم.
همانطور که در شکل بالا میبینید، مود پورتها به صورت ورودی یا خروجی است و تایپ یا نوع آنها، STD_LOGIC است.
در خط ۱۳اُم، Architecture قرار دارد و همانطور که در برنامهی آشنایی با زبان VHDL توضیح دادم، میتوانیم بعد از عبارت Begin از بخش Architecture، کد توصیفکنندهی مدارمان را بنویسیم.
مثلاً، میتوانیم برای خروجیهای Sum و Cout عبارات خطهای ۱۷اُم و ۱۸اُم کد زیر را بنویسیم:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Adder is Port ( A : in STD_LOGIC; B : in STD_LOGIC; Cin : in STD_LOGIC; Sum : out STD_LOGIC; Cout : out STD_LOGIC); end Adder; architecture Behavioral of Adder is begin Sum <= A xor B xor Cin; Cout <= (A and B) or (A and Cin); end Behavioral;
این اولین مقالهی ما در نرمافزار ISE است؛ قصد ندارم در آن راجع به زبان VHDL خیلی صحبت کنم و هدف من بیشتر آشنایی اولیهی شما با نرمافزار ISE است.
کد را مانند شکل زیر Save میکنیم:
ذخیرهی تغییرات ایجاد شده در کد VHDL
انجام مراحل پیادهسازی کد روی FPGA در نرمافزار ISE
فایلهای مربوط به این پروژه در قسمت Hierarchy مشاهده میشوند؛ که ما در این پروژه فقط یک فایل، به نام فایل Adder داریم و اگر روی آن کلیک کنیم، کارهایی را که میتوانیم را روی این فایل انجام دهیم را مطابق شکل زیر، در زیر منوی Process میبینیم:
منوی Process در نرمافزار ISE
مثلا اگر من بخواهم این کد را سنتز کنم، میتوانم روی گزینهی Synthesize - XST کلیک کنم.
پس از شروع عمل سنتز، اطلاعات و گزارش مربوط به سنتز مانند شکل زیر در پنجرهی کنسول به من نمایش داده میشود؛ البته این اطلاعات در یک فایل هم ذخیره میشود که شما بعداً به آن دسترسی خواهید داشت.
سنتز کد VHDL در نرمافزار ISE
سپس میتوانید عمل Place و Routing را انجام دهید و در نهایت هم با انتخاب گزینهیGenerate Programming File میتوانید فایل Configuration یا همان Bit File را تولید کنید.
انتخاب گزینهیGenerate Programming File برای ساخت Bit File در نرمافزار ISE
بسته به اینکه کد شما چقدر پیچیده باشد، اعمال سنتز، place و rout میتواند زمان زیادی طول بکشد؛ این زمان، گاهی به نیم ساعت و بیشتر هم میرسد. بعد از اینکه شما Bit File را ساختید، باید این فایل را روی FPGA پروگرام کنید تا FPGAتان تبدیل به مداری شود که به کمک کد VHDL پیادهسازی کردید.
بعد از ذخیره کردن فایل، اجازه دهید نگاهی به فولدری که برای پروژه تعریف کرده بودیم، بیاندازیم.
در شکل زیر میبینید که یک فولدر به نام پروژهای که مشخص کرده بودیم، ایجاد شده است و تمام فایلها در آن قرار گرفتهاند.
فایلی که با آیکون نرمافزار ISE مشخص شده است همان فایل پروژهمان است که با دبل-کلیک روی آن میتوانید هر بار، پروژه را از همین جا باز کنید.
محل ذخیرهسازی فایلهای پروژه
نرمافزار ISE، قابلیتهای زیادی دارد که به مرور و در مقالههای بعدی که راجع به زبان توصیف سختافزاری VHDL هستند، دربارهی آن بیشتر خواهیم آموخت.
امیدوارم که این مقاله هم مورد توجه شما قرار گفته باشد. از شما میخواهم که نظرات و پیشنهاداتتان در مورد این مقاله را در پایین همین پست با من به اشتراک بگذارید.
آیا برنامه ویدئویی آشنایی با نرمافزار ISE Design Suite برای شما مفید بود؟
لطفا نظرتان را در مورد این برنامه در پایین همین پست با دیگران به اشتراک بگذارید. همچنین با کلیک روی هر کدام از دکمههای اشتراک گذاری ابتدای این مطلب و به اشتراکگذاری آن در شبکههای اجتماعی میتوانید افراد بیشتری را در یادگیری این مطالب سهیم کنید.
کانال تلگرام آموزش FPGA از صفر
برای عضویت در کانال تلگرام و دسترسی به آموزشهای بیشتر و اطلاع سریع از زمان انتشار آموزشها و تخفیفهای ویژه، روی دکمه زیر کلیک کنید: