بخش اول آموزش FPGA : آشنایی با انواع مدارات منطقی دیجیتال

بخش اول آموزش FPGA : آشنایی با انواع مدارات منطقی دیجیتال

مقدمه

امروزه استفاده از سیستم های الکترونیکی دیجیتال در همه ابعاد گسترش یافته است و بر سیستم های مبتنی بر طراحی آنالوگ برتری دارد . برتری ویژه‌ی سیستم‌های دیجیتال بر آنالوگ ، امروزه باعث شده تمایل بسیاری برای طراحی بر پایه‌ی سیستم‌های دیجیتال به‌وجود آید. در یک سیستم دیجیتال تمامی داده ها و اطلاعات به صورت کدهای ۰ یا ۱ نمایش ، پردازش و ذخیره می شود که باعث می شود مزیت هایی برای این سیستمها بوجود آید .

  • قابل برنامه ریزی بودن : به سادگی برای اجرای هر الگوریتمی قابل تغییر و برنامه ریزی هستند.
  • سرعت بالاتر : سرعت انجام پردازش های گوناگون بسیار بیشتر و قوی تر است.
  • دقت بیشتر و کاهش خطا : سیگنال های دیجیتال دارای دقت بالاتر هستند و در نتیجه امکان خطای پردازش کمتری دارند.
  • حجم کمتر و توان پایین تر : سیستم های دیجیتال روز به روز به سمت کوچکتر شدن و توان مصرفی پایین تر پیش می روند.

 

گرچه کامپیوتر مثال بارزی از یک سیستم دیجیتال است اما سیستمهای بسیار دیگری نیز مبتنی بر طراحی دیجیتال وجود دارند مانند ساعت های دیجیتال ، ماشین حساب ، گوشی های تلفن همراه و تبلت ها و …

 


سطوح طراحی سیستم های دیجیتال

سیستم های دیجیتال را می توان در سطوح مختلف طراحی و پیاده سازی نمود . از بالاترین سطح که تنها رفتار و عملکرد یک سیستم را شامل می شود و هیچ تشریحی از سخت افزار ذکر نشده است تا سطوحی که ساختار فیزیکی مواد سازنده آنها را نیز مورد مطالعه قرار می دهد . به طور کلی سطوح طراحی یک سیستم دیجیتال به صورت زیر است :

  • سطح رفتار ( Structure Level ) : بالاترین سطح طراحی دیجیتال است که در آن رفتار هر سیستم بدون مشخص بودن جزئیات سخت افزاری توصیف می گردد. در این سطح هر سیستم از به هم پیوستن یک یا چند سیستم دیگر که توسط سیگنال های دیجیتال با هم ارتباط دارند توصیف می شود .
  • سطح ثبات ( Register Level ) : در این سطح به یک سیستم دیجیتال به صورت مجموعه ای از ماژول های ترکیبی و ترتیبی نظاره می شود که سیگنال های دیجیتال را با انتقال بین ثبات ها (رجیسترها) پردازش می کند . در این سطح طراحی ، از سطح توصیف رفتار یک سیستم ، پایین تر آمده و به توصیف ساختار داخلی به صورت ماژولار می پردازیم .
  • سطح گیت ( Gate Level ) : گیت ها کوچکترین واحد منطقی یک سخت افزار دیجیتال هستند که عملکرد های مخصوص به خود را دارند و از به هم پیوستن آنها ، مدارات بزرگتر شامل انواع ماژول های ترکیبی و ترتیبی شکل می گیرند . بنابراین در این سطح نیز به توصیف رفتارهای جزئی تری از یک سخت افزار دیجیتال می پردازیم .
  • سطح مدار ( Circuit Level ) : در این سطح یک سخت افزار دیجیتال به صورت مجموعه ای از ترانزیستورها درون مدار در نظر گرفته می شود . در این سطح ، طراحی پایین تر از سطح گیت آمده و رفتار سیستم توسط مداری ترانزیستوری بیان می شود .
  • سطح ترانزیستور ( Transistor Level ) : پایین ترین سطح طراحی مدار می باشد که بر اساس تعیین چگونگی ساختار فیزیکی یک ترانزیستور سیستم را توصیف می کند به طوری که از به هم پیوستن ترانزیستورها ، مدار و گیت ساخته می شود . بنابراین در این سطح کوچکترین جزئیات طراحی یک ترانزیستور در نظر گرفته می شود.

 DigitalDesignLevel


طراحی دیجیتال در سطح ترانزیستور

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

