طراحی مالتی پلکسر 2 به 1

Download Report

Transcript طراحی مالتی پلکسر 2 به 1

Slide 1

‫مبحث چهارم‬
‫منطق ترکیبی‬
Presented by A. Maleki

Fall Semester, 2010


Slide 2

‫فهرست مطالب‬
‫مقدمهای بر مدارهای ترکیبی‬
‫روش تحلیل و روش طراحی‬

‫جمعکننده – تفریقگر دودویی‬
‫جمعکنندهي دهدهی‬
‫ضربکنندهي دودویی‬
‫مقایسهگر مقدار‬
‫دیکدرها‬

‫انکدرها‬
‫مالتیپلکسرها و دی‌مالتی‌پلکسرها‬


Slide 3

‫منطق ترکیبی (‪)Combinatorial Logic‬‬
‫مدارهای منطقی‬

‫مدارهای ترتیبی‬
‫ثبات‬

‫فلیپ فالپ‬

‫مدارهای ترکیبی‬
‫شمارنده‬

‫دیکدر‬

‫مالتی پلکسر‬

‫جمع کننده‬

‫مدار ترکیبی‬
‫مداری شامل گیتهای منطقی که خروجیهای آن تنها به ورودیها در همان زمان وابسته است‪.‬‬

‫واژهنامه‪:‬‬
‫مدار منطقی ترکیبی‪Combinational Logic, Combinatorial Logic :‬‬


Slide 4

‫منطق ترکیبی (‪)Combinatorial Logic‬‬
‫مدارهای منطقی‬

‫مدارهای ترتیبی‬
‫ثبات‬

‫فلیپ فالپ‬

‫مدارهای ترکیبی‬
‫دیکدر‬

‫شمارنده‬

‫مالتی پلکسر‬

‫جمع کننده‬

‫مدار ترتیبی‬
‫مداری شامل گیتهای منطقی و عناصر حافظه که خروجی آن عالوه بر ورودیهای فعلی به‬
‫حالت مدار (ورودیهای قبلی) نیز وابسته است‪.‬‬

‫واژهنامه‪ :‬مدار منطقی ترتیبی‪:‬‬

‫‪Sequential Logic‬‬


Slide 5

‫شیوههای مختلف توصیف مدار منطقی ترکیبی‬
‫شماتیک مداری‌‬
‫جدول درستی‬
‫توابع بولی‬


Slide 6

‫شیوههای مختلف توصیف مدار منطقی ترکیبی‬
‫شماتیک مداری‌‬
‫جدول درستی‬
‫توابع بولی‬


Slide 7

‫شیوههای مختلف توصیف مدار منطقی ترکیبی‬
‫شماتیک مداری‌‬
‫جدول درستی‬
‫توابع بولی‬

‫جدولی شامل ‪ 2n‬ترکیب مختلف ورودی‬
‫و ‪ m‬ستون برای متغیرهای خروجی‬


Slide 8

‫شیوههای مختلف توصیف مدار منطقی ترکیبی‬
‫شماتیک مداری‌‬
‫جدول درستی‬
‫توابع بولی‬

‫‪ m‬تابع بولی که هر یک تابعی از ‪ n‬متغیر ورودی است‪.‬‬


Slide 9

‫تحلیل مدارهای ترکیبی‬
‫‪‬مشخص کردن تابعی که مدار منطقی ترکیبی پیادهسازی میکند‪.‬‬

‫‪‬نتیجه میتواند جدول درستی یا تابعهای بولی باشد‪.‬‬


Slide 10

‫مثال‬
‫مدار منطقی شماتیک شکل زیر را تحلیل نموده و‬
‫الف‪ :‬تابع های بولی ‪ F1‬و ‪ F2‬را به دست آورید‪.‬‬

‫ب ‪ :‬جدول درستی مدار را به دست آورید‪.‬‬


Slide 11

‫مثال‬
‫مدار منطقی شماتیک شکل زیر را تحلیل نموده و‬
‫الف‪ :‬تابع های بولی ‪ F1‬و ‪ F2‬را به دست آورید‪.‬‬

‫ب ‪ :‬جدول درستی مدار را به دست آورید‪.‬‬

