You are on page 1of 37

‫مدار منطقی‬

‫شکوه احمدی‬
‫دانشگاه شهید چمران اهواز‬
‫گروه کامپیوتر‬
‫بهار ‪99‬‬
‫منطق ترکیبی‬
‫• مدارهای دیجیتال‬
‫• ترکیبی‬
‫• ترتیبی‬
‫مدارهای منطقی‬

‫• روش طراحی مدارهای ترکیبی‬


‫• طراحی براساس صورت مساله آغاز و در نهایت به یک نمودار منطقی منتهی می‬
‫شود‪:‬‬
‫‪ .1‬بیان مساله‬
‫‪ .2‬تعیین تعداد متغیرهای ورودی و خروجی مورد نیاز‬
‫‪ .3‬اختصاص نمادهای حرفی به ورودی ها و خروجی ها‬
‫‪ .4‬رسم جدول صحت نمایان گر ارتباط بین ورودی ها و خروجی ها‬
‫‪ .5‬تولید تابع باینری ساده شده برای هر خروجی‬
‫‪ .6‬رسم نمودار منطقی‬

‫‪2‬‬
‫افزاینده باینری موازی (‪binary parallel‬‬
‫‪)adder‬‬
‫• ‪ ‬دو عدد ‪ n‬بیتی را با هم جمع می کند‬
‫‪+‬‬
‫مدارهای منطقی‬

‫‪3‬‬
binary parallel( ‫افزاینده باینری موازی‬
)adder
Carry look ahead generator •
‫مدارهای منطقی‬

4
‫مبدل کد ‪ BCD‬به افزونی‪3-‬‬
‫بدون استفاده‬

‫‪ ‬‬ ‫‪Cs‬‬
‫‪BCD‬‬
‫مدارهای منطقی‬

‫‪Input‬‬
‫‪ ‬‬
‫‪FA‬‬ ‫افزونی ‪3-‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪C1‬‬

‫‪0‬‬

‫‪5‬‬
‫افزاینده دهدهی (‪ )BCD‬با استفاده از‬
‫افزاینده باینری‬
‫مدارهای منطقی‬

‫‪6‬‬
‫افزاینده دهدهی (‪ )BCD‬با استفاده از‬
‫افزاینده باینری‬
‫مدارهای منطقی‬

‫‪7‬‬
‫مقایسه کننده ‪magnitude comparator‬‬
‫•‪ ‬‬
‫مدارهای منطقی‬

‫‪8‬‬
‫مقایسه کننده ‪magnitude comparator‬‬
‫مدارهای منطقی‬

‫‪9‬‬
‫کشف رمز کننده (‪)decoder‬‬
‫یک کشف رمز کننده (دکدر) مداری ترکیبی است که اطالعات‬ ‫•‪ ‬‬
‫ورودی را از ‪ n‬خط ورودی دریافت و به حداکثر خط خروجی‬
‫منحصر به فردتبدیل می کند‪ .‬در واقع یک دکدر مینترم های مربوط‬
‫مدارهای منطقی‬

‫به متغیر های ورودی را در خروجی خود ایجاد می کند‪.‬‬

‫از بین خروجی های یک دیکدر در آن واحد فقط یک خروجی فعال‬


‫است (خروجی نشان دهنده مینترم ورودی)‪.‬‬

‫‪10‬‬
‫کشف رمز کننده (‪)decoder‬‬
‫مدارهای منطقی‬

‫‪11‬‬
‫کشف رمز کننده (‪)decoder‬‬
‫مدارهای منطقی‬

‫‪0‬‬

‫‪12‬‬
‫اجرای منطقی‬
‫با گیت های منطقی‬ ‫‪.1‬‬
‫با گیت های ‪NAND‬‬ ‫‪.2‬‬
‫مدارهای منطقی‬

‫با گیت های ‪NOR‬‬ ‫‪.3‬‬


‫با استفاده از یک دیکدر و تعدادی گیت ‪( OR‬جمع مینترم ها‪:‬‬ ‫‪.4‬‬
‫هر تابع را می توان به صورت جمع مینترم ها نوشت)‬

‫‪13‬‬
‫پیاده سازی ‪FullAdder‬‬
‫مدارهای منطقی‬