در مدارات دیجیتال از ترانزیستور به عنوان سوئیچ قطع و وصل ( ۰ و ۱ ) استفاده می شود . منطق های ۰ و ۱ در حقیقت سطوح ولتاژ بالا ( High ) و پایین ( Low ) هستند که از به هم پیوستن آنها سیگنال های دیجیتال شکل می گیرند . سیگنال دیجیتال مجموعه ای از صفرها و یک های منطقی است که در واحد زمان عبور می کند . بنابراین یک سیگنال دیجیتال در بردارنده اطلاعات به صورت کدهای ۰ و ۱ می باشد.

از ترکیب تعدادی ترانزیستور با هم سطوح بالاتر طراحی دیجیتال شکل می گیرد . در این سطح طراحی به تمامی جزئیات مربوط به فیزیک ترانزیستور از جمله ابعاد ترانزیستور و تکنولوژی ساخت آن توجه بسیاری می شود . تکنولوژی های ساخت ترانزیستور در جهت طراحی ترانزیستور با سرعت بالاتر ، توان مصرفی کمتر ، بسته بندی کم حجم تر و قیمت تمام شده پایین تر پیش می رود . برای طراحی در این سطح مسیر کاملا متفاوتی نسبت به سطوح دیگر وجود دارد چرا که این سطح نیازمند دانش عمیق فیزیک الکترونیک و طراحی مدارات مجتمع دیجیتال می باشد . تراشه های موسوم به ASIC یا مدارات مجتمع خاص ( Application Specific Integrated Ciruts ) براساس طراحی در سطح ترانزیستور و به منظور انجام عملیات خاص، طراحی و ساخته می شود ولی ساخت این مدارات در صورت تولید کم آن از دیدگاه اقتصادی قابل توجیه نیست. در این سطح مسیر طراحی طولانی تر ولی با کیفیت بیشتر از سایر سطوح می باشد . مشکل دیگر ‏این تراشه‏‏ ها آن است که در صورت نیاز به ایجاد یک تغییر کوچک در طراحی، باید پروسه زمان‏بر و پر هزینه فوق مجدداً سپری شود.

 


طراحی دیجیتال در سطح توصیف ساختار ( سطح گیت و رجیستر )

در این سطح طراحی ابتدا به معرفی و تشریح گیت ها و رجیستر ها می پردازیم .

دروازهٔ منطقی یا گیت منطقی ( Logic gate) روی یک یا دو ورودی منطقی عملیات منطقی انجام می‌دهد و سرانجام یک خروجی منطقی را تولید می‌کند. گیتهای منطقی ممکن است به صورت یک مدار با اجزای الکترونیکی ساخته شده باشند یا بصورت یک آی سی درآمده باشند. این آی سی ها در درون خود از تعدادی دیود ، ترانزیستور ، خازن و مقاومت ساخته شده است .
گیتهای منطقی معروف و پرکاربرد عبارتند از :
AND
OR
NOT
Buffer

XOR و XNOR
NAND و NOR

هر یک از این گیتهای منطقی یک سمبل و یک کارکرد خاص دارند.
طرز کار آنها به این صورت است که هر کدام یک یا چند پایه ورودی دارند و یک پایه خروجی. با توجه به اینکه وضعیت ورودی ها به چه صورتی باشد ، خروجی وضعیت خاصی می یابد.
برای هر گیت منطقی یک جدول وجود دارد که رابطه بین ورودی ها و خروجی در آن نمایش داده شده. مخصوصا گیتهای منطقی که بصورت آی سی در بازار موجودند دارای جداولی به نام Truth Table (جدول درستی) در دیتاشیت خود هستند که در آنها نشان داده شده که در هر وضعیت ورودی ها ، خروجی چگونه خواهد بود.


AND

گیت AND در صورتی که همه ورودی ها ۱ باشد خروجی در وضعیت بالا قرار می گیرد وگرنه در بقیه موارد خروجی در سطح صفر منطقی می باشد شکل زیر جدول صحت و نماد استاندارد گیت AND نشان داده شده است. آی سی ۷۴۰۸ دارای دو گیت AND می باشد .

And                                         


OR

گیت OR در صورتی که یکی از ورودیها ویا همه ورودیها بالا باشد (یک منطقی)خروجی در وضعیت بالا قرار می گیرد . آی سی ۷۴۳۲ دارای دو گیت OR می باشد .

Or


NOT

گیت NOT هر آنچه در ورودی اعمال می شود آن را معکوس می کند و به خروجی می برد. آی سی ۷۴۰۴ دارای ۶ گیت not می باشد.

Not


BUFFER

این گیت همانند گیت NOT یک ورودی و یک خروجی دارد . اما منطق ورودی و خروجی یکسان است . آی سی ۷۴۲۴۴ دارای ۸ بافر با پایه فعالساز می باشد .

Buffer

