این درس یکی از مهمترین دروس مهندسی کامپیوتر و گرایش دیجیتال مهندسی برق است. هدف از آموزش رایگان درس مدارهای منطقی آشنایی با اصول و تحلیل و طراحی مدارهای منطقی دیجیتال، طراحی سیستمی توسط مدارهای ...
مهدی امینیان
این درس یکی از مهمترین دروس مهندسی کامپیوتر و گرایش دیجیتال مهندسی برق است. هدف از آموزش رایگان درس مدارهای منطقی آشنایی با اصول و تحلیل و طراحی مدارهای منطقی دیجیتال، طراحی سیستمی توسط مدارهای مجتمع قابل برنامهریزی (PLD) و زبان توصیف سختافزار است.
درس مدارهای منطقی تلاش میکند صرفاً روی تئوری تمرکز نکند و در حین درس و مخصوصاً در تمرینات شبیهسازی و پروژه کاربرد عملی این مفاهیم را نشان دهد. این درس پایه و پیشنیاز درس معماری کامپیوتر و بهصورت غیرمستقیم پایه اکثر دروس سختافزاری و سیستم عامل محسوب میشود و به دانشجویان قابلیت درک منطق استفاده شده در کامپیوترهای امروزی را میدهد. از طرف دیگر، همنیاز این درس ریاضیات گسسته محسوب میشود، ولی اکثر مطالب مورد نیاز در همین درس مجدداً توضیح داده شدهاند.
مباحث درس را میتوان به چهار بخش کلی (غیر از مقدمه) تقسیم کرد. در بخش اول بعد از مقدمه، مفاهیم پایه مربوط به سیستم اعداد و اعداد دودویی (مبنای دو) که بنیان کامپیوترها یا بهطور کلی سیستمهای دیجیتال هستند بیان میشود، در این بخش، علاوهبر آشنایی با اعداد دودویی و تبدیل آنها به دهدهی (مبنای ده) یا بالعکس، نحوه انجام اعمال اصلی ریاضی نیز روی آنها بررسی میشود. در بخش بعدی اصول جبر بول برای فرمولبندی و ایجاد پایه ریاضی برای منطق دودویی معرفی میشود. در این بخش، گیتهای پایه منطقی معرفی میشوند، نحوه سادهسازی توابع منطقی براساس جبر بول بررسی میشود، همچنین روشهای متفاوت نمایش توابع همچون جدول درستی، مدار، فرمهای کانونی و نمایش بهصورت مینترم و ماکسترم توضیح داده میشوند.
مدار منطقی مداری است که یک عملکرد پردازش یا کنترل را در رایانه اجرا می کند. این مدار عملیات منطقی را بر روی اطلاعات برای پردازش آن ها اجرا می نماید. مدارهای منطقی از دو مقدار برای یک کمیت فیزیکی معین (مثلاً ولتاژ) برای نشان دادن مقادیر بولی true و false یا 1 و 0 استفاده می کنند. در واقع مدارهای منطقی دارای ورودی هستند و همچنین خروجی هایی نیز دارند که می توانند به ورودی ها وابسته باشند. در نمودارهای مدار منطقی، اتصال از خروجی یک مدار به ورودی مدار دیگر به صورت نوک پیکان در انتهای ورودی نمایش داده می شود.
وقتی صحبت از عملکرد به میان می آید، مدارهای منطقی شبیه توابع زبان برنامه نویسی هستند. ورودی ها مشابه پارامترهای تابع هستند در حالی که خروجی ها مشابه مقادیر بازگشتی تابع هستند. یک مدار منطقی می تواند چندین خروجی را در خود جای دهد.
مدارهای منطقی مدارهایی هستند که بخش اصلی آنها را ترانزیستورها در کنار سایر عناصر الکترونیکی تشکیل میدهند. اغلب مدارها یا تراشههای مدرن امروزی تعداد زیادی ترانزیستور دارند. این تعداد در تراشههای کامپیوتری به بیش از یک میلیارد میرسد. شناخت بخشهای مختلف یک مدار کار سادهای است اما ساخت مدار منطقی با بیش از یک میلیارد ترانزیستور کار سادهای نیست و ساخت این مدارها تنها توسط دستگاههای پیشرفته ممکن است. برای ساخت مدارهای منطقی سخت افزارهای خاصی مورد نیاز است.
همانطور که گفته شد از مدارهای منطقی برای ساخت سخت افزارهای کامپیوتر و دیگر محصولات الکترونیکی استفاده میشود که به آنها سخت افزار دیجیتال گفته میشود. علت این نامگذاری نمایش اطلاعات در کامپیوترها بهصورت عددی است که سیگنالهای الکترونیکی را به عدد تبدیل میکنند.
فناوری ساخت این قطعات در طی سالیان گذشته متحول شده است. تا اواسط دهه 1960 مدارهای منطقی از مونتاژ قطعات و ترانزیستورها و مقاومتهای مجزا ساخته میشدند. بعد از آن با اختراع مدارهای مجتمع(IC) امکان قرار دادن تعداد زیادی ترانزیستور روی یک تراشه نیمه رسانا ممکن شد. این مدارهای منطقی تنها چند ترانزیستور داشتند اما با پیشرفت تکنولوژی ساخت IC این مدارها نیز پیشرفتهتر شدند.
بعد از قرار دادن تعداد زیادی تراشه روی یک قرص این تراشهها بهصورت آی سیهای مجزا بسته بندی میشوند. تا اواسط دهه 1970 میلادی تولید این تراشهها چنان پیشرفتی داشت که قرار گرفتن تعداد زیادی مدار منطقی روی یک تراشه ممکن شد. البته قدرت پردازش این ریز پردازندهها در مقایسه با پردازندههای امروزی بسیار کم و ضعیف بود. اما این پیشرفتها راه را برای ساخت سایل الکترونیکی ارزان قیمت از جمله رایانههای شخصی ممکن ساختند.
در حدود 30 سال پیش گوردون مور رئیس هیئت مدیره شرکت اینتل این مسئله را مطرح کرد که تعداد ریز تراشههای کاشته شده روی مدارهای منطقی تقریباً هر دو سال دو برابر میشود. نظریهای که به حقیقت پیوست و این روند همچنان ادامه دارد. این پدیده که به آن قانون مور گفته میشود همچنان وجود دارد. بنابراین ریز پردازندههای که در اوایل دهه 1990 در حدود چند صد میلیون ترانزیستور داشتند در اواخر همان دهه به بیش از چند صد میلیون ترانزیستور رسیدند. در حال حاضر فناوری ساخت مدارهای منطقی یا مدارهای مجتمع توانایی ساخت مدارهایی با بیش از چند میلیارد ترانزیستور را دارد.
البته به نظر میرسد که قانون مور نتواند تا سالیان سال دامه داشته باشد زیرا به هر حال یک ترانزیستور نمیتواند از یک اتم کوچکتر شود. برخی از شرکتهای سازنده مدارهای مجتمع اقدام به پیش بینی آینده این فناوری کردهاند و حداکثر تعداد ترانزیستور هایی که میتوان روی یک تراشه جای داد را تخمین زدهاند.
نام این پیش بینی نقشه راه بین المللی فناوری نیمه هادی است. طبق این نقشه تعداد ترانزیستور ها روی مدارهای منطقی از سال 2006، 2430 میلیون بوده است و هم اکنون تعداد تراشههای امروزی به چند میلیارد میر سد. تا سال 2022 نیز تعداد تراشههای روی مدارها به بیش از 100 میلیارد ترانزیستور خواهد رسید. بی شک دستیابی به این توانایی میتواند تمام جنبههای زندگی را تحت تأثیر قرار دهد.
مدار ترکیبی عملکرد ساده ای دارد. در آن خروجی بر اساس مقادیر فعلی ورودی است. مدارهای ترکیبی از نظر تئوری از گیت های منطقی پایه ساخته می شوند که عبارتند از گیت های AND، گیت های OR، گیت های XOR و اینورترها. خروجی گیت ها در مدارهای ترکیبی هرگز مستقیماً به ورودی های قبلی ارسال نمی شود.
یک گیت AND می تواند هر تعداد ورودی داشته باشد. خروجی آن زمانی درست است که همه ورودی های آن درست باشند. یک گیت AND اغلب برای کنترل یک سیگنال استفاده می شود؛ یعنی روشن یا خاموش کردن آن، بسته به مقدار سیگنال های کنترلی است.
یک گیت OR می تواند هر تعداد ورودی داشته باشد. خروجی آن زمانی درست است که هر یک از ورودی های آن درست باشد.
یک گیت XOR دو ورودی دارد. خروجی آن زمانی درست است که فقط ورودی های آن درست باشد. در غیر این صورت مقدار false برمی گرداند.
یک گیت XOR گاهی اوقات برای کنترل یک سیگنال استفاده می شود، یعنی بسته به مقدار سیگنال کنترل، یا معکوس می شود یا نه.
نکته: توجه داشته باشید که گیت های منطقی پایه را می توان برای تشکیل انواع واحدهای سطح بالاتر ترکیب کرد.
آن ها چندین سیگنال ورودی داده و همچنین یک ورودی کنترل دارند. خروجی با یکی از ورودی ها یکسان است. مقدار سیگنال کنترل تعیین می کند که کدام ورودی باید در نظر گرفته شود.
این گیت ها دارای یک سیگنال ورودی داده، یک ورودی کنترلی و چندین سیگنال خروجی هستند. همه سیگنال های خروجی 0 (نادرست) هستند به جز سیگنالی که توسط ورودی کنترل انتخاب شده است. خروجی انتخاب شده با ورودی داده یکسان است.
این نوع گیت ها یک ستون از یک جمع دودویی را انجام می دهد. جمع کننده های کامل بلوک اصلی برای جمع کننده های چند بیتی و تفریق هستند.
این ها برای جمع یا تفریق دو عدد باینری یا دو عدد مکمل کار می کنند. یک تفریق کننده فقط یک جمع کننده با مدار اضافی است که به آن اجازه می دهد عملیات دو مکمل را روی یکی از ورودی ها انجام دهد. آن ها معمولا طراحی شده برای انجام جمع یا تفریق، به عنوان یک سیگنال کنترل هستند.
این ها دو عدد باینری یا دو عدد مکمل را با هم مقایسه می کنند.
این نوع گیت مانند یک روش شی عمل می کند. خروجی تنها بر اساس ورودی نیست. همچنین مبتنی بر ورودی های گذشته است. این امر با حافظه تعبیه شده در مدار امکان پذیر می شود. مدار حالت شامل هر چیزی است که می تواند بیت های اطلاعات را به خاطر بیاورد، از جمله حافظه، ثبات ها و شمارنده های برنامه.
عنصر اصلی مدار حالت یک فلیپ فلاپ است. فلیپ فلاپ یک بیت داده را ذخیره می کند. چند فلیپ فلاپ را می توان با هم ترکیب کرد تا یک عنصر چند بیتی به نام ثبات را تشکیل دهد. چندین ثبات را می توان در یک بانک ثبت ترکیب کرد. این دو نوع مدار منطقی دست به دست هم داده و یک مسیر داده پردازنده را تشکیل می دهند.
مسیر داده یک پردازنده از نظر مفهومی به دو بخش سازماندهی شده است:
در هنگام طراحی یک سخت افزار دیجیتال که از مدارهای منطقی تشکیل شده است این سؤال پیش میآید که مدارهای منطقی آن بهصورت واحد طراحی شوند یا این مدارها با بهکارگیری تعدادی IC کوچکتر روی بورد مدار چاپی قرار داده شوند. برای طراحی و ساخت سیستمهای دیجیتال ابتدا باید قطعات مختلف را روی یک بورد مونتاژ کنیم و اتصالات مربوطه را انجام دهیم. این اتصالات قطعات مختلف را به یکدیگر مرتبط میکنند. این بوردها که کاربرد زیادی نیز دارند بورد مدار چاپی نام دارند. قطعاتی که روی بردها قرار میگیرند توسط ترکها به هم متصل میشوند. این قطعات معمولاً گیتهای منطقی تکی نیستند و پیچیده و بزرگ هستند.
مدار منطقی بیشتر اوقات بهصورت تراشههای آماده در بازار قابل خریداری هستند که این موضوع باعث میشود طراحی و ساخت محصول آسانتر شود. در حال حاضر تنوع زیادی از مدارهای منطقی با کاربردهای وسیع و پیچیده بهصورت آماده در دسترس است که میتواند در ساخت سخت افزارهای دیجیتال مورد استفاده قرار گیرند. بهعنوان مثال انواع تراشههای محاسباتی، تراشههای حافظه یا تراشههای واسط که ارتباط دستگاه وروردی و خروجی را آسان میکنند، از فروشگاههای قطعات الکترونیکی قابل خریداری هستند.
البته برای ساخت برخی از محصولات سخت افزاری دیجیتال طراحی و ساخت مدار منطقی اختصاصی لازم و ضرروی است. برای پیاده سازی این مدارها از سه نوع تراشه میتوان استفاده کرد که شامل تراشههای استاندارد، دستگاههای منطق قابل برنامه ریزی و تراشههای سفارشی هستند. آشنایی بیشتر با مدارهای منطقی، روش طراحی و پیاده سازی آنها و دیگر کاربردهای آن در مبحث آموزش مدارهای منطقی در دسترس است.
اگر می خواهید مدارهای منطقی را به خوبی یاد بگیرید، پیشنهاد می کنیم که در دوره آنلاین آموزش رایگان مدارهای منطقی مکتب خونه، شرکت کنید. این دوره بسیار جامع و کاربردی بوده و شما را برای طراحی انواع مدارها آماده می کند.
اطلاعات بیشتر
از مجموع 194 امتیاز
82 نظرنظرات بیشتر
دکتر مهدی امینیان، تحصیل آکادمیک خود را در سال ۸۱ در رشته مهندسی کامپیوتر از دانشگاه امیرکبیر آغاز کرد و در سال ۸۵ با گرایش سختافزار به پایان رساند. در سال ۸۵ در همان دانشگاه بهعنوان استعداد درخشان برای کارشناسیارشد مهندسی کامپیوتر با گرایش معماری کامپیوتر پذیرفته شد و تمرکز خود را روی مباحث دیجیتال همانند الکترونیک دیجیتال، VLSI، طراحی مدارهای دیجیتال و سپس روی مدارهای کوانتومی قرار داد و در سال ۸۷ مدرک کارشناسی ارشد خود را با پایاننامه ای در زمینه همانندسازی مدارهای کوانتومی اخذ کرد.
سپس، در اواسط سال ۸۸ برای ادامه تحصیل در مقطع دکترا به دانشگاه پلیتکنیک فدرال لوزان سوییس (EPFL) رفت و در دانشکده برق و گروه معماری پیشرفته کوانتومی پذیرفته شد. در انتهای سال ۲۰۱۴ (آذر ۱۳۹۳) توانست تز دکترای خود را در زمینه طراحی و ساخت تشخیصدهندههای نوری حساس به امواج مادون قرمز براساس مواد سیلیکونی و ژرمانیومی برای کار در دماهای فوق پایین به پایان برساند و مدرک دکترای خود را از یکی از بهترین دانشگاههای اروپا و جهان اخذ کند.
دکتر مهدی امینیان از سال ۹۴ بهعنوان عضو هیئت علمی مهندسی کامپیوتر دانشگاه گیلان مشغول به فعالیت است.
اطلاعات بیشتر