1.15k likes | 2.75k Views
به نام یگانه مهندس هستی مدار منطقی مهدی قدیری Mahdi_ghadiri@yahoo.com Mah.ghadiri@ieee.org. فصل چهارم. مدارهای ترکیبی. مدارهای ترکیبی. 1. Combinational 2. Sequential. مدار های منطقی ترکیبی (circuits without a memory) در این مدار ها مقدار خروجی فقط به مقدار فعلی ورودیها بستگی دارد.
E N D
به نام یگانه مهندس هستی مدار منطقی مهدی قدیری Mahdi_ghadiri@yahoo.com Mah.ghadiri@ieee.org logic circuit 5
فصل چهارم مدارهای ترکیبی logic circuit 5
مدارهای ترکیبی 1. Combinational 2. Sequential مدار های منطقی ترکیبی (circuits without a memory) • در این مدار ها مقدار خروجی فقط به مقدار فعلی ورودیها بستگی دارد. • در این مدارها زمان اعمال ورودی تاثیری در مقدار خروجی ندارد. مدارهای منطقی ترتیبی (circuits with memory) • در این مدارها مقدار خروجی به مقدار فعلی ورودیها و حالت مدار بستگی دارد. • این مدارها از گیتهای منطقی و عناصر ذخیره اطلاعات (حافظه) استفاده می کنند و در فصلهای بعد مورد بررسی قرار می گیرند. LOGIC CIRCUITS: logic circuit 5
مدارهای ترکیبی مهمترین مدارهای ترکیبی: • Adders جمع کننده • Subtractorsتفریق کننده • Comparatorsمقایسه کننده • Decodersدیکدر • Encodersانکدر • Multiplexersتسهیم کننده • Demultiplexers Available in IC’s as MSI and used as standard cells in complex VLSI (ASIC) logic circuit 5
آنالیز منطق ترکیبی گام اول: • مدار را از سمت ورودی ها به سمت خروجی ها ساده می کنیم و خروجی های مدار را بدست می آوریم. گام دوم: • خروجی را به کمک جدول خواص یا جدول کارنو به حاصل جمع مینترم ها تبدیل می کنیم. گام سوم: • جدول درستی مدار را رسم می کنیم و بجای مینترم ها یک(1) جایگزین می کنیم. logic circuit 5
آنالیز منطق ترکیبی logic circuit 5
آنالیز منطق ترکیبی logic circuit 5
A B C F1 F2 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 آنالیز منطق ترکیبی OUTPUTS INPUTS logic circuit 5
طراحی مدارات ترکیبی گام اول: • از روی خصوصیات و تعریف مسئله تعداد ورودیها و خروجیها را مشخص کنید. گام دوم: • جدول درستی را تشکیل دهید و ارتباط ورودیها و خروجیها را مشخص کنید. گام سوم: • با استفاده از جدول کارنو مدار را ساده کنید. گام چهارم: • دیاگرام منطقی مدار را بکشید. • گام پنجم ( اختیاری): • درستی طراحی خود را تحقیق کنید. logic circuit 5
x y F z طراحی مدارات ترکیبی مثال: مداری با سه ورودی و یک خروجی طراحی کنید بطوریکه مقدار خروجی فقط هنگامیکه مقدار عددی معادل ورودیها کمتر از سه باشد، با 1 برابر باشد. y y z 00 01 11 10 گام سوم 0 x 1 گام دوم z گام چهارم: گام اول logic circuit 5
B C S A 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 جمع کننده دودویی – نیم جمع کننده A+Bهدف: محاسبه جمع جبری S: نتیجه حاصلجمع(sum) C : رقم نقلی (carry) x S H.A. y C logic circuit 5
Inputs Outputs A B C S C 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 جمع کننده کامل (full adder) A+B+Cهدف: محاسبه جمع جبری S: نتیجه حاصلجمع(sum) C : رقم نقلی (carry) INPUTS OUTPUTS logic circuit 5
جمع کننده کامل (full adder) C logic circuit 5
جمع کننده کامل به فرم SOP x S F.A. y C z logic circuit 5
پیاده سازی جمع کننده کامل با دو نیم جمع کننده x x S S H.A. H.A. y y C C logic circuit 5
Full-adder چهار بیتی 3 2 1 0 i هدف: محاسبه جمع جبری A3A2A1A0+B3B2B1B0=C4S3S2S1S0 S: نتیجه حاصلجمع(sum) C : رقم نقلی (carry) C0: رقم نقلی از طبقه قبل C4: رقم نقلی به طبقه بعد logic circuit 5
تفریق کننده دودویی • با استفاده از تکنیک مکمل گیری می توان عمل تفریق را انجام داد. • محاسبه مکمل 2 مفروق منه • انجام جمع باینری • محاسبه مکمل 1: • تمام ارقام را معکوس می کنیم یعنی 0 ها را به 1 و 1 ها را به 0 تبدیل می کنیم • محاسبه مکمل 2: • تمام ارقام بعد از اولین 1 از سمت چپ را معکوس می کنیم. • روش دیگر محاسبه مکمل 2: • محاسبه مکمل 1 • جمع با 1 logic circuit 5
y B D x 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 تفریق کننده دودویی – نیم تفریق کننده x-y=x+y’+1هدف: محاسبه تفریق جبری D: نتیجه اختلاف(Difference) B: رقم قرض (Borrow) x D H.S. y B x D y B logic circuit 5
Inputs Outputs A 0 0 0 0 1 1 1 1 تفریق کننده کامل (Full Subtractor) A-B-Cهدف: محاسبه تفریق جبری D: نتیجه اختلاف(Difference) B: رقم قرض (Borrow) INPUTS OUTPUTS B C B D 0 0 0 0 0-0-0=0 0 1 1 1 0-0-1=2+0-0-1=1 1 0 1 1 0-1-0=2+0-1-0=1 1 1 1 0 0-1-1=2+0-1-1=0 0 0 0 1 1-0-0=1 0 1 0 0 1-0-1=0 1 0 0 0 1-1-0=0 1 1 1 1 1-1-1=2+1-1-1=1 logic circuit 5
تفریق کننده کامل (Full Subtractor) x D F.S. y B z logic circuit 5
هدف: تفریق کننده 4 بیتی ورودی M کار مدار را کنترل می کند. چنانچه مقدار M=0 باشد مدار جمع کننده شود. چنانچه مقدار M=1 باشد مدار تفریق کننده شود. نکته: جمع و تفریق کننده با ورودی کنترل 0 1 A A’ A A logic circuit 5
C0 مقدار 1 را در اولین جمع شرکت داده و نتیجه تفریق را اصلاح می نماید. چنانچه مقدار M=0 باشد مدار جمع کننده شود. چنانچه مقدار M=1 باشد مدار تفریق کننده شود. جمع و تفریق کننده با ورودی کنترل logic circuit 5
سرریز وقتی اتفاق می افتد که دو عدد n بیتی را جمع (تفریق) کنیم و نتیجه به n+1 بیت نیاز داشته باشد. اگر v=0 یعنی سرریز نداریم و نتیجه درست است. اگر v=1 یعنی سرریز داریم و بیت n+1 بیت علامت است. اگر C4=1 باشد آنگاه A≥B اگر C4=0 باشد آنگاه A<B سرریز logic circuit 5
ضرب دودویی • ضرب باينري را مي شود مثل ضرب اعداد دهدهي انجام داد. • براي ضرب مضروب B در A ، از کم ارزش ترين بيت مضروب شروع کنيد و آنرا در A ضرب کنيد. ضربهاي ارقام بعدي B را يک واحد به چپ شيفت دهيد و اعداد بدست آمده را با هم جمع کنيد. logic circuit 5
مقایسه کننده • دو عدد A و B را با هم مقایسه کرده و سه خروجی زیر را تولید می کند. • A > B • A = B • A < B • فرض کنید هر کدام چهار بیت داشته باشند: • اگر تمام ها “1” باشند A وB با هم برابر هستند. logic circuit 5
مقایسه کننده • برای اینکه بفهمیم کدامیک بزرگتر است، از با ارزشترین بیت شروع می کنیم و با هم مقایسه می کنیم. هر کدام بزرگتر بود عدد مربوطه بزرگتر است. • اگر مساوی بودند، بیت با ارزش بعدی را امتحان می کنیم. مثال: logic circuit 5
مقایسه کننده 4 بیتی 1 a3 a2 a1 a0 s3 s2 A=B s1 4 bit binary ADDER s0 b3 A>B b2 b1 C4 A<B b0 logic circuit 5
دیکدر (Decoder) • دیکدر یک مدار ترکیبی است که اطلاعات باینری حاصل از n ورودی را به 2nخروجی مجزا تبدیل می کند. • کاربردها: • حافظه اصلی میکروپروسسور: انتخاب بانکهای مختلف حافظه • ورودی و خروجی میکروپروسسور: انتخاب دستگاههای مختلف • دیکود کردن دستورات میکروپروسسور: انتخاب واحدهای مختلف • حافظه: دیکد کردن آدرسهای حافظه logic circuit 5
دیکدر 2 به 4 m0 0 b m1 Decoder 2×4 0 1 m2 a 1 2 m3 3 • نکته: دیکودر فوق تولید کننده مینترم است. D0 0 z D1 Decoder 2×4 0 1 D2 y 1 2 D3 3 logic circuit 5
دیکدر 2 به 4 • تاکنون تمام ورودی ها و خروجی هایی که در مدارها داشتیم اصطلاحا «Active High»یا « منطق مثبت » می باشند. • ورودی و خروجی ها می توانند اصطلاحا «Active Low» یا « منطق منفی» باشند یعنی چنانچه مقدار صفر داشته باشند، فعال و مقدار یک، یعنی غیر فعال هستند. • نکته: دیکودر با خروجی های Active Low تولید کننده ماکسترم است. m0 0 b m1 Decoder 2×4 0 1 m2 a 1 2 m3 3 logic circuit 5
دیکدر 3 به 8 logic circuit 5
جدول درستی دیکدر 3 به 8 • اگر مقدار ورودی دیکدر با مینترم mi معادل باشد، خروجی i ام تنها خروجی است که با بقیه خروجیها تفاوت دارد. logic circuit 5
دیکدر 2 به 4 با ورودی توانا ساز • وقتی که E=0 باشد دیکدر فعال خواهد شد و خروجی متناظر با مینترمی که توسط A و B انتخاب شده است مقدار 0 خواهد داشت. • اما اگر E=1 باشد دیکدر کار نخواهد کرد و مقدار تمام خروجیها 1خواهد بود. • یعنی D0 … D3=1 Complemented outputs logic circuit 5
دیکدر 4 به 16 • وقتی که E=0 است دیکدر بالایی فعال و دیکدر پایینی خاموش خواهد بود. دیکدر بالایی مینترمهای 0000 تا 0111 را تولید خواهد کرد. و همه خروجیهای دیکدر پایینی 0 خواهند بود. • وقتی که E=1 است دیکدر بالایی خاموش و دیکدر پایینی فعال خواهد بود. دیکدر پایینی مینترمهای 1000 تا 1111 را تولید خواهد کرد. و همه خروجیهای دیکدر بالایی 0 خواهند بود. logic circuit 5
مثال از دیکدر • تابع زیر را با استفاده از decoder و یک گیت OR پیاده سازی کنید. 0 1 a 2 2 Decoder 3×8 F b 3 1 c 4 0 5 6 7 logic circuit 5
مثال از دیکدر • تابع مثال قبل را با استفاده از decoder و یک گیت AND پیاده سازی کنید. 0 1 a 2 2 Decoder 3×8 b 3 1 c 4 0 F 5 6 7 logic circuit 5
ساخت تمام جمع کننده با دیکدر • در تمام جمع کننده سه ورودی و دو خروجی داریم که خروجی ها را می توان به صورت جمع مینترم ها به شکل زیر پیاده سازی نمود: logic circuit 5
مولتی پلکسر • مولتی پلکسر یک مدار ترکیبی است که یکی از خطوط ورودی را انتخاب و به خط خروجی وصل خواهد کرد. • اگر تعداد ورودیها برابر 2nباشد مولتی پلکسر n خط انتخاب دارد. I0 0 I1 1 Mux 4×1 F I2 2 I3 3 1 0 s0 s1 logic circuit 5
مولتی پلکسر 2 به 1 مولتی پلکسر 4 به 1 logic circuit 5
مولتی پلکسر 2 به یک چهار بیتی A=A3A2A1A0 0 4 bit Mux 2×1 F B=B3B2B1B0 1 s logic circuit 5
مولتی پلکسر 4 به 1 • در حالت کلی، یک مولتی پلکسر 2nبه 1 را می توان توسط یک دیکدر n به 2nساخت. I0 I1 I2 0 I3 0 1 Decoder 2×4 1 2 3 1 0 s1 s0 logic circuit 5
مولتی پلکسرها • خروجی مدار زیررا به ساده ترین شکل ممکن بنویسید. a 0 a’ 1 Mux 4×1 F 1 2 0 3 1 0 b c logic circuit 5
پیاده سازی توابع بولی توسط مولتی پلکسرها • هر تابع nمتغیره را می شود توسط یک مولتی پلکسر که mخط انتخاب دارد ساخت. • برای این کار: • ابتدا جدول درستی را تشکیل دهید. • mورودی با ارزش را به ورودیهای انتخاب مولتی پلکسر وصل کنید. (اولویت با ارزش بیشتر) • به ازای هر ترکیب از ورودیهای انتخاب، خروجی را بر حسب ورودی های باقیمانده (کم ارزش ترین ورودی ها) تعیین کنید.( یک رابطه یا تابع ) • ورودیهای مالتی پلکسر را طبق نتیجه مرحله قبل (تابع) وصل کنید. logic circuit 5
پیاده سازی توابع بولی توسط مولتی پلکسرها • مثال: تابع را به کمک مالتی پلکسر 8 به 1 پیاده سازی نمایید. 0 0 1 1 1 2 Mux 8×1 F 0 3 0 4 0 5 1 6 1 7 2 1 0 x y z logic circuit 5
پیاده سازی توابع بولی توسط مولتی پلکسرها • مثال: تابع را به کمک مالتی پلکسر 4 به 1 پیاده سازی نمایید. Z Z 0 Z’ Z’ 1 Mux 4×1 F 0 2 1 3 0 1 0 Y X 1 logic circuit 5
پیاده سازی توابع بولی توسط مولتی پلکسرها • مثال: تابع را به کمک مالتی پلکسر 2 به 1 پیاده سازی نمایید. y’z+ z’y 0 Mux 2×1 F y 1 y’z+ z’y x z 0 y Mux 2×1 F y y 1 x logic circuit 5
پیاده سازی یک تابع بولی چهار متغیره توسط یک مولتی پلکسر 8 به 1 به ترتیب ورودیها دقت کنید. D D D 0 D’ D 1 D’ 2 0 Mux 8×1 F 0 3 0 4 0 D 5 1 6 D 1 7 2 1 0 1 A C B 1 logic circuit 5
گیتهای سه حالته • یک گیت سه حالته دارای سه حالت است: 0 و 1 و امپدانس بالا. در حالت امپدانس بالا خروجی مدار باز خواهد بود. • وقتی که ورودی کنترل 0 باشد مقدار خروجی امپدانس بالا خواهدبود. • وقتی که مقدار ورودی کنترل 1 باشد خروجی به ورودی وصل خواهد بود. • لذا می توان هر تعداد دلخواه از خروجیهای این گیتها را به هم وصل نمود. بدون این مشکل load داشته باشیم. logic circuit 5
ساخت مولتی پلکسر توسط گیتهای سه حالته دقت کنید این نوع بستن خروجیها در انواع دیگر گیتها مجاز نیست. logic circuit 5