‫‪T1 = ABC‬‬
‫‪T2 = A + B + C‬‬
‫‪F2 = AB + AC + BC‬‬
‫’‪T3 = T2F2‬‬
‫’)‪= (A + B + C)(AB + AC + BC‬‬
‫‪F1 = T1 + T3‬‬
‫’)‪= ABC + (A + B + C)(AB + AC + BC‬‬


Slide 12

‫مثال‬
‫مدار منطقی شماتیک شکل زیر را تحلیل نموده و‬
‫الف‪ :‬تابع های بولی ‪ F1‬و ‪ F2‬را به دست آورید‪.‬‬

‫ب ‪ :‬جدول درستی مدار را به دست آورید‪.‬‬

‫‪F1‬‬

‫‪T3‬‬

‫’‪F2‬‬

‫‪F2‬‬

‫‪A B C T 1 T2‬‬

‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬

‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬


Slide 13

‫طراحی مدارهای ترکیبی‬
‫روش طراحی‪:‬‬
‫‪ -1‬تعیین ورودیها و خروجیها بر اساس مشخصات مدار‬
‫(‪ n‬ورودی و ‪ m‬خروجی)‬
‫‪ -2‬تشکیل جدول درستی بر اساس مشخصات مدار‬
‫(‪ 2n‬ترکیب ورودی و ‪ m‬ستون خروجی)‬
‫‪ -3‬سادهسازی و به دست آوردن عبارتهای منطقی‬
‫‪ -4‬ترسیم نمودار شماتیک‬


Slide 14

‫مثال‬
‫مداری جهت تبدیل کد ‪ BCD‬به کد افزونی‪ )Excess-3( 3‬طراحی نمایید‪.‬‬
‫مرحله او ‌ل‪ :‬تعیین ورودیها و خروجیها بر اساس مشخصات مدار‬
‫متغیرهای ورودی‪ :‬چهار متغیر ‪ C ، B ، A‬و ‪D‬‬
‫متغیرهای خروجی‪ :‬چهار متغیر ‪ y ، x ، w‬و ‪z‬‬


Slide 15

‫مثال‬
‫مداری جهت تبدیل کد ‪ BCD‬به کد افزونی‪ )Excess-3( 3‬طراحی نمایید‪.‬‬
‫مرحله دوم‪ :‬تشکیل جدول درستی بر اساس مشخصات مدار‬


Slide 16

‫مثال‬
‫مداری جهت تبدیل کد ‪ BCD‬به کد افزونی‪ )Excess-3( 3‬طراحی نمایید‪.‬‬

‫مرحله سوم‪ :‬سادهسازی و به دست آوردن تابعهای بولی‬

‫‪w = A + BC + BD‬‬
‫’‪x = B’C + B’D + BC’D‬‬
‫’‪y = CD + C’D‬‬
‫’‪z = D‬‬


Slide 17

‫مثال‬
‫مداری جهت تبدیل کد ‪ BCD‬به کد افزونی‪ )Excess-3( 3‬طراحی نمایید‪.‬‬
‫مرحله چهارم‪ :‬ترسیم نمودار شماتیک‬
‫در سیستمهای چندخروجی‪ ،‬ممکن است با دستکاری‌های جبری بتوان به پیادهسازی‌های مناسب‬
‫تری دست یافت‪.‬‬

‫‪w = A + BC + BD‬‬
‫)‪= A + B(C + D‬‬
‫’‪x = B’C + B’D + BC’D‬‬
‫’)‪= B’(C + D) + B(C + D‬‬
‫’‪y = CD + C’D‬‬
‫’)‪= CD + (C + D‬‬

‫’‪z = D‬‬

‫این طرح نیاز به ‪ 8‬گیت دو ورودی و یک گیت ‪ Not‬دارد‪ .‬ولی طرح دیگر دوسطحی نیست‪.‬‬


Slide 18

‫جمعکننده‪ -‬تفریقگر دودویی‬
‫ی‬
‫‪ ‬جمع دو رقم باینر ‌‬
‫‪‬جمع دو عدد باینری‌‬

‫‪Output Carry‬‬

‫‪0+1=1,‬‬

‫‪0+0=0,‬‬

‫‪1 + 1 = 10‬‬

‫‪1+0=1,‬‬

‫‪‬نیم جمع کننده‬

‫? = ‪1 01 + 101‬‬

‫‪‬تمام جمعکننده‬

‫‪a 3-bit adder uses 3 one-bit adder‬‬
‫‪for second digit, there is input carry‬‬

‫مداری که دو بیت را به عنوان ورودی پذیرفته و حاصل‬
‫جمع و نقلی خروجی را تولید مینماید‪.‬‬
‫مداری که دو بیت را به همراه نقلی ورودی با هم جمع میکند‪ .‬تمام‬
‫جمعکننده را میتوان با دو نیمجمعکننده ایجاد نمود‪.‬‬


Slide 19

‫نیم جمعکننده (‪)Half Adder‬‬
‫طراحی نیمجمعکننده‪:‬‬
‫‪ -1‬تعیین ورودیها و خروجیها‬

‫‪Two inputs: x,y‬‬
‫)‪Two Outputs: S (sum), C (carry‬‬

‫‪ -2‬تشکیل جدول درستی‬
‫‪ -3‬سادهسازی و به دست آوردن تابعهای بولی‬
‫‪ -4‬ترسیم نمودار شماتیک‬
‫‪S = x’y + xy’ = x  y‬‬
‫‪C = xy‬‬


Slide 20

‫تمام جمعکننده (‪)Full Adder‬‬
‫طراحی تمام جمعکننده‪:‬‬
‫‪ -1‬تعیین ورودیها و خروجیها‬

‫‪Three inputs: x,y,z‬‬
‫)‪Two Outputs: S (sum), C (carry‬‬

‫‪ -2‬تشکیل جدول درستی‬
‫‪ -3‬سادهسازی و به دست آوردن تابعهای بولی‬
‫‪ -4‬ترسیم نمودار شماتیک‬

‫‪S = x’y’z + x’yz’ + xy’z’ + xyz‬‬
‫‪=xyz‬‬
‫)‪C = xy + xz + yz = xy + z(x  y‬‬


Slide 21

‫تمام جمعکننده (‪)Full Adder‬‬
‫‪S = x’y’z + x’yz’ + xy’z’ + xyz = x  y  z‬‬

‫)‪C = xy + xz + yz = xy + z(x  y‬‬
‫پیادهسازی دو سطحی‪ 9 ،‬گیت‬
‫پیادهسازی سه سطحی‪ 5 ،‬گیت‬


Slide 22

‫جمعکنندهي دودویی‬
‫‪ ‬جمعکنندهي دودویی یک مدار منطقی است که دو عدد را با هم جمع میکند‪.‬‬
‫‪‬جمعکنندهي دودویی ‪ n‬بیتی را میتوان با ‪ n‬تمام جمعکننده پیادهسازی نمود‪.‬‬
‫‪for example: 1011 + 0011‬‬
‫جمعکنندهي دودویی ‪4‬بیتی با نقلی موجگونه (‪)rippe‬‬

‫‪0‬‬
‫‪1‬‬
‫‪1‬‬

‫‪1‬‬
‫‪1‬‬
‫‪1‬‬

‫‪1‬‬
‫‪0‬‬
‫‪0‬‬

‫‪0‬‬
‫‪1‬‬
‫‪0‬‬

‫‪Ci‬‬
‫‪Ai‬‬
‫‪Bi‬‬

‫‪0‬‬
‫‪1‬‬

‫‪1‬‬
‫‪1‬‬

‫‪1‬‬
‫‪0‬‬

‫‪1‬‬
‫‪0‬‬

‫‪Si‬‬
‫‪Ci+1‬‬

‫توجه‪ :‬برای طراحی به شیوهي کالسیک نیاز به ارزیابی ‪ 29 =512‬ترکیب ورودی است‪.‬‬


Slide 23

‫تکنیک پیشبینی نقلی (‪)Carry Lookahead‬‬
‫‪ ‬مصالحه در طراحی جمعکنندهي دودویی با نقلی موجگونه‪:‬‬
‫مزیت‪ :‬سادگی طراحی (رهایی از جدول درستی با ‪ 512‬ترکیب ورودی)‬

‫ایراد‪:‬‬

‫به واسطهي اتصال موجگونهي رقم نقلی‪ ،‬زمان انتشار سیگنال در این مدار‪،‬‬
‫‪ 3+2+2+2‬برابر زمان انتشار سیگنال در یک گیت است‪.‬‬

‫راهکار‪ -1 :‬استفاده از گیتهای سریعتر‬
‫‪ -2‬افزایش پیچیدگی مدار با هدف کاهش زمان تاخیر انتشار رقم نقلی‬


Slide 24

)Carry Lookahead( ‫تکنیک پیشبینی نقلی‬
Pi = Ai  Bi
Gi = AiBi
Si = Pi  Ci
Ci+1 = Gi + PiCi

C1 = G0 + P0C0
C2 = G1 + P1C1
= G1 + P1G0 + P1P0C0
C3 = G2 + P2C2
= G2 + P2G1 + P2P1G0 + P2 P1P0C0
C4 = …
‫افزایش سرعت در قبال پیچیدگی سخت افزار‬


Slide 25

‫جمعکنندهي ‪-4‬بیتی با تکنیک پیشبینی نقلی‬

‫‪Pi = Ai  Bi‬‬
‫‪Gi = AiBi‬‬
‫‪Si = Pi  Ci‬‬
‫‪Ci+1 = Gi + PiCi‬‬
‫توجه کنید‪:‬‬
‫این مدار ‪ 4‬الیه است‪.‬‬


Slide 26

‫تفریق دودویی‬
‫برای تفریق کردن دو عدد‪،‬‬

‫میتوان عدد اول را با مکمل ِ ‪2‬ی عدد دوم جمع‬
‫کرد‪.‬‬

‫مکمل ‪2‬ی عدد‪،‬‬
‫برای دستیابی به‬
‫ِ‬

‫میتوان تمام بیتهای عدد را مکمل نموده و نتیجه‬
‫را با ‪ 1‬جمع نمود‪.‬‬

‫برای دستیابی به مدار تفریق گر‪،‬‬

‫میتوان از مدار جمع کننده استفاده نموده و عدد او ‌ل‬
‫را با مکمل بیتی (مکمل ‪ )1‬عدد دوم و نقلی ورودی ‪1‬‬
‫جمع نمود‪.‬‬

‫یادآوری‪:‬‬
‫‪ XOR‬را میتوان یک ‪ NOT‬کنترل شده با یک ورودی کنترل در نظر گرفت‪.‬‬


Slide 27

)adder-subtractor( ‫تفریقگر دودویی‬-‫جمعکننده‬
M: Mode (Control Signal)
M=0
M=1

B3 B3'

B2 B2'

B1 B1'

B0 B0'

+1

: 2’s complement
of B

S = sum of A & B
S = subtract of A & B

M=0, Adder
M=1, Subtractor


Slide 28

‫سرریز (‪)overflow‬‬
‫مفهوم سرریز ‪:‬‬

‫شرایطی که دو عدد ‪ n‬رقمی با هم جمع میشوند ولی برای نمایش خروجی به‬
‫‪ n+1‬رقم نیاز است‪.‬‬

‫نعالمت‪:‬‬
‫سرریز در جمعکردن دو عدد بدو ‌‬
‫وجود نقلی انتهایی (‪)end carry‬‬

‫سرریز در جمعکردن دو عدد عالمتدار (مکمل‪-2‬عالمت)‪:‬‬
‫‪ -1‬اگر یکی از اعداد مثبت و دیگری منفی باشد سرریز رخ نمیدهد‪.‬‬
‫‪-2‬اگر هر دو عدد مثبت یا هر دو منفی باشند امکان سرریز وجود دارد‪.‬‬
‫مثال‪:‬‬
‫‪(+65): 01000001‬‬
‫‪+(-65): +10111111‬‬

‫‪(-65): 10111111‬‬
‫‪+(-65): +10111111‬‬

‫‪(+65):‬‬
‫‪01000001‬‬
‫‪+(+65): + 01000001‬‬

‫بنابراین هنگام جمع کردن دو عدد عالمت دار مکمل‪-2‬عالمت‪،‬‬
‫يکسان نبودن نقلی بیت عالمت و نقلی انتهایی نشانگر سرریز است‪.‬‬


Slide 29

‫سرریز‬
‫‪ ‬تشخیص سرریز در جمعکننده‪ -‬تفریقگر دودویی‬


Slide 30

‫جمعکنندهي ‪BCD‬‬
‫جمعکنندهي ‪ BCD‬مداری است که دو رقم دهدهی ‪ BCD‬را به همراه رقم نقلی ورودی با هم جمع‬

‫نموده و حاصلجمع را به صورت ‪ BCD‬فراهم میسازد‪.‬‬

‫ورودیها‪:‬‬

‫دو رقم دهدهی ‪ BCD‬که هرکدام با ‪ 4‬بیت مشخص میگردند و رقم نقلی ورودی‬
‫که یک بیتی است‪.‬‬
‫ورودیهای ‪ BCD‬دارای مقداری در محدودهي ‪ 0000‬تا ‪ 1001‬میباشند‪.‬‬

‫رقم نقلی ورودی میتواند ‪ 0‬یا ‪ 1‬باشد‪.‬‬

‫خروجیها‪:‬‬

‫حاصلجمع دو رقم دهدهی و نقلی ورودی در محدودهي ‪ 0+0+0=0‬تا‬

‫‪ 9+9+1=19‬میباشد که با یک رقم دهدهی ‪ BCD‬و یک رقم نقلی خروجی قابل‬
‫نمایش است‪.‬‬


Slide 31

‫جمعکنندهي ‪BCD‬‬
‫یادآوری روش جمعکردن دو عدد ‪ BCD‬از مبحث نخست درس‪:‬‬
‫برای جمع کردن دو عدد ‪: BCD‬‬
‫‪ -1‬رقمهای ‪ BCD‬متناظر دو عدد را از کمارزشترین رقم با هم جمع باینری میکنیم‪.‬‬

‫‪ -2‬در صورتی که حاصل جمع بزرگتر از ‪ 9‬باشد نتیجه را اصالح میکنیم‪.‬‬
‫(وجود نقلی خروجی یا به دست آمدن یکی از مقادیر نامعتبر ‪) BCD‬‬
‫(تصحیح با جمع کردن نتیجه با ‪ 0110‬انجام میگردد‪).‬‬

‫‪ -3‬همین روند را برای رقمهای ‪ BCD‬بعدی نیز پی میگیریم‪.‬‬


Slide 32

‫جمعکنندهي ‪BCD‬‬
‫مثال‪ :‬جمع ‪ BCD‬زیر را انجام دهید‪.‬‬
‫‪197‬‬
‫‪+ 284‬‬
‫‪---------------------------------‬‬

‫‪0001 1001 0111‬‬
‫‪+ 0010 1000 0100‬‬
‫‪------------------------------------------------------------------------------------‬‬


Slide 33

‫جمعکنندهي ‪BCD‬‬
‫برای طراحی مدار جمعکنندهي ‪ BCD‬چه راهکاری را پیشنهاد میکنید؟‬
‫راهکار نخست‪:‬‬
‫طراحی مدار به شیوهي طراحی کالسیک‬
‫با توجه به تعداد ‪ 4+4+1‬ورودی مدار الزم است جدول درستی با ‪ 29‬حالت‬

‫راهکار دوم‪:‬‬

‫مختلف ورودی تشکیل گردد و ساده سازی ‪...‬‬

‫استفاده از مدار جمعکنندهي باینری و تکمیل آن با مدار تصحیح خروجی‬


Slide 34

‫جمعکنندهي ‪BCD‬‬
‫طراحی بخش تصحیح خروجی‪:‬‬
‫‪ -1‬تعیین ورودی‌ها و خروجی‌ها‬
‫‪ -2‬تشکیل جدول درستی‬
‫ی‬
‫‪ -3‬ساده‌ساز ‌‬
‫‪ -4‬ترسیم نمودار شماتیک‬

‫با ترسیم نقشه‪ ،‬ساده‌سازی را انجام دهید‪.‬‬

‫رهیافتی دیگر‪:‬‬
‫‪C = K + Z4Z8 + Z2Z8‬‬

‫‪Five inputs: K, Z8, Z4, Z2, Z1‬‬
‫‪One Output: C‬‬


Slide 35

‫جمعکنندهي ‪BCD‬‬
‫طراحی بخش تصحیح خروجی‪:‬‬
‫‪ -1‬تعیین ورودی‌ها و خروجی‌ها‬
‫‪ -2‬تشکیل جدول درستی‬
‫‪ -3‬ساده‌سازی‌‬
‫‪ -4‬ترسیم نمودار شماتیک‬

‫شماتیک اجزای بخش جمع‌کننده‌ي چهار بیتی‬
‫را رسم کنید‪.‬‬

‫‪C = K + Z2Z8 + Z4Z8‬‬


Slide 36

‫ضربکنندهي دودویی(‪)Binary Multiplier‬‬
‫مثال‪ :‬یادآوری از مبحث اول درس‪ -‬ضرب دو عدد دودویی چهاربیتی‪:‬‬
‫ضرب دودویی زیر را انجام دهید‪.‬‬

‫‪1011 * 1001‬‬


Slide 37

‫ضربکنندهي دودویی(‪)Binary Multiplier‬‬
‫مثال‪ :‬ضرب دو عدد دودویی چهاربیتی‪:‬‬
‫ضرب دودویی زیر را انجام دهید‪.‬‬
‫‪X1‬‬
‫‪Y1‬‬

‫‪X0‬‬
‫‪Y0‬‬

‫‪X3X2X1X0 * Y3Y2Y1Y0‬‬
‫‪X3‬‬
‫‪Y3‬‬

‫‪X2‬‬
‫‪Y2‬‬

‫‪x‬‬

‫‪--------------------------------------------------------------‬‬

‫‪X0.Y0‬‬

‫‪X1.Y0‬‬
‫‪X0.Y1‬‬

‫‪X2.Y0‬‬
‫‪X1.Y1‬‬
‫‪X0.Y2‬‬

‫‪X3.Y0‬‬
‫‪X2.Y1‬‬
‫‪X1.Y2‬‬
‫‪X0.Y3‬‬

‫‪X3.Y1‬‬
‫‪X2.Y2‬‬
‫‪X1.Y3‬‬

‫‪X3.Y2‬‬
‫‪X2.Y3‬‬

‫‪X3.Y3‬‬

‫‪P2‬‬

‫‪P3‬‬

‫‪P4‬‬

‫‪P5‬‬

‫‪P6‬‬

‫___________________________________________________________________________________________________________________________________________________________________‬

‫‪P0‬‬

‫‪P1‬‬

‫‪P7‬‬

‫برای پیادهسازی این عمل به چه اجزای سختافزاری نیاز است؟‬
‫برای ضربکردن یک عدد ‪ J‬بیتی در یک عدد ‪ K‬بیتی‪ ،‬به ‪ J*K‬گیت ‪ AND‬و )‪ (K-1‬جمعکنندهي ‪J‬‬
‫بیتی نیاز است‪.‬‬


Slide 38

‫ضربکنندهي دودویی(‪)Binary Multiplier‬‬
‫مثال‪ :‬ضرب دو عدد دودویی دو بیتی‪:‬‬


Slide 39

‫ضربکنندهي دودویی(‪)Binary Multiplier‬‬
‫مثال‪ :‬ضرب دودویی چهار بیت در سه بیت‪:‬‬


Slide 40

‫مقایسهکنندهي اندازه (‪)Magnitude Comparator‬‬
‫مقایسه کنندهي اندازه مداری است که دو عدد ‪ n‬بیتی ورودی را مقایسه نموده و بزرگتر‪،‬‬

‫کوچکتر یا مساوی بودن آنها را تعیین میکند‪.‬‬

‫‪Output‬‬
‫)‪(A>B) (A=B) (A‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬

‫‪Input relation‬‬
‫‪A, B‬‬
‫‪A>B‬‬
‫‪A=B‬‬
‫‪A
‫)‪(A>B‬‬
‫)‪(A=B‬‬
‫)‪(A
‫‪A3‬‬
‫‪A2‬‬
‫‪A1‬‬
‫‪A0‬‬
‫‪B3‬‬
‫‪B2‬‬
‫‪B1‬‬
‫‪B0‬‬


Slide 41

‫مقایسهکنندهي اندازه (‪)Magnitude Comparator‬‬
‫مثال‪ :‬اعداد دودویی زیر را مقایسه نموده و بین آنها نمادهای > ‪ < ،‬یا = قرار دهید‪.‬‬
‫‪1000 ?> 0111‬‬
‫‪1011 ‫‪1000 ‫‪1010 =? 1010‬‬
‫مثال‪ :‬اعداد دودویی ‪ 16‬بیتی زیر را مقایسه نموده و بین آنها نماد مناسب قرار دهید‪.‬‬
‫‪1010101010101010 ?> 0011111111111111‬‬
‫‪1010101010101010 ?< 1011111111111111‬‬
‫‪1010101010101010 ?< 1010101010101011‬‬

‫‪1010101010101010 ?= 1010101010101010‬‬


Slide 42

‫مقایسهکنندهي اندازه (‪)Magnitude Comparator‬‬
‫بررس ی مساوی بودن دو عدد‪:‬‬
‫دو عدد با هم مساوی است اگر تمامی بیتهای متناظر دو عدد با هم مساوی باشند‪.‬‬
‫مساوی بودن بیتهای ‪ i‬ام دو عدد‪:‬‬
‫یا هر دو صفر باشند یا هر دو یک باشند‪.‬‬

‫')‪Xi = Ai Bi + Ai' Bi' = (AiBi‬‬
‫مساوی بودن دو عدد‪:‬‬
‫مساوی بودن تمام بیتهای دو عدد‬
‫‪F(A = B) = X3 X2 X1 X0‬‬


Slide 43

‫مقایسهکنندهي اندازه (‪)Magnitude Comparator‬‬
‫بررس ی بزرگتر بودن ‪ A‬از ‪: B‬‬
‫عدد ‪ A‬از عدد ‪ B‬بزرگتر است اگر‪:‬‬
‫پرارزش ترین رقم ‪ A‬بزرگتر از پرارزش ترین رقم ‪ B‬باشد ‪،‬‬
‫یا‬
‫پرارزش ترین رقم دو عدد مساوی باشد ‌و رقم پرارزش بعدی ‪ A‬بزرگتر از رقم متناظر در ‪ B‬باشد ‪،‬‬
‫یا‬
‫دو رقم پرارزش دو عدد مساوی باشد ‌و رقم پرارزش بعدی ‪ A‬بزرگتر از رقم متناظر در ‪ B‬باشد ‪،‬‬
‫یا‬

‫سه رقم پرارزش دو عدد مساوی باشد ‌و رقم پرارزش بعدی ‪ A‬بزرگتر از رقم متناظر در ‪ B‬باشد ‪،‬‬
‫‪........‬‬

‫'‪F(A > B) = A3B3'+ X3A2B2'+ X3X2A1B1'+ X3X2X1A0B0‬‬


Slide 44

‫مقایسهکنندهي اندازه (‪)Magnitude Comparator‬‬
‫بررس ی کوچکتر بودن ‪ A‬از ‪: B‬‬
‫عدد ‪ A‬از عدد ‪ B‬کوچکتر است اگر‪:‬‬
‫پرارزشترین رقم ‪ A‬کوچکتر از پرارزشترین رقم ‪ B‬باشد ‪،‬‬
‫یا‬
‫پرارزشترین رقم دو عدد مساوی باشد ‌و رقم پرارزش بعدی ‪ A‬کوچکتر از رقم متناظر در ‪ B‬باشد ‪،‬‬
‫یا‬
‫دو رقم پرارزش دو عدد مساوی باشد ‌و رقم پرارزش بعدی ‪ A‬کوچکتر از رقم متناظر در ‪ B‬باشد ‪،‬‬
‫یا‬

‫سه رقم پرارزش دو عدد مساوی باشد ‌و رقم پرارزش بعدی ‪ A‬کوچکتر از رقم متناظر در ‪ B‬باشد ‪،‬‬
‫‪........‬‬

‫‪F(A < B) = A3'B3+ X3A2'B2 + X3X2A1'B1 + X3X2X1A0'B0‬‬


Slide 45

)Magnitude Comparator( ‫مقایسهکنندهي اندازه‬

F(A < B) = A3'B3+x3A2'B2
+ x3x2A1'B1 + x3x2x1A0'B0

F(A > B) = A3B3'+x3A2B2'

+ x3x2A1B1' + x3x2x1A0B0'

F(A = B) = x3 x2 x1 x0


Slide 46

‫ُ‬
‫دیکدر (‪)Decoder‬‬
‫ی‬
‫مداری شامل ‪ n‬ورودی و ‪ 2n‬خروجی که در هر زمان‪ ،‬تنها یکی از خروجیها که متناظر با کد باینر ‌‬
‫ورودی است فعال میگردد‪.‬‬

‫مثال‪ :‬دیکدر ‪ 3‬به ‪8‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬

‫‪10‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪01‬‬

‫‪011‬‬
‫‪010‬‬
‫‪010‬‬


Slide 47

‫ُ‬
‫دیکدر (‪)Decoder‬‬
‫خط ‪ D0‬هنگامی فعال میگردد که هر سه ورودی صفر باشند‪.‬‬
‫‪..........‬‬

‫دقت کنید که‪:‬‬
‫خروجیها ‪minterm‬های مختلف ورودیها میباشند‪.‬‬


Slide 48

‫ُ‬
‫دیکدر (‪)Decoder‬‬

‫ُ‬
‫دیکدر با ورودی کنترلی فعالساز (‪:)Enable‬‬

‫اگر ورودی فعالساز غیرفعال باشد هیچ کدام از خروجیها فعال نخواهد بود‪.‬‬
‫اگر ورودی فعالساز فعال گردد خط متناظر با کد دودویی ورودی فعال خواهد شد‪.‬‬

‫ُ‬
‫مثال‪ :‬دیکدر ‪ 2‬به ‪ 4‬با ورودی فعالساز‪:‬‬


Slide 49

‫ُ‬
‫دیکدر (‪)Decoder‬‬

‫ُ‬
‫ر‬
‫و‬
‫دیکدر با و ودی کنترلی فعالساز و خر جی ‪: Active Low‬‬

‫معموال برای مشخص کردن ‪ active low‬بودن ورودیها و خروجیها‪ ،‬از نمادهای خاص ی همراه‬

‫نام متغیر آنها استفاده میگردد‪.‬‬


Slide 50

‫ُ‬
‫دیکدر (‪)Decoder‬‬

‫ُ‬
‫ُ‬
‫ایجاد دیکدر بزرگتر با دیکدرهای دارای فعالساز‪:‬‬

‫ترکیبهای مختلف ورودی به زیرمجموعههایی تقسیم میگردد که به ازای هر زیرمجموعه‪ ،‬یکی از‬
‫ُ‬
‫دیکدرهای کوچک فعال میگردد‪.‬‬

‫ُ‬
‫ُ‬
‫مثال‪ :‬ایجاد دیکدر ‪ 4‬به ‪ 16‬با استفاده از دیکدرهای ‪ 3‬به ‪:8‬‬


Slide 51

‫ُ‬
‫دیکدر (‪)Decoder‬‬
‫ُ‬
‫ُ‬
‫مثال‪ :‬تنها با استفاده از دیکدرهای ‪ 2‬به ‪ 4‬دارای فعالساز‪ ،‬یک دیکدر ‪ 4‬به ‪16‬‬
‫بسازید‪.‬‬


Slide 52

‫ُ‬
‫دیکدر (‪)Decoder‬‬
‫ُ‬
‫پیادهسازی توابع با استفاده از دیکدر‪:‬‬
‫ُ‬
‫از آنجا که خروجیهای دیکدر در واقع ‪minterm‬های متناظر با ورودیها میباشند میتوان از آن‬
‫برای پیادهسازی توابعی که به فرم جمع ‪minterm‬ها توصیف شدهاند استفاده نمود‪.‬‬


Slide 53

‫ُ‬
‫دیکدر (‪)Decoder‬‬
‫ُ‬
‫مثال‪ :‬با استفاده از یک دیکدر ‪ 3‬به ‪ 8‬و دیگر گیتهای مورد نیاز‪ ،‬یک تمام جمع‬
‫کننده پیادهسازی نمایید‪.‬‬

‫)‪S = (1,2,4,7‬‬
‫)‪C = ( 3,5,6,7‬‬


Slide 54

‫ُ‬
‫ِانکدر (‪)Encoder‬‬
‫مداری دارای ‪ 2n‬ورودی و ‪ n‬خروجی که در هر زمان تنها یکی از ورودیها فعال بوده و خروجی نشانگر‬

‫کد دودویی متناظر با ورودی فعال است‪.‬‬
‫ُ‬
‫مثال‪ :‬انکدر ‪ 8‬به ‪3‬‬
‫‪011‬‬
‫‪010‬‬
‫‪001‬‬

‫‪Z = D1 + D3 + D5 + D7‬‬
‫‪Y = D2 + D3 + D6 + D7‬‬
‫‪X = D4 + D5 + D6 +D7‬‬

‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪01‬‬
‫‪10‬‬
‫‪00‬‬

‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬


Slide 55

‫ُ‬
‫اشکاالت ِانکدر معمولی‬
‫ُ‬
‫برای ِانکدر معمولی‪ ،‬فرض بر آن است که در هر زمان‪ ،‬یکی و فقط یکی از ورودیها یک باشد‪.‬‬

‫‪‬‬
‫‪‬‬

‫اگر هیچ کدام از ورودی ها یک نباشد ‪...‬‬

‫اگر دو ورودی (مثال ‪ D5‬و ‪ ) D6‬با هم یک باشد ‪...‬‬

‫برای برطرف کردن این اشکالها چه پیشنهادی دارید؟‬

‫‪Z = D1 + D3 + D5 + D7‬‬
‫‪Y = D2 + D3 + D6 + D7‬‬
‫‪X = D4 + D5 + D6 +D7‬‬


Slide 56

‫انکدر اولویت‬
‫اضافه کردن خروجیای که نشانگر معتبر بودن یا نبودن کد ورودی است‪.‬‬
‫(در صورت غیرفعال بودن تمام ورودی‌ها‪ ،‬نامعتبر بودن ورودی مشخص گردد‪).‬‬

‫اولویتبندی ورودیها‬
‫(اگر چند ورودی با هم فعال شوند ورودی با اولویت باالتر در نظر گرفته شود‪).‬‬


Slide 57

‫انکدر اولویت‬
‫ُ‬
‫با استفاده از نقشهي کارنو‪ ،‬توابع خروجی انکدر اولویت را ساده نموده و شماتیک مداری‌ طرح را‬
‫رسم کنید‪.‬‬

‫خروجی ‪ x‬را وارد نقشه نمایید‪.‬‬

‫‪x = D2 + D3‬‬
‫'‪y = D3 + D1D2‬‬
‫‪V = D0 + D1 + D2 + D3‬‬


Slide 58

‫مالتیپلکسرها (‪)Multiplexer-MUX‬‬
‫مداری که اطالعات دودویی یکی از خطوط ورودی را انتخاب کرده و به خط خروجی انتقال‬
‫می‌دهد‪.‬‬
‫مالتی‌پلکسر دارای ‪ 2n‬ورودی‪ 1 ،‬خروجی و ‪ n‬خط انتخاب است‪ .‬کد باینری خطوط انتخاب تعیین‬

‫می‌کند که کدام خط انتخاب گردد‪.‬‬

‫‪1 Output‬‬

‫‪Multiplexer‬‬
‫‪Combinational‬‬
‫‪Logic Circuit‬‬

‫‪n Selection Lines‬‬

‫‪2n Inputs‬‬


Slide 59

‫مالتیپلکسر ‪ 2‬به ‪1‬‬
‫مثال‪ :‬طراحی مالتیپلکسر ‪ 2‬به ‪:1‬‬
‫مدار مالتیپلکسر ‪ 2‬به ‪ 1‬را طراحی نمایید‪.‬‬


Slide 60

‫مالتیپلکسر ‪ 4‬به ‪1‬‬
‫مثال‪ :‬طراحی مالتیپلکسر ‪ 4‬به ‪:1‬‬
‫الف‪ :‬جدول درستی و جدول عملکرد مالتیپلکسر ‪ 4‬به ‪ 1‬شکل زیر را رسم کنید‪.‬‬
‫ب‪ :‬از دیدگاه کاربرپسند بودن‪ ،‬کدام یک برتر است‪ ،‬جدول درستی یا جدول عملکرد؟‬
‫‪Inputs‬‬

‫ج ‪ :‬مدار مالتی پلکسر ‪ 4‬به ‪ 1‬را طراحی نمایید‪.‬‬

‫‪I0‬‬
‫‪Y‬‬

‫‪MUX‬‬

‫‪I1‬‬
‫‪I2‬‬
‫‪I3‬‬

‫‪S1 S 0‬‬
‫‪select‬‬


Slide 61

‫مالتیپلکسر ‪ 8‬به ‪1‬‬
‫مثال‪ :‬طراحی مالتیپلکسر ‪ 8‬به ‪ 1‬با استفاده از دیکدر ‪ 3‬به ‪:8‬‬
‫ُ‬
‫با استفاده از یک دیکدر ‪ 3‬به ‪ 8‬و دیگر گیتهای مورد نیاز‪ ،‬یک مالتیپلکسر ‪ 8‬به ‪ 1‬طراحی نمایید‪.‬‬


Slide 62

‫ساخت مالتیپلکسرهای بزرگتر با نمونههای کوچکتر‬
‫مثال‪ :‬ساخت مالتیپلکسر ‪ 8‬به ‪ 1‬با استفاده از نمونههای کوچکتر‪:‬‬
‫با استفاده از مالتیپلکسرهای ‪ 4‬به ‪ 1‬و ‪ 2‬به ‪ ،1‬یک مالتیپلکسر ‪ 8‬به ‪ 1‬بسازید‪.‬‬

‫‪Y‬‬

‫‪S2 S1 S0‬‬

‫‪I0‬‬
‫‪I1‬‬
‫‪I2‬‬
‫‪I3‬‬
‫‪I4‬‬
‫‪I5‬‬
‫‪I6‬‬
‫‪I7‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬

‫‪4:1‬‬
‫‪MUX‬‬
‫‪Y‬‬

‫‪2:1‬‬
‫‪MUX‬‬

‫‪S2‬‬

‫‪I0‬‬
‫‪I1‬‬
‫‪I2‬‬
‫‪I3‬‬

‫‪S1 S0‬‬
‫‪4:1‬‬
‫‪MUX‬‬
‫‪S1 S0‬‬

‫‪I4‬‬
‫‪I5‬‬
‫‪I6‬‬
‫‪I7‬‬


Slide 63

‫مالتیپلکسر ‪ 2‬به ‪( 1‬چهارخطی)‬
‫اگر بخواهیم از بین چند گذرگاه یکی را انتخاب کنیم نیاز به مالتیپلکسر گذرگاه داریم‪.‬‬

‫مثال‪ :‬مالتیپلکسر ‪ 2‬به ‪ 1‬چهار خطی‪:‬‬

‫در این طرح‪،‬‬

‫چرا در مسیر خط انتخاب (‪ )S‬از دو گیت ‪ NOT‬استفاده شده است؟‬


Slide 64

‫پیادهسازی تابع با استفاده از مالتیپلکسر‬
‫ برای پیاده سازی یک تابع ‪ n‬متغیره‪ ،‬به یک مالتی پلکسر ‪ 2n-1‬به یک نیاز است‪.‬‬‫‪ -‬تابع را به فرم جدول درستی توصیف میکنیم‪.‬‬

‫ اولین ‪ n-1‬متغیر جدول به خطوط انتخاب مالتی پلکسر متصل میگردند‪.‬‬‫ برای هر ترکیبی از متغیرهای انتخاب‪ ،‬خروجی را به صورت تابعی از آخرین متغیر ارزیابی می کنیم‪.‬‬‫این تابع میتواند ‪ ، 1 ، 0‬متغیر یا مکمل متغیر باشد‪ .‬تابع تعیین شده به ورودی مالتیپلکسر‬
‫متصل می گردد‪.‬‬


Slide 65

‫پیادهسازی تابع با استفاده از مالتیپلکسر‬
‫مثال‪ :‬تابع زیر را با استفاده از مالتیپلکسر پیادهسازی نمایید‪.‬‬
‫‪ -1‬توصیف طرح به فرم جدول درستی‬

‫)‪F(x,y,z)=(1,2,6,7‬‬

‫‪ -2‬انتخاب مالتی‌پلکسر و تعیین خطوط انتخاب آن‬
‫‪ -3‬تعیین ورودی‌های مالتی‌پلکسر به کمک جدول درستی‬
‫‪ -4‬ترسیم مدار‬

‫مالتی پلکسر ‪ 4‬به ‪1‬‬
‫خطوط انتخاب‪ x :‬و ‪y‬‬


Slide 66

‫پیادهسازی تابع با استفاده از مالتیپلکسر‬
‫مثال‪ :‬تابع زیر را با استفاده از مالتیپلکسر پیادهسازی نمایید‪.‬‬
‫‪ -1‬توصیف طرح به فرم جدول درستی‬

‫)‪F(A,B,C,D)=(1,3,4,11,12,13,14,15‬‬

‫‪ -2‬انتخاب مالتی‌پلکسر و تعیین خطوط انتخاب آن‬
‫‪ -3‬تعیین ورودی‌های مالتی‌پلکسر به کمک جدول درستی‬
‫‪ -4‬ترسیم مدار‬

‫مالتی پلکسر ‪ 8‬به ‪1‬‬

‫خطوط انتخاب‪ B ، A :‬و ‪C‬‬


Slide 67

‫دیمالتیپلکسرها (‪)Demultiplexer‬‬
‫مداری که اطالعات دودویی خط ورودی را به یکی از خطوط خروجی انتقال میدهد‪.‬‬
‫دیمالتیپلکسر دارای یک ورودی‪ 2n ،‬خروجی و ‪ n‬خط انتخاب است‪ .‬کد باینری خطوط انتخاب‬

‫تعیین میکند که ورودی به کدام خط خروجی انتقال یابد‪.‬‬

‫‪2n Outputs‬‬

‫ُ‬
‫معموال از دیکدر ‪ n‬به‬

‫‪2n‬‬

‫خط دارای فعالساز برای‬

‫پیادهسازی دیمالتیپلکسر ‪ 1‬به ‪ 2n‬خط استفاده می‬
‫گردد‪.‬‬

‫‪De-Multiplexer‬‬
‫‪Combinational‬‬
‫‪Logic Circuit‬‬

‫‪n Selection Lines‬‬

‫‪1 Input‬‬


Slide 68

‫دیمالتیپلکسرها (‪)Demultiplexer‬‬
‫ُ‬
‫مثال‪ :‬پیادهسازی دیمالتیپلکسر با استفاده از دیکدر‪:‬‬
‫ُ‬
‫با استفاده از یک دیکدر ‪ 3‬به ‪ 8‬دارای پایهي فعالساز‪ ،‬یک دیمالتیپلکسر ‪ 1‬به ‪ 8‬پیادهسازی‬
‫نمایید‪.‬‬
‫ُ‬
‫بدین منظور الزم است از ورودیهای دیکدر به عنوان خطوط انتخاب دیمالتیپلکسر‪ ،‬و از خط‬
‫فعالساز آن به عنوان ورودی دیمالتیپلکسر استفاده گردد‪.‬‬


Slide 69

‫ دیمالتیپلکسر‬-‫مثال کاربردی مالتیپلکسر‬
:‫ به اشتراک گذاشتن یک کانال ارتباطی بین چندین دستگاه‬:‫مثال‬

MUX

MUX

Communication Channel
Communication Channel

DEMUX
DEMUX

Select
Source

Select
Destination

Select
Source

Select
Destination

Destination
Destination

Source Source

.‫در هر زمان تنها یکی از مبداها و یکی از مقصدها به کانال ارتباطی دسترس ی دارند‬


Slide 70

‫گیت سهحالته (‪)tri-state gate‬‬
‫گیت سهحالته به گیتی گفته میشود که خروجی آن عالوه بر وضعیتهای ‪ low‬و ‪ ، high‬می‬

‫تواند در وضعیت امپدانس باال (‪ )high-impedance‬نیز قرار گیرد‪.‬‬
‫مثال‪ :‬بافر سهحالته‬


Slide 71

‫گیت سهحالته (‪)tri-state gate‬‬
‫در گیتهای معمولی نمیتوان خروجی گیتها را به طور مستقیم به هم متصل نمود‪.‬‬

‫ولی در گیتهای سهحالته‪ ،‬اگر جز یکی از گیتها‪ ،‬خروجی بقیه در وضعیت امپدانس‪ -‬با ‌ال باشد‬
‫میتوان خروجی گیتها را به هم متصل نمود‪.‬‬
‫مثال‪ :‬پیادهسازی مالتیپلکسر ‪ 2‬به ‪ 1‬با استفاده از گیتهای بافر سهحالته‬


Slide 72

‫گیت سهحالته (‪)tri-state gate‬‬
‫مثال‪ :‬پیادهسازی مالتیپلکسر توسط گیتهای سهحالته‪:‬‬
‫با استفاده از دیکدر ‪ 2‬به ‪ 4‬و گیتهای بافر سهحالته‪ ،‬یک مالتیپلکسر ‪ 4‬به ‪ 1‬بسازید‪.‬‬


Slide 73