‫‪14‬‬
)demultiplexer( ‫مقسم‬
‫مدارهای منطقی‬

0 ‫فعال صفر‬
Active_low

1*4 D0
D0 ‫ورودی‬E D1
Demultipl
A 2*4 D1 D2
‫ورودی‬ Dec
exer
B D2 D3
D3
A B
Enable(E) Select

15
‫مقسم (‪)demultiplexer‬‬
‫•• ‪Active_low ‬‬
‫• ‪Active_high‬‬
‫مدارهای منطقی‬

‫‪ ‬دی مولتی پلکسر مداری است که اطالعات را از یک خط دریافت کرده و آن‬


‫را به یکی از خط خروجی ممکن هدایت می کند‪.‬‬
‫‪‬هر ‪ demultiplexer‬حتما ‪ n‬خط ‪ select‬دارد‪.‬‬
‫‪ ‬یک دیکدر با ورودی فعالساز می تواند به عنوان یک دی مولتی پلکسر عمل‬
‫کند‪.‬‬
‫‪ ‬چون عمل دیکدر و دی مولتی پلکسر با استفاده از یک مدار حاصل می‬
‫شودیک دیکدر با ورودی فعالساز را دیکدر‪/‬دی مولتی پلکسر هم می خوانند‪.‬‬

‫‪16‬‬
‫سوال‬
‫• با استفاده از دو ‪ decoder 3*8‬یک ‪ decoder 4*16‬بسازید‪.‬‬
‫مدارهای منطقی‬

‫‪17‬‬
‫رمز کننده (‪)Encoder‬‬
‫• ‪ ‬عکس عمل ‪ Decoder‬را انجام می دهد‪.‬‬
‫• یک انکدر دارای (یا کم تر) خط ورودی و ‪ n‬خط خروجی است‪.‬‬
‫خطوط خروجی کد دودویی مربوط به مقدار دودویی ورودی را‬
‫مدارهای منطقی‬

‫تولید می کنند‪.‬‬
‫• خروجی‪: :‬ورودی‬

‫‪18‬‬
‫‪Priority encoder‬‬
‫• شماره های بزرگتر‬
‫• شماره های کوچکتر‬
‫مدارهای منطقی‬

‫‪‬اجازه می دهد در آن واحد بیش از یک ورودی یک باشد‪ .‬در عین‬


‫حال باید بدانیم از چه نوع اولویتی استفاده می کنیم‪.‬‬

‫‪19‬‬
‫متمرکز کننده (‪)Multiplexer‬‬
‫•‪ ‬‬
‫• دارای ‪ n‬خط انتخاب است که تعیین می کند کدام ورودی به‬
‫خروجی برود‪.‬‬
‫مدارهای منطقی‬

‫‪I0‬‬
‫‪I1‬‬ ‫‪4*1‬‬ ‫‪y‬‬
‫‪I2 multiplexer‬‬
‫‪I3‬‬

‫‪A‬‬ ‫‪B‬‬
‫‪Select‬‬

‫‪20‬‬
‫رسم ‪( Bus‬گذرگاه مشترک) با استفاده از‬
‫‪multiplexer‬‬
‫ورودی‬ ‫‪X‬‬
‫انتخاب‬ ‫• ‪ ‬فقط یک خط )‪ ،select ، (x‬راداریم زیرا ‪:‬‬
‫شده‬

‫‪A‬‬ ‫‪0‬‬
‫• اگر ‪ x = 0‬هر مالتی پلکسر مقدار خط صفر خود‬
‫مدارهای منطقی‬

‫‪B‬‬ ‫‪1‬‬ ‫(در اینجا ‪ )A‬را عبور می دهد و اگر یک مقدار‬


‫خط یک (‪)B‬‬
‫‪B3‬‬ ‫‪A3‬‬ ‫‪B2‬‬ ‫‪A2‬‬ ‫‪B1‬‬ ‫‪A1‬‬ ‫‪B0‬‬ ‫‪A0‬‬

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


‫‪x‬‬ ‫‪2*1‬‬ ‫‪2*1‬‬ ‫‪2*1‬‬ ‫‪2*1‬‬
‫‪mux‬‬ ‫‪mux‬‬ ‫‪mux‬‬ ‫‪mux‬‬

‫‪21‬‬
‫اجرای منطقی‬
‫با گیت های منطقی‬ ‫‪.1‬‬
‫با گیت های ‪NAND‬‬ ‫‪.2‬‬
‫مدارهای منطقی‬

‫با گیت های ‪NOR‬‬ ‫‪.3‬‬


‫با استفاده از یک دیکدر و تعدادی گیت ‪( OR‬جمع مینترم ها‪:‬‬ ‫‪.4‬‬
‫مینترم ها‪I0‬نوشت)‬
‫‪4*1‬‬
‫هر تابع را می توان به صورت جمع‬
‫‪I1‬‬ ‫‪y‬‬
‫‪I2 multiplexer‬‬ ‫با استفاده از ‪multiplexer‬‬ ‫‪.5‬‬
‫‪I3‬‬

‫‪A‬‬ ‫‪B‬‬
‫‪Select‬‬

‫‪22‬‬
‫مثال‪ :‬پیاده سازی با استفاده از مالتی پلکسر‬
‫‪• e.g.:‬‬ ‫‪I3‬‬ ‫‪I2‬‬ ‫‪I1‬‬ ‫‪I0‬‬ ‫•‪ ‬‬
‫‪:‬حل‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪’A‬‬
‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪A‬‬
‫>= ‪ : n+1‬اگر‬
‫مدارهای منطقی‬

‫‪’A‬‬ ‫‪A‬‬ ‫‪1‬‬ ‫‪0‬‬


‫‪f‬‬ ‫‪ABC‬‬ ‫مینترم‬
‫‪0‬‬ ‫‪000‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪001‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪I0‬‬
‫‪1‬‬ ‫‪I1‬‬ ‫‪4*1‬‬ ‫‪f‬‬
‫‪0‬‬ ‫‪010‬‬ ‫‪2‬‬
‫‪A‬‬ ‫‪I2 multiplexer‬‬
‫‪1‬‬ ‫‪011‬‬ ‫‪3‬‬ ‫’‪A‬‬ ‫‪I3‬‬
‫‪0‬‬ ‫‪100‬‬ ‫‪4‬‬
‫‪1‬‬ ‫‪101‬‬ ‫‪5‬‬ ‫‪B C‬‬
‫‪1‬‬ ‫‪110‬‬ ‫‪6‬‬ ‫‪Select‬‬
‫‪0‬‬ ‫‪111‬‬ ‫‪7‬‬
‫‪23‬‬
‫مثال‪ :‬پیاده سازی با استفاده از مالتی پلکسر‬
‫‪• e.g.:‬‬ ‫‪I3‬‬ ‫‪I2‬‬ ‫‪I1‬‬ ‫‪I0‬‬ ‫•‪ ‬‬
‫‪:‬حل‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪’B‬‬
‫‪7‬‬ ‫‪6‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪B‬‬
‫>= ‪ : n+1‬اگر‬
‫مدارهای منطقی‬

‫‪’B‬‬ ‫‪B‬‬ ‫‪1‬‬ ‫‪0‬‬


‫‪f‬‬ ‫‪ABC‬‬ ‫مینترم‬
‫‪0‬‬ ‫‪000‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪001‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪I0‬‬
‫‪1‬‬ ‫‪I1‬‬ ‫‪4*1‬‬ ‫‪f‬‬
‫‪0‬‬ ‫‪010‬‬ ‫‪2‬‬ ‫‪B‬‬ ‫‪I2 multiplexer‬‬
‫‪1‬‬ ‫‪011‬‬ ‫‪3‬‬ ‫’‪B‬‬ ‫‪I3‬‬
‫‪0‬‬ ‫‪100‬‬ ‫‪4‬‬
‫‪1‬‬ ‫‪101‬‬ ‫‪5‬‬ ‫‪A C‬‬
‫‪1‬‬ ‫‪110‬‬ ‫‪6‬‬ ‫‪Select‬‬
‫‪0‬‬ ‫‪111‬‬ ‫‪7‬‬
‫‪24‬‬
‫مثال‪ :‬پیاده سازی با استفاده از مالتی پلکسر‬
‫‪• e.g.:‬‬ ‫‪I3‬‬ ‫‪I2‬‬ ‫‪I1‬‬ ‫‪I0‬‬ ‫•‪ ‬‬
‫‪:‬حل‬ ‫‪6‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫‪’C‬‬
‫‪7‬‬ ‫‪5‬‬ ‫‪3‬‬ ‫‪1‬‬ ‫‪C‬‬
‫>= ‪ : n+1‬اگر‬
‫مدارهای منطقی‬

‫‪’C‬‬ ‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬


‫‪f‬‬ ‫‪ABC‬‬ ‫مینترم‬
‫‪0‬‬ ‫‪000‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪001‬‬ ‫‪1‬‬ ‫‪C‬‬ ‫‪I0‬‬
‫‪C‬‬ ‫‪I1‬‬ ‫‪4*1‬‬ ‫‪f‬‬
‫‪0‬‬ ‫‪010‬‬ ‫‪2‬‬ ‫‪C‬‬ ‫‪I2 multiplexer‬‬
‫‪1‬‬ ‫‪011‬‬ ‫‪3‬‬ ‫’‪C‬‬ ‫‪I3‬‬
‫‪0‬‬ ‫‪100‬‬ ‫‪4‬‬
‫‪1‬‬ ‫‪101‬‬ ‫‪5‬‬ ‫‪A B‬‬
‫‪1‬‬ ‫‪110‬‬ ‫‪6‬‬ ‫‪Select‬‬
‫‪0‬‬ ‫‪111‬‬ ‫‪7‬‬
‫‪25‬‬
‫مثال‬
.‫ پیاده سازی کنید‬multiplexer ‫تابع زیر را با استفاده از‬  •

1 I0
‫مدارهای منطقی‬

1 I1
I7 I6 I5 I4 I3 I2 I1 I0 0 I2
7 6 5 4 3 2 1 0 ’A A’ I3 8*1
A’ I4 multiplexer
15 14 13 12 11 10 9 8 A 0 I5 f
A 0 0 ’A ’A 0 1 1 0 I6
A I7

B C D
Select

26
‫حافظه فقط خواندنی (‪)ROM‬‬
‫• ‪PROM‬‬
‫‪0000000000‬‬
‫‪0000000001‬‬
‫• ‪EPROM‬‬
‫مدارهای منطقی‬

‫‪0000000010‬‬
‫‪0000000011‬‬
‫‪ ‬‬
‫‪ROM‬‬

‫‪1111111111‬‬

‫‪1k Rom = 1024 = 2^10‬‬

‫‪27‬‬
‫مدارهای منطقی‬

‫‪28‬‬
‫‪ROM 32*8‬‬
‫مدارهای منطقی‬

‫‪29‬‬
‫مثال‬
‫• ‪ ‬مداری ترکیبی با دو ورودی و دو خروجی داریم‪ ،‬این مدار ترکیبی‬
‫را با ‪ ROM‬بسازید‪.‬‬
‫مدارهای منطقی‬

‫‪0‬‬
‫‪X‬‬
‫‪Dec‬‬ ‫‪1‬‬ ‫‪X‬‬
‫‪2*4‬‬ ‫‪2‬‬ ‫‪X‬‬
‫‪f2‬‬ ‫‪f1‬‬ ‫‪A0 A1‬‬ ‫‪XX‬‬
‫‪00‬‬ ‫‪3‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪01‬‬ ‫‪XXXX‬‬ ‫‪X‬‬
‫‪X‬‬
‫‪01‬‬ ‫‪10‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪XXXX‬‬ ‫‪X‬‬
‫‪10‬‬ ‫‪11‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪11‬‬ ‫‪10‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪f1‬‬ ‫‪f2‬‬

‫‪30‬‬
‫مثال‬
‫• با به کارگیری یک ‪ ROM‬مداری ترکیبی طراحی کنید که یک‬
‫عدد سه بیتی را به عنوان ورودی دریافت و در خروجی مربع عدد‬
‫ورودی را تولید کند‪.‬‬
‫مدارهای منطقی‬

‫‪31‬‬
‫مثال‪-‬ادامه پاسخ‬
‫مدارهای منطقی‬

‫‪32‬‬
‫سوال امتیازی‬
‫• با استفاده از ‪ multiplexer‬مداری ترکیبی طراحی کنید که یک‬
‫عدد سه بیتی را به عنوان ورودی دریافت و در خروجی مربع عدد‬
‫ورودی را تولید کند‪.‬‬
‫مدارهای منطقی‬

‫مهلت ارسال (شنبه قبل از شروع کالس(‪ 6‬اردیبهشت ماه ساعت‬


‫‪))18‬‬

‫‪33‬‬
‫پاسخ‬
:B2 •
I3 I2 I1 I0
3 2 1 0 ’A2
‫مدارهای منطقی‬

7 6 5 4 A2
0 1 0 0

0 I0
0 I1 4*1 B2
1 I2 multiplexer
0 I3

A1 A0
Select

34
‫پاسخ‬
:B3 •
I3 I2 I1 I0
5 4 1 0 ’A1
‫مدارهای منطقی‬

7 6 3 2 A1
’A1 0 A1 0

0 I0
A1 I1 4*1 B3
0 I2 multiplexer
A1’ I3

A2 A0
Select

35
‫پاسخ‬
:B4 •
I3 I2 I1 I0
6 4 2 0 ’A0
‫مدارهای منطقی‬

7 5 3 1 A0
A0 1 0 0

0 I0
0 I1 4*1 B4
1 I2 multiplexer
A0 I3

A2 A1
Select

36
‫پاسخ‬
:B5 •
I3 I2 I1 I0
3 2 1 0 ’A2
‫مدارهای منطقی‬

7 6 5 4 A2
A2 A2 0 0

0 I0
0 I1 4*1 B5
A2 I2 multiplexer
A2 I3

A1 A0
Select

37

You might also like