نحوه پروگرام کردن FPGA
توسط فاطمه مشاک   

2

بعد از اینکه یک مدار دیجیتال را به کمک یک نرم‌افزار پیاده‌سازی مثل ISE یا ویوادو طراحی کردید، باید آن را در FPGA پروگرام کنید.

اما حافظه درون FPGAها ذاتا مشابه SRAMها هستند و در نتیجه آنچه در آنها پروگرام می‌شود بعد از قطع منبع تغذیه پاک می‌شود!

اما این مساله برای یک محصول مبتنی بر FPGA قابل قبول نیست و نیاز است به نحوی بتوانیم آن را به صورت دائمی پروگرام کنیم.

برای این کار، معمولا از یک حافظه فلش جانبی در FPGA استفاده می‌شود. مدار نهایی در این حافظه جانبی پروگرام می‌شود و هر بار که برد روشن می‌شود، اطلاعات مربوط به مدار به طور خودکار از حافظه فلش به FPGA منتقل می‌شود.

در این ویدئو، نحوه پروگرام کردن مستقیم FPGA و فلش جانبی آن را به طور کامل شرح می‌دهم. علاوه بر آن، به شما نشان می‌دهم چطور این کار را هم به کمک نرم‌افزار ISE انجام دهید و هم به کمک نرم‌افزار ویوادو.

ویدئو یا متن؟

بخشی از محتوای این برنامه ویدئویی، به صورت متن نیز آماده شده است. اگر علاقمند به یادگیری تمام این مطلب به صورت ویدئویی هستید، ویدئوی زیر را ببینید و اگر ترجیح می‌دهید بخشی از آن را به صورت متن مطالعه کنید، ادامه این مطلب را بخوانید.

پس از اینکه یک کد توصیف سخت‌افزاری را به یکی از زبان‌های VHDL یا Verilog نوشتید و مراحل پیاده‌سازی شامل سنتز، جانمایی و مسیریابی را انجام دادید، نهایتا یک فایل بیتی (bit file) تولید خواهد شد که باید به FPGA منتقل شود.

وقتی این فایل بیتی را به FPGA منتقل کردید، منابع سخت‌افزاری درون FPGA به‌گونه‌ای در کنار یکدیگر قرار می‌گیرند که مدار توصیفی شما را بسازند.

به این کار، پروگرام کردن FPGA می‌گویند.

شما می‌توانیدبرد شامل FPGA را به‌صورت «موقت» یا «دائمی» پروگرام کنید.

در این مقاله، با مراحل پروگرام کردن FPGA به‌صورت گام‌به‌گام آشنا خواهید شد.

ادامه مطلب
حلقه for در زبان VHDL
توسط فاطمه مشاک   

2

حتماً تاکنون به دفعات از حلقه for در برنامه‌نویسی استفاده کرده‌اید.

احتمالاً، کمتر برنامه‌ای را سراغ دارید که آن را بدون استفاده از حلقه for نوشته باشید.

اما حلقه for در زبان‌های توصیف سخت‌افزاری، همچون زبان VHDL، به چه صورت عمل می‌کند؟

آیا نحوه عملکرد حلقه for در زبان VHDL همانند زبان‌های برنامه‌نویسی است؟

در این مقاله، با نحوه عملکرد حلقه for در زبان VHDL آشنا می‌شوید؛ همچنین، به‌کمک حلقه for، یک شیفت‌رجیستر و یک خط تاخیر (delay line) که هر دو از پرکاربردترین بلوک‌ها در مدارات دیجیتال هستند را پیاده‌سازی خواهیم کرد.

ادامه مطلب
نصب و کرک نرم‌افزار ویوادو
توسط احمد ثقفی   

4

در این برنامه ویدئویی، با نحوه نصب و کرک نرم‌افزار ویوادو آشنا می‌شوید.

نرم‌افزار ویوادو، جدیدترین نرم‌افزار شرکت Xilinx در حوزه پیاده‌سازی مدارات دیجیتال است. به کمک این نرم‌افزار می‌توانید تمام مراحل پیاده‌سازی مدار در FPGAهای این شرکت را انجام دهید.

علاوه بر آشنایی با روش نصب و کرک نرم‌افزار ویوادو، لینک دانلود این نرم‌افزار و نحوه استفاده از فایل‌های دانلود شده را هم در این ویدئو توضیح خواهم داد.

ادامه مطلب
فایل قیود کاربر در ویوادو
توسط احمد ثقفی   

1

هر پروژه‌ای در نرم‌افزار ویوادو، اگر قرار باشد عملا روی برد پیاده‌سازی شود، حداقل به دو فایل نیاز دارد: یک فایل VHDL یا Verilog و یک فایل قیود کاربر یا XDC.

در این ویدئو، در مورد فایل XDC و نحوه تنظیم دو قید اصلی در آن که برای پیاده‌سازی هر پروژه‌ای لازم است صحبت می‌کنم.

ادامه مطلب
آشنایی با نرم‌افزار ویوادو - بخش دوم
توسط احمد ثقفی   

6

در قسمت اول برنامه ویدئویی آشنایی با نرم‌افزار ویوادو، شما را با قابلیت‌های ویژه نرم‌افزار ویوادو و تفاوت‌های مهم آن در مقایسه با نرم‌افزار ISE آشنایی کردم. همچنین به این سوال مهم پاسخ دادم که دقیقا چه زمانی و به چه دلیل باید از نرم‌افزار ویوادو استفاده کنیم.