کاربرد بافرها در مدار به علت :

  1. منطقی کردن سطح ولتاژ : در مدارهای دیجیتال ممکن است با افت ولتاژ یا افزایش ولتاژ مواجه شویم که این مسئله باعث تغییر منطق ولتاژ از ۱ به ۰ یا بالعکس می شود. برای جلوگیری از تغییرات ناخواسته ولتاژی که باعث افت عملکرد مدار می شود از گیت بافر استفاده می شود.
  2. تقویت جریان در خروجی : استفاده از گیت بافر باعث تقویت جریان در خروجی این گیت می شود بدین معنی که می توان به خروجی بار بزرگتری متصل کرد بدون اینکه افت ولتاژ داشته باشیم .
  3. ایزوله سازی مدار : یکی از استفاده های دیگر گیت بافر در حالت مدار باز ( High Z ) می باشد بدین معنی که طرف راست گیت بافر از سمت چپ آن به کلی جدا می گردد .

 


NAND

گیت NAND مکمل گیت AND است و خروجی منحصر به فرد آن در زمانی یک منطقی نمی باشد که همه ورودیها در سطح بالا (یک منطقی) باشد. آی سی ۷۴۰۰ دارای دو Nand می باشد .

Nand


NOR

گیت NOR مکمل گیت OR می باشد و خروجی آن وقتی یک است که ورودی ها در سطح صفر منطقی باشند. آی سی ۷۴۰۲ دارای دو گیت NOR می باشد .

Nor


XOR

تابع XOR که به OR انحصاری معروف است در صورتی که تعداد فردی از ورودی ها ۱ باشد خروجی ۱ می شود این اصل در جدول صحت بیان شده است . آی سی ۷۴۸۶ داری ۴ گیت XOR می باشد .

Xor


XNOR

مکمل گیت XOR می باشد . آی سی ۷۴۲۶۶ دارای ۴ گیت XNOR می باشد .

Xnor
مثالی از مدارات ترکیبی :

مدار ترکیبی که دو رقم دودویی ( دو بیت ) را با هم جمع می کند ، نیم جمع کننده می نامند.

HalfAdder

مداری که سه رقم دودویی ( سه بیت ) را جمع کند (جمع دو رقم دودویی و یک رقم نقلی حاصل از ستون قبلی)، تمام جمع کننده نامیده می شود.

FulAdder

که در این مدار ها S حاصل جمع دو رقم، C رقم نقلی خروجی، x و y دو رقم جمع شونده و z رقم نقلی طبقه ی با ارزش کمتر.

 


مدارهای ترکیبی و ترتیبی دیجیتال

به طور کلی مدارهای موجود در طراحی سیستم های دیجیتال را می توان به دو دسته زیر تقسیم می شوند :

  • مدارهای ترکیبی (آسنکرون) مانند گیت ها و…
  • مدارهای ترتیبی (سنکرون) مانند رجیسترها و …

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

در مدارهای ترکیبی هیچ گونه سیگنالی به عنوان تعیین پذیرش ورودی ندارند و همه ورودیها به طور یکسان می توانند بر مدار اثر بگذارند. در این مدارها لازم است که تمامی تغییرات در سیگنالهای ذخیره شده داخلی پیگیری شود.

 


ادامه مدارهای ترکیبی (آسنکرون)

دیکودر یا کدگشا ( decoder )

یک مدار ترکیبی است که دارایn بیت ورودی و ۲n بیت خروجی دیجیتال می باشد. بر اساس کدی که در ورودی دیکدر قرار می گیرد تنها یکی از ۲n خروجی آن فعال می شود.

 

Decoder

مثال : ( دیکدر ۳ به ۸ ) خروجی : ۰۰۰۰۰۱۰۰  <——–  ورودی : ۰۱۰

از کاربردهای دیکدر میتوان به آدرس دهی خطوط حافظه اشاره کرد. در این کاربرد کدهای موجود در ثبات آدرس که آدرس محلی از حافظه را به صورت کد نگاه می دارد ، بوسیله کد گشا رمز گشایی می شود .

decoderr


انکدر یا کدگذار ( encoder )

یک مدار ترکیبی با ۲n ورودی و n خروجی می باشد . در کدگذار در صورتی که یکی از پایه های ورودی را فعال کنیم در خروجی کد باینری معادل آن تولید می شود . یعنی انکدر دقیقا عکس دیکدر عمل می کند.

مثال : انکدر ۴ به ۲

encoderاز کاربردهای انکدر می توان دریافتن آدرس وقفه های مختلفی که به پردازنده ای فرستاده می شود اشاره کرد. در این کاربرد دیگر نیاز نیست که برای هر وسیله که وقفه نیاز دارد ، خطوط جداگانه ای برای آدرس ایجاد کرد یعنی ۲n وسیله را با n خط و با یک کد گذار می توان آدرس دهی کرد.

