خب رفقا، امروز قراره درباره یه پروژه کاملاً عجیب و بامزه با هم حرف بزنیم که یه عشق سختافزار واقعی، با اسم کاربری Leoneq تو گیتهاب انجامش داده! ماجراش اینه که طرف میخواست یه کارت گرافیک بسازه که واقعاً بد باشه! یعنی نه به معنای بیکیفیت معمولی، یه چیزی حتی بدتر از پروژه “بدترین کارت گرافیک جهان” که قبلاً “Ben Eater” درست کرده بود.
Leoneq پروژهشو به اسم “iNapGPU” منتشر کرده و کلی هم توضیح داده. ایندفعه قرار بود حتی از پروژه بن ایتر هم بیمصرفتر دربیاد. گفت که هدفش ساختن یه کارت گرافیک مخصوص حالت متنی بوده فقط با قطعههای خیلی پایه، مثل TTL Gates. (TTL Gates یعنی همون چیپهای منطقی قدیمی که توی الکترونیک دیجیتال پایه استفاده میکنن.)
حالا فکر کنید با این همه سادهسازی، هنوزم نتونست رزولوشن تصویر رو از حداقل استاندارد VGA پایینتر بیاره! (VGA یه نوع خروجی تصویر قدیمی کامپیوتره، معمولاً رزولوشن پایهش 640×480 یا بالاتر هست.)
مشخصات پروژه رو که نگاه کنی، میبینی خروجی تصویریش همون VGA (یا دقیقتر بگیم SVGA یعنی 800×600 پیکسل@60Hz) بوده. البته نسخهی تکرنگش رو تونسته تا 400×300 پایین بیاره. کل مدار با ۲۱تا آیسی مختلف ساخته شده؛ از شمارنده (Counter)، NAND Gate (نوعی آیسی منطقی که ورودیهاشو باید همهشون صفر باشن تا خروجی بشه ۱)، تا EPROM و SRAM (EPROM حافظه فقطخواندنی قابل پاک شدنه، SRAM هم یه رم سریع و کمحجمه).
یه ابتکار زده بود که یه EPROM یک مگابیتی رو به عنوان یه حافظه تکبیتی استفاده کنه. چرا؟ چون میتونست ۴تا مجموعه کاراکتر، هرکدوم با ۲۵۵تا کاراکتر رو داخلش بریزه. ولی خب نتیجهاش چه شد؟ چون از بافرهای Tri-state (یه نوع مدار که خط دیتا رو میبره رو حالت غیرفعال) و شمارندههای خیلی ساده استفاده کرده بود، تصویر پر از نویز و بهمریختگی شد، کارت هم کلی ناپایدار بود.
حتی با این همه محدودیت تو سختافزار، باز نتونست رزولوشن تصویر رو نابود کنه، یعنی از استاندارد VGA پایینتر بیاد. تازه کل ماجرا رو با سیمهای ۰.۱۲ میلیمتری روی برد بورد (Protoboard) ساخته بود! برد حرفهای و چاپی (PCB) هم که اصلاً نبود. خودش هم جایی تو توضیحات گفت: «اصلاً سراغ این کار نرید، اگه دوست دارین اعصابتون آروم باشه برید FPGA بگیرید!» (FPGA یه تراشه برنامهپذیر قدرتمنده که کارهارو آسون میکنه.)
یه نکته بامزه دیگه: تایمر HSYNC که برای همزمانسازی خطوط افقی تصویر استفاده میشه رو با یه شمارنده ۱۲بیتی که فقط تا ۱۲ مگاهرتز توی ولتاژ ۱۵ ولت جواب میده، اورکلاک کرده بود تا ۲۰ مگاهرتز! فقط میخواست فاز کاری بن ایتر رو بترکونه! ولی خب همین کار باعث شد تصویر همش دچار مشکل بشه.
روش کارش جالب بود، به جای اینکه کل خروجی شمارنده رو مقایسه کنه، فقط بیتهایی رو که “یک” بودن، چک میکرد. این روش عجیب باعث شد سیگنالهای تکراری بسازه و تصویر نابود نشه، ولی خب خطا و نویز تصویری زیاد هم داشت. خلاصه که شد یه کارت گرافیک خیلی ضایع اما جالب!
بدتر از این، هر وقت سیستم میخواست چیزی توی حافظه بنویسه، کارت نمیتونست همزمان هم بنویسه هم بخونه؛ پس تصویر کلی نویز میگرفت. حتی یه کابل ساده USB که نزدیک مدار بود باعث پارازیت و خرابشدن تصویر میشد! نمایش کاراکترها هم وضوح درستی نداشتن، چون موقع خوندن و تغذیه ROM مشکل داشت. همچنین هرزگاهی خطای تصویری عجیبی پسزمینه میافتاد.
خود Leoneq کاملاً صادق بود، گفت نتیجه «افتضاح» شده و ساختش فقط هدر رفت زمان بوده! البته توی ریپازیتوریاش ابزار تبدیل فرمت و کد تست مخصوص Arduino Mega هم گذاشته، ولی بیشتر به درد شوخی تکنیکال میخوره تا کاربرد واقعی!
در نهایت، این پروژه ثابت کرد که حتی با یه عالمه قطعه قدیمی TTL هم میشه سیگنال VGA تولید کرد (ولو ضایع!)، ولی همینطور نشون داد چرا طراحهای امروزی میرن سراغ FPGA و مدارهای حرفهایتر تا راحتتر و بدون دردسر کارو انجام بدن.
اگه دنبال چیزای جالب دیگه هستین، میتونین برید سراغ بررسی بهترین NASها (همون ذخیرهساز تحت شبکه برای خونه یا شرکت)، یا بهترین سرویسهای ذخیرهسازی ابری. همچنین مایکروسافت اخیراً سیستم خنککننده مبتنی بر هوش مصنوعی معرفی کرده که مصرف انرژی دیتاسنترهارو به شدت پایین میاره، که خود اینم کلی تکنولوژی داره!
جمعبندی: گاهی تو دنیای تکنولوژی خرابکاریهای جالب هم کلی چیز یاد میدن! همین پروژه مثالشه 😀
منبع: +