در ویدئوی قسمت دوم، وارد نرم‌افزار ویوادو خواهیم شد و ضمن آشنایی با بخش‌های مختلف آن، یک پروژه را در آن پیاده‌سازی خواهیم کردم.

ادامه مطلب
آشنایی با نرم‌افزار ویوادو
توسط احمد ثقفی   

4

جدیدترین نرم‌افزار شرکت Xilinx در حوزه پیاده‌سازی سخت‌افزاری سیستم‌های دیجیتال به کمک FPGAهای این شرکت، نرم‌افزار ویوادو است.

تا اواخر سال ۲۰۱۳، شرکت Xilinx نرم‌افزار ISE را برای این هدف ارائه می‌کرد، اما از آن به بعد، نرم‌افزار ویوادو به بازار عرضه شد و دیگر نسخه جدیدی از نرم‌افزار ISE ارائه نشد.

در این برنامه ویدئویی، شما را با قابلیت‌های ویژه نرم‌افزار ویوادو و تفاوت‌های مهم آن در مقایسه با نرم‌افزار ISE آشنایی می‌کنم. همچنین به این سوال مهم پاسخ می‌دهم که دقیقا چه زمانی و به چه دلیل باید از نرم‌افزار ویوادو استفاده کنیم.

ادامه مطلب
تعیین استراتژی طراحی
توسط فاطمه مشاک   

2

شما برای انجام عملیات پیاده‌سازی یک مدار بر روی FPGA ممکن است اهداف متفاوتی داشته باشید:

  • گاهی هدف شما استفاده حداقلی از منابع سخت‌افزاری درون FPGA است.
  • گاهی هدف شما بهینه کردن توان مصرفی مدار پیاده‌سازی شده در FPGA است.
  • گاهی برای شما مهم است که زمان پیاده‌سازی حداقل مقدار ممکن باشد.
  • گاهی هدف شما رسیدن به حداکثر فرکانس کلاک قابل اعمال به مدار است.
  • و گاهی نیز از نرم‌افزار پیاده‌سازی می‌خواهید ترکیبی از اهداف بالا را در نظر بگیرد.

در این مقاله، نحوه تعیین این اهداف و استراتژی‌ها را برای پیاده‌سازی در نرم‌افزار ISE بیان می‌کنم.

ادامه مطلب
کاربردهای تبدیب نوع در زبان VHDL
توسط فاطمه مشاک   

4

در پیاده‌سازی مدارات دیجیتال به کمک زبان VHDL گاهی نیاز دارید انواع داده را به یکدیگر ارجاع دهید.

از طرف دیگر، با توجه به قوانین ارجاع در زبان VHDL، نوع (type) تمام سیگنال‌های حاضر در یک ارجاع باید یکسان باشد.

بنابراین، در کدنویسی VHDL نیاز دارید از قابلیت «تبدیل نوع»‌ یا «Type Conversion» استفاده کنید.

برای این کار توابع مختلفی وجود دارد.

در این مقاله، با کاربردهای تبدیل نوع و توابع مربوط به آن آشنا خواهید شد.

ادامه مطلب
پیاده‌سازی شمارنده در طراحی دیجیتال
توسط فاطمه مشاک   

1

آیا تا به حال هنگام طراحی و پیاده‌سازی مدارات دیجیتال با FPGA با سوالات زیر رو به رو شده‌اید؟

  • اگر در مدار به delay یا تاخیر نیاز داشتم چگونه آن را در کد VHDL پیاده‌سازی کنم؟
  • برای پیاده‌سازی پروتکل RS232، از چه روشی استفاده کنم؟
  • پیاده‌سازی یک مولد پالس با پریود دلخواه به چه ترتیب است؟

برای تمامی این موارد می‌توانید از شمارنده‌ها استفاده کنید.

در این مقاله، به بررسی کاربردهای شمارنده‌ها و نحوه‌ی پیاده‌سازی آن‌ها به کمک کد VHDL می‌پردازم. همچنین، یک پالس مربعی را به کمک شمارنده پیاده‌سازی می‌کنم.

ادامه مطلب
پیاده‌سازی میکروبلیز
توسط احمد ثقفی   

3

آیا می‌دانستید در بسیاری از پیاده‌سازی‌ها، استفاده از یک میکروکنترلر در کنار FPGA می‌تواند باعث افزایش سرعت ساخت پروژه و کاهش هزینه آن شود؟

اما استفاده از یک میکروکنترلر بر روی برد حاوی FPGA خود می‌تواند مشکلاتی ایجاد کند!

اشغال فضای برد، اشغال تعداد زیادی از پین‌های FPGA برای ارتباط با میکروکنترلر، و هزینه میکروکنترلر از جمله این مشکلات است.

بنابراین خیلی خوب می‌شد اگر می‌توانستیم این میکروکنترلر را درون FPGA و در کنار مداری که در آن پیاده‌سازی کردیم ایجاد کنیم.

خبر خوب این است که چنین امکانی وجود دارد.

در این برنامه، نحوه انجام این کار و ابزارهای مورد نیاز برای آن را به شما معرفی می‌کنم.

ادامه مطلب