Boolean Algebra در برنامه ریزیFPGA: یک راهنمای جامع

آرایه های دروازه قابل برنامه ریزی (FPGA ها) اجزای پایه در سیستم های دیجیتال مدرن هستند که در مخابرات، هوافضا، خودرو، مراکز داده و برنامه های جاسازی شده استفاده می شوند. ویژگی های تعریف شده آنها قابلیت پیکربندی مجدد است: مهندسان می توانند بینش های سخت افزاری را در این روش پیکربندی منطقی و اتصال پس از ساخت مدارهای دیجیتال دلخواه، در قلب این قابلیت ها (LT0: gel 1: مهندسان می توانند به دنبال ساخت یک نقشه های اساسی و پیکربندی دقیق از ساختار پایه ای که تحت ساختار استاندارد هستند.

نکات ضروری Boolean Algebra

Boolean Algebra شاخه ای از Algebra است که با متغیرهای باینری (واقعی / کاذب، 1/0) و عملیات منطقی سروکار دارد.در منطق دیجیتال، این عملیات با دروازه های اساسی مطابقت دارد: و یا، نه، NAND، NOR، XOR و XNOR هر مدار ترکیبی می تواند به عنوان یک تابع Boolean بیان شود و هر مدار می تواند با استفاده از عناصر Boole شرح داده شود.

عملیات پایه و جداول حقیقت

سه عملیات بنیادی عبارتند از:

  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱]]: خروجی تنها ۱ است اگر همه ورودی ها ۱ باشد.
  • [[۱] [۱۰] [۱۰] [۱۰] [۱۰] [۱۰]: خروجی ۱ اگر حداقل یک ورودی ۱ باشد، ۱ است.
  • [در این باره] [و [از این رو] [و [از این رو] [و [از این رو] [و] [و [از این رو] [و] [از این رو] [براى] [براى] [براى] [براى] [براى] [براى [براى] [براى] [براى] [براى [براى] [براى [براى [براى]] [براى [براى]] [براى [براى [براى] [براى] [براى] [براى] [براى]]] [براى [براى [براى [براى]] [و]]]]] [براى [براى [براى [براى [براى [براى [براى]]]]]] [براى [براى [براى]]]]] [براى [براى [براى [براى]]]]]]]]]] [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى [براى]]] [براى

جداول حقیقت به طور خلاصه خروجی را برای هر ترکیب ورودی نشان می دهند، به عنوان مثال، یک درب دو ورودی و دروازه دارای جدول حقیقت است: 000، 01، 10 →0، 11 → 1. Boolean Algebra قوانین را فراهم می کند (متغیر، associative، توزیع، Morgan، هویت، مکمل، و غیره) که اجازه می دهد تا این قوانین بهینه سازی را ساده کنند.

چگونه Boolean Algebra FPGA Logic Blocks را شکل می دهد

در این میان، از |configurable Logic (CLBs) یا عناصر بیولوژیک (LEs) ساخته شده اند ، هر کدام حاوی یک یا چند look-up Table (LUTs) هستند.[۵] AlUT می تواند به طور کامل بر روی یک تابع Boole ۴ (بسطه های ورودی آن) به طور کامل به طور کامل به پردازش های L2 (L-up) تکیه بر روی دکمه های L-x (Lole ۴) تکیه بر روی صفحه اصلی (لینک (۶) تکیه بر روی دکمه های ورودی های {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle {\displaystyle \h} به طور معمول (b} به طور کامل به طور کامل به طور کامل به طور کامل به طور کامل به طور کامل به طور معمول (b} به طور کامل به طور کامل به طور معمول (b} به طور معمول (b

فرمول کردن تابع منطق

طراحی معمولا با یک مشخصات عملکردی بیان شده در یک زبان توصیف سخت افزار (HDL) مانند Verilog یا VHDL آغاز می شود، کامپایلر معادله های Boolean را از توصیف HDL استخراج می کند، به عنوان مثال، یک بلوک همیشه یا یک تخصیص همزمان تبدیل به مجموعه ای از عبارات Boolean می شود.توانایی دستکاری این عبارات با استفاده از قوانین جبری اولین پیاده سازی گام به سمت یک پیاده سازی کارآمد است.

تکنیک های مینیمال سازی

عبارات خام بوئولان از کد سطح بالا اغلب اضافه می شوند. Minimization تعداد اصطلاحات محصول یا تعداد اصطلاحات را کاهش می دهد، به طور مستقیم تعداد LUT های مورد نیاز و بهبود تکنیک های کلیدی شامل:

  • [[ویرایش] [۱] [۱۰] [۱] [۱۰] [۱]]: اعمال قوانینی مانند X + (X · Y] = X ( جذب کننده) یا X + X] = Y + Y [FLT5: [۱۰]
  • نقشه های کارنو: یک روش گرافیکی برای ساده سازی توابع تا شش متغیر با گروه بندی عناصر مجاور.
  • الگوریتمQuine-McCluskey : یک روش زبانه مناسب برای پیاده سازی کامپیوتر که پیدا کردن اولین تکاوران و انتخاب یک پوشش حداقل.
  • منطق اکتشافیو را به حداقل رساند: الگوریتم استاندارد صنعت که در اکثر ابزارهای سنتز استفاده می شود.

این روش ها کاربرد مستقیم Boolean Algebra برای به حداقل رساندن منابع سخت افزاری هستند.

مثال عملی: طراحی یک مولتیپلکس ۲ تا ۱

بیایید یک مثال مشخص را انتخاب کنیم. A 2 تا 1 چندگانه یکی از دو ورودی داده را بر اساس یک خط انتخاب انتخاب کنید. معادله Boolean برای خروجی Y]

[[ویرایش] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]

در جایی که سیگنال انتخاب شده است و B سیگنال انتخاب شده است، این بیان در حال حاضر در مجموع محصول (SOP) است. [FPGA] این به طور مستقیم در بیان جهانی اجرا خواهد شد (که ما می خواهیم از آن استفاده کنیم).

[[ویرایش] [[[ویرایش]] [[[ویرایش]] [[[ویرایش]]]] [[[ویرایش]]]]

این نیاز به چهار دروازه NAND (دو برای شرایط محصول، یکی برای عملکرد OR بیان شده به عنوان NAND از مکمل، به علاوه اینورتر برای S که می تواند از NAND ساخته شده است) این تحول نشان می دهد که چگونه Boolean Algebra طراح را قادر می سازد تا با معماری هدف مطابقت داشته باشد.

استفاده از LUT پیاده سازی

یک FPGA با 4 مجوز LUT می تواند به راحتی این تابع را اداره کند. جدول حقیقت LUT خواهد بود:

SABY
0000
0010
0101
0111
1000
1011
1100
1111

هر ورودی LUT کمی در پیکربندی SRAM ذخیره شده است. ابزار سنتز به طور خودکار معادله Boolean را به این جدول حقیقت می دهد، با این حال، برای طرح های بزرگتر، ابزار بهینه سازی Boolean را برای کاهش شمارش LUT و بهبود اتصالات انجام می دهد.

بهینه سازی پیشرفته Boolean در FPGA سنتز

فراتر از به حداقل رساندن ساده، ابزارهای سنتز مدرن یک سری از تحولات Boolean را در طول نقشه برداری تکنولوژی اعمال می کنند:

عامل سازی و Decomposition

در این میان، در آیات کوچک تر که در عرض ورودی LUT قرار دارند، به عنوان مثال، تابعی (FLT:0F = A + B · C + D-express) E ممکن است به جای LLT:2F = A + (B و C) + (D) و EUT (FUT) تجزیه شود.

بهینه سازی Node and Fanout Optimization

کیفیت نمایندگی بولان بر تأخیر سیگنال تأثیر می گذارد. Boolean algebra کمک می کند تا منطق را برای کاهش تعداد سطوح منطقی بازسازی کند، در نتیجه به حداقل رساندن تأخیر مسیر بحرانی (log) با ویژگی های بهتر می تواند به یک درخت متعادل با استفاده از آستسیاتاسیون برای کاهش عمق از O(log n) به O(log) تغییر کند.

بهینه سازی Sequential Boolean

در دستگاه های حالت محدود (FSMs)، رمزگذاری دولتی و منطق دولت بعدی به عنوان توابع بولان بیان می شود. مینیاتور این توابع می تواند هر دو منطق منطقه و تکنیک های قدرت را کاهش دهد، مانند تخصیص دولت با استفاده از Boolean Algebra (به عنوان مثال، استفاده از چسبندگی دولت ها در یک مکعب Boolean) منجر به ترکیب منطق ساده تر.

مزایای استفاده از Boolean Algebra در طراحی FPGA

مزایای عملی قابل توجه هستند و به طور مستقیم بر معیارهای کلیدی طراحی تأثیر می گذارند:

  • استفاده از منابع ؛ تعداد کمتری از LUT ها و ثبت نام به معنای منطقه کوچکتر، هزینه پایین تر، و توانایی مناسب تر عملکرد بیشتر بر روی همان دستگاه است.
  • ارزیابی ؛ کاهش عمق منطق منجر به تاخیرهای انتشار کوتاه تر، قادر به فرکانس های عملیاتی بالاتر می شود.
  • ] مصرف قدرت ]: تعداد پایین دروازه و کاهش فعالیت تغییر قدرت پویا؛ منطقه کوچکتر نیز نشت استاتیک را کاهش می دهد.
  • قابلیت اطمینان ؛ منطق کم احتمال نقض قوانین طراحی (به عنوان مثال، نگه داشتن مسائل زمان) و ساده سازی تأیید.
  • قابلیت حمل و نقل ؛ بهینه سازی Boolean طراحی را کمتر وابسته به پارچه FPGA خاص، کاهش مهاجرت بین خانواده های فروشنده است.

این مزایا به همین دلیل است که مهندسان زمان را در درک بوزون آلژبرا فراتر از اصول سرمایه گذاری می کنند.

ابزار و زبان برای طراحی Boolean-Level

در حالی که Boolean Algebra در جریان های مدرن ضمنی است، مهندسان معمولا به حداقل رساندن دستی برای طرح های بزرگ تکیه نمی کنند.

  • ابزار سنتز HDL : Synopsys Synplify، بقادو، اینتل Quartus، و Yosy منبع باز همه بهینه سازی Boolean را به عنوان یک گام اصلی انجام می دهند.
  • ] ابزار به حداقل رساندن منطقی : Espresso (مخالفت) و ABC (Berkeley) ارائه می دهد پیشرفته دو سطح و چند سطح به حداقل رساندن.
  • زبان های توصیف سخت افزار : Verilog و VHDL اجازه می دهد تا طراح به طور مستقیم معادلات Boolean را بیان کند (به عنوان مثال، صورت های اختصاص داده شده) یا از ساختارهای سطح بالاتر (case، If-else) که سنتز کنندگان به فرم های Boolean تبدیل می شوند استفاده می کنند.
  • ] تأیید فرمی : Boolean satisfiability (SAT) حل کنندگان و ابزارهای بررسی معادل ثابت می کند که توابع اصلی و بهینه شده Boolean یکسان هستند.