encoderr


مالتی پلکسر ( Multiplexer )

یک مدار ترکیبی است که دارای ۲n بیت ورودی دیتا ، n بیت انتخاب دیتا و ۱ بیت خروجی می باشد . یک مالتی پلکسر توسط n بیت انتخاب دیتا ۲n ورودی راکنترل می کند که کدام یک از آنها به خروجی وصل باشد . پس در واقع مالتی پلکسر همانند سوئیچی عمل می کند که از بین تعدادی ورودی یکی از آنها انتخاب و به خروجی وصل می شود .

 


دی مالتی پلکسر ( Demultiplexer )

دارای ۱ ورودی و n خروجی و n بیت انتخاب است . دی مالتی پلکسر دقیقا عکس مالتی پلکسر عمل می کند یعنی انتخاب می کند که یک خط دیتای وارد شده به کدام خروجی وصل شود . دیگر خروجی ها صفر هستند .

 

MuxDmux


آشنایی با مدارات ترتیبی دیجیتال

در مدارهای ترکیبی دیجیتال به محض تغییر ورودی ، خروجی نیز تغییر می کند و همچنین خروجی فعلی تنها به ورودی فعلی بستگی دارد . اما دسته ای دیگر از مدارها هستند که برای آنها پیش بینی مقادیر خروجی ها با دانستن ورودی های فعلی همیشه امکانپذیر نیست. به عبارت دیگر خروجی اینگونه مدارها می توانند علاوه بر ورودی های فعلی به ورودی های قبلی مدار نیز وابسته باشند. مدارهایی را که اینگونه عمل می کنند مدارهای ترتیبی می نامند. مدارات ترتیبی را مدارات باحافظه هم می گویند . بنابراین در مدارهای ترتیبی، خروجی نه تنها به ورودی فعلی بلکه به ورودیهای قبلی هم بستگی دارد و قادرند اطلاعات را در خود ذخیره کنند.

  1. فلیپ فلاپ SR :

SRff

  1. فلیپ فلاپ D :

 Dff

  1. فلیپ فلاپ JK :

 JKff

  1. فلیپ فلاپ T :

 Tff


ثبات یا رجیستر

یکی از انواع حافظه ها با سرعت بسیار بالا هستند که درون پردازنده ها و میکروکنترلرها کاربرد دارد. رجیستر ها معمولا از فلیپ فلاپ D ساخته میشوند و به تعداد بیت هایی که دارند فلیپ فلاپ D دارند. هر رجیستر میتواند به دو صورت پر و خالی شود یکی به صورت موازی و دیگری به صورت سریال . در شکل زیر یک رجیستر ۴ بیتی نشان داده شده است که به صورت موازی پر و خالی می شود.

PIPO

7+

کاربرانی که این مطلب را پسندیده اند:

  • avatar
این مطلب را با دوستانتان به اشتراگ بگذارید

دیدگاه (7)

  • افشین پاسخ

    این سایت عالیه موفق باشید اگه مطالب سایت به صورت pdf در دسترس بود خیلی عالیه می شد آخه همه جا به اینترنت دسترسی ندارد

    ۱۳/۰۲/۱۳۹۴ در ۲۰:۳۴
    • محمد حسین پاسخ

      خیلی ممنون و متشکر از حسن نظرتون . حرف شما کاملا درسته به محض تکمیل شدن آموزش ها حتما به صورت pdf قرار خواهم داد .

      ۱۳/۰۲/۱۳۹۴ در ۲۲:۳۴
  • شهسواری پاسخ

    با درود
    کاش امکان دانلود یا ذخیره اطلاعات رو میذاشتین..
    تصاویر و متن‌ها جالب نگارش شده‌اند.

    ۱۶/۰۸/۱۳۹۴ در ۲۲:۵۵
    • محمد حسین پاسخ

      درود بر شما دوست عزیز … متاسفانه هر آنچه که ارزشمند است را باید قفل زد … در پایان آموزش FPGA ( اواخر امسال ) حتما امکان دانلود یکجا به صورت pdf میزارم … ببخشید

      ۱۶/۰۸/۱۳۹۴ در ۲۳:۱۴
  • باقری پاسخ

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

    ۰۶/۰۴/۱۳۹۵ در ۰۹:۵۶
    • شجاع داودی پاسخ

      سلام دوست عزیز این امکان برای آموزش های AVR و ARM وجود دارد و برای FPGA نیز در آینده وجود خواهد داشت.

      ۰۷/۰۴/۱۳۹۵ در ۰۶:۵۶
  • Kuroshpars19 پاسخ

    واقعا عالی بود
    ممنون

    ۲۱/۰۸/۱۳۹۵ در ۰۷:۳۴

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سه × 5 =