یک پردازندهی گرافیکی ساده (پروژهی کارشناسی)
از آذر 1393 تا شهریور 1395 —
پیادهسازی یک پردازندهی گرافیکی ساده با استفاده از یک مبدل دیجیتال به آنالوگ VGA و یک تراشهی FPGA حاوی پردازندهی PowerPC. هدف، طراحی یک پردازندهی گرافیکی است که بتواند نمایشگر را راهاندازی کرده و قابلیت رسم اشکال هندسی پایه بر روی صفحه را برای طراح فراهم کند. علاوه بر آن قابلیت چاپ کاراکترهای ASCII و رشته در هر نقطه از صفحه در نظر گرفته شده است. همچنین، محیطی مشابه خط دستور یا ترمینال نیز طراحی گردیده است که میتواند برای مقاصد عیبیابی، گزارشگیری و ارتباط با کاربر بسیار مفید باشد. این پروژه بصورت متنباز عرضه شده و برای عموم در دسترس است.
پیادهسازی اولیهی این سیستم بر روی FPGA های شرکت Xilinx به همراه یک پردازندهی داخلی PowerPC بوده است. انتظار میرود که پردازندههای MicroBlaze نیز قابل استفاده باشند اما هنوز تست نشده است. همچنین، میتوان از این سیستم بر روی FPGA بدون پردازنده نیز استفاده کرد که البته محدودیتهایی در عملکرد بوجود خواهد آورد. این سیستم از یک بلوک رم ساختهشده بعنوان حافظهی گرافیکی استفاده میکند که در واقع اطلاعات مربوطه به پیکسلهای ارسالی به نمایشگر در آن ذخیره میشوند. در حقیقت برای کنترل خروجی نمایشگر باید محتویات این حافظه را ویرایش کرد؛ که این امر میتواند توسط یک پردازندهی داخلی و یا یک کد VHDL صورت پذیرد. لذا استفاده از پردازندهی داخلی اجباری نیست.
تصویر زیر یک نمونه از خروجیهای متنوع قابل ترسیم با کمک یک پردازنده است. توجه کنید که تصویر الصاق شده، یک نمونه از خروجی واقعی نمایشگر است که از طریق استخراج محتویات حافظهی گرافیکی در یک فایل تصویر، بدست آمده است. این پروژه بصورت متنباز و تحت مجوزMIT منتشر شده است. شما به استفاده از این پروژه و مشارکت در گسترش آن دعوت میشوید. کدهای مربوطه در گیتهاب در دسترس هستند. برای IP Core اصلی، مخزن FPGADisplay-ipcore را ببینید. همچنین برای دسترسی به Driver های مورد نیاز جهت کار کردن با پردازندهی داخلی، میتوانید به FPGADisplay-driver مراجعه کنید.
پیادهسازی اولیهی این سیستم بر روی FPGA های شرکت Xilinx به همراه یک پردازندهی داخلی PowerPC بوده است. انتظار میرود که پردازندههای MicroBlaze نیز قابل استفاده باشند اما هنوز تست نشده است. همچنین، میتوان از این سیستم بر روی FPGA بدون پردازنده نیز استفاده کرد که البته محدودیتهایی در عملکرد بوجود خواهد آورد. این سیستم از یک بلوک رم ساختهشده بعنوان حافظهی گرافیکی استفاده میکند که در واقع اطلاعات مربوطه به پیکسلهای ارسالی به نمایشگر در آن ذخیره میشوند. در حقیقت برای کنترل خروجی نمایشگر باید محتویات این حافظه را ویرایش کرد؛ که این امر میتواند توسط یک پردازندهی داخلی و یا یک کد VHDL صورت پذیرد. لذا استفاده از پردازندهی داخلی اجباری نیست.
تصویر زیر یک نمونه از خروجیهای متنوع قابل ترسیم با کمک یک پردازنده است. توجه کنید که تصویر الصاق شده، یک نمونه از خروجی واقعی نمایشگر است که از طریق استخراج محتویات حافظهی گرافیکی در یک فایل تصویر، بدست آمده است. این پروژه بصورت متنباز و تحت مجوزMIT منتشر شده است. شما به استفاده از این پروژه و مشارکت در گسترش آن دعوت میشوید. کدهای مربوطه در گیتهاب در دسترس هستند. برای IP Core اصلی، مخزن FPGADisplay-ipcore را ببینید. همچنین برای دسترسی به Driver های مورد نیاز جهت کار کردن با پردازندهی داخلی، میتوانید به FPGADisplay-driver مراجعه کنید.