درک کد HDL ترکیبی (Bolean Algebra) به طراحان کمک می کند تا کد HDL سازگار با سنتز را بنویسند، به عنوان مثال، نوشتن به طور مستقیم یک XOR را به جای تکیه بر ابزار برای بهینه سازی شرح افعال بیشتر مشخص می کند.

مسیر های آینده: Boolean Algebra با یادگیری ماشین آشنا می شود

تلاش برای منطق سریع تر و بیشتر منطقه ای ادامه دارد. محققان روش های یادگیری ماشین را بررسی می کنند تا بهینه سازی Boolean را هدایت کنند، مانند استفاده از یادگیری تقویت کننده برای اعمال بهترین توالی از مراحل تجزیه و تحلیل. Boolean Algebra، حقیقت اساسی در برابر آن همه بهینه سازی ها اندازه گیری می شود، زیرا FPGA ها به سمت معماری های ظریف تر (به عنوان مثال، موتورهای دستکاری (F) و اصول اساسی (FLT) تکامل می یابند.

نتیجه گیری

Boolean Algebra یک کنجکاوی ریاضی انتزاعی نیست؛ این موتور است که طراحی FPGA را از ساده ترین LUT به پیچیده ترین داده هاpath، هر بلوک منطق سفارشی یک تجلی از عبارات Boolean است که تبدیل، به حداقل رساندن منابع و نقشه برداری به سخت افزار. Mastery of Boolean Algebra - از جمله قوانین ساده سازی، نقشه های کار، و طراحان توانایی الگوریتمی است که به عنوان یک ابزار پیشرفته طراحی می کنند.

در این باره بخوانید: در قرآن کریم به شرح زیر اشاره کنید: «وَهَاْمَهَاْمَهَاَهَهَهَاَهُواَهَاَهَهَهُواَهُواَهُوا بِنَهَهَهَهَهَهَهُمَهُمَهُوا بِهُمَهَهَهَهَهُمَهُمَهُمَهُوا بِهُمَهُوا بِهَهُمَهُمَهُمَهُمَهُمَهَهُوا بِهُمَهُوَهَهَهَهُوا بِهُمَهَهَهُوا بِهَهَهَهَهَهَهَهَهَهُوَهُمَهُوَهَهَهَهَهَهَهَهَهَهَهَهَهَهَهَهَهَ