Transcript فصل دوم
به نام یگانه مهندس هستی
مدار منطقی
مهدی قدیری
[email protected]
[email protected]
logic circuit 5
1
فصل چهارم
مدارهای ترکیبی
2
logic circuit 5
مدارهای ترکیبی
1. Combinational
LOGIC CIRCUITS:
2. Sequential
مدار های منطقی ترکیبی )(circuits without a memory
در این مدار ها مقدار خروجی فقط به مقدار فعلی ورودیها بستگی دارد.
در این مدارها زمان اعمال ورودی تاثیری در مقدار خروجی ندارد.
مدارهای منطقی ترتیبی )(circuits with memory
در این مدارها مقدار خروجی به مقدار فعلی ورودیها و حالت مدار بستگی
دارد.
این مدارها از گیتهای منطقی و عناصر ذخیره اطالعات (حافظه) استفاده می
کنند و در فصلهای بعد مورد بررسی قرار می گیرند.
3
logic circuit 5
مدارهای ترکیبی
:مهمترین مدارهای ترکیبی
Available in IC’s as MSI and used as
standard cells in complex VLSI (ASIC)
logic circuit 5
جمع کنندهAdders
تفریق کنندهSubtractors
مقایسه کنندهComparators
دیکدرDecoders
انکدرEncoders
تسهیم کنندهMultiplexers
Demultiplexers
4
آنالیز منطق ترکیبی
گام اول:
مدار را از سمت ورودی ها به سمت خروجی ها ساده می کنیم و خروجی های
مدار را بدست می آوریم.
گام دوم:
خروجی را به کمک جدول خواص یا جدول کارنو به حاصل جمع مینترم ها
تبدیل می کنیم.
گام سوم:
جدول درستی مدار را رسم می کنیم و بجای مینترم ها یک( )1جایگزین
می کنیم.
5
logic circuit 5
آنالیز منطق ترکیبی
ABC
T3 T2
A B C
F2 'T1
AB AC BC
logic circuit 5
6
آنالیز منطق ترکیبی
F2 AB AC BC
T1 ( A B C )
F1 T3 T2 F2 'T1 ABC
( AB AC BC)'( A B C ) ABC
( A' B' )( A'C ' )(B'C ' )( A B C ) ABC
( A' B' C ' )( AB' AC' BC' B' C ) ABC
A' BC ' A' B' C AB ' C ' ABC
logic circuit 5
7
آنالیز منطق ترکیبی
OUTPUTS
INPUTS
A
B
C
F1
F2
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
logic circuit 5
8
طراحی مدارات ترکیبی
گام اول:
از روی خصوصیات و تعریف مسئله تعداد ورودیها و خروجیها را مشخص کنید.
گام دوم:
جدول درستی را تشکیل دهید و ارتباط ورودیها و خروجیها را مشخص کنید.
گام سوم:
با استفاده از جدول کارنو مدار را ساده کنید.
گام چهارم:
دیاگرام منطقی مدار را بکشید.
گام پنجم ( اختیاری):
درستی طراحی خود را تحقیق کنید.
9
logic circuit 5
طراحی مدارات ترکیبی
مثال :مداری با سه ورودی و یک خروجی طراحی کنید بطوریکه مقدار خروجی فقط
هنگامیکه مقدار عددی معادل ورودیها کمتر از سه باشد ،با 1برابر باشد.
y
10
گام سوم
' F x' y' x' z
11
1
z
گام چهارم:
01
yz
00
1
1
F
z
y
x
1
0
0
0
0
1
1
0
0
x 1
1
0
1
0
0
1
1
0
0
0
0
1
x
0
1
0
1
y
0
0
1
1
0
1
1
1
گام دوم
F
z
10
logic circuit 5
گام اول
جمع کننده دودویی – نیم جمع کننده
هدف :محاسبه جمع جبری A+B
:Sنتیجه حاصلجمع)(sum
: Cرقم نقلی)(carry
S
C
11
H.A.
x
y
logic circuit 5
S
C
B
A
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
(full adder) جمع کننده کامل
Inputs
INPUTS
A B C
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Outputs
OUTPUTS
S
C
0
1
1
0
1
0
0
1
A+B+C محاسبه جمع جبری:هدف
(sum) نتیجه حاصلجمع:S
(carry) رقم نقلی: C
0
0
0
1
0
1
1
1
logic circuit 5
12
(full adder) جمع کننده کامل
C
logic circuit 5
13
SOP جمع کننده کامل به فرم
x
y
z
logic circuit 5
F.A.
S
C
14
پیاده سازی جمع کننده کامل با دو نیم جمع کننده
S z ( x y)
z ' ( xy' x' y ) z ( xy' x' y )'
x
y
H.A.
z ' ( xy' x' y ) z[( x' y )( x y ' )]
z ' (Sxy' x' y ) z ( x' y 'x xy)
H.A.
y
C x'yz' xyz x ' y ' z
xy'z'
logic circuit 5
S
C
15
Full-adderچهار بیتی
هدف :محاسبه جمع جبری
A3A2A1A0+B3B2B1B0=C4S3S2S1S0
:Sنتیجه حاصلجمع)(sum
: Cرقم نقلی)(carry
:C0رقم نقلی از طبقه قبل
:C4رقم نقلی به طبقه بعد
16
logic circuit 5
i
0
1
2
3
Ci
0
1
1
0
Ai
1
1
0
1
Bi
1
1
0
0
Si
0
1
1
1
Ci+1
1
1
0
0
تفریق کننده دودویی
با استفاده از تکنیک مکمل گیری می توان عمل تفریق را انجام داد.
محاسبه مکمل :1
تمام ارقام بعد از اولین 1از سمت چپ را معکوس می کنیم.
روش دیگر محاسبه مکمل :2
17
تمام ارقام را معکوس می کنیم یعنی 0ها را به 1و 1ها را به 0تبدیل می
کنیم
محاسبه مکمل :2
محاسبه مکمل 2مفروق منه
انجام جمع باینری
محاسبه مکمل 1
جمع با 1
logic circuit 5
تفریق کننده دودویی – نیم تفریق کننده
هدف :محاسبه تفریق جبری x-y=x+y’+1
:Dنتیجه اختالف)(Difference
:Bرقم قرض)(Borrow
D
x
H.S.
y
B
D
B
y
x
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
x
D
y
B
18
logic circuit 5
(Full Subtractor) تفریق کننده کامل
Inputs
INPUTS
A B C
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Outputs
OUTPUTS
B
D
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
A-B-C محاسبه تفریق جبری:هدف
(Difference) نتیجه اختالف:D
(Borrow) رقم قرض:B
0-0-0=0
0-0-1=2+0-0-1=1
0-1-0=2+0-1-0=1
0-1-1=2+0-1-1=0
1-0-0=1
1-0-1=0
1-1-0=0
1-1-1=2+1-1-1=1
logic circuit 5
19
(Full Subtractor) تفریق کننده کامل
x
y
z
F.S.
D
B
logic circuit 5
20
جمع و تفریق کننده با ورودی کنترل
هدف :تفریق کننده 4بیتی
ورودی Mکار مدار را کنترل می کند.
چنانچه مقدار M=0باشد مدار جمع کننده شود.
چنانچه مقدار M=1باشد مدار تفریق کننده شود.
نکته:
A
21
0
A
logic circuit 5
’A
1
A
جمع و تفریق کننده با ورودی کنترل
C0مقدار 1را در اولین جمع شرکت داده و نتیجه تفریق را اصالح می نماید.
چنانچه مقدار M=0باشد مدار جمع کننده شود.
چنانچه مقدار M=1باشد مدار تفریق کننده شود.
22
logic circuit 5
سرریز
سرریز وقتی اتفاق می افتد که دو عدد nبیتی را جمع (تفریق) کنیم و
نتیجه به n+1بیت نیاز داشته باشد.
23
اگر v=0یعنی سرریز نداریم و نتیجه درست است.
اگر v=1یعنی سرریز داریم و بیت n+1بیت عالمت است.
اگر C4=1باشد آنگاه A≥B
اگر C4=0باشد آنگاه A<B
logic circuit 5
ضرب دودویی
ضرب باینری را می شود مثل ضرب اعداد دهدهی انجام داد.
برای ضرب مضروب Bدر ، Aاز کم ارزش ترین بیت مضروب شروع کنید و آنرا در A
ضرب کنید .ضربهای ارقام بعدی Bرا یک واحد به چپ شیفت دهید و اعداد بدست
آمده را با هم جمع کنید.
24
logic circuit 5
مقایسه کننده
دو عدد Aو Bرا با هم مقایسه کرده و سه خروجی زیر را تولید می کند.
A>B
A=B
A<B
A A3 A2 A1 A0
B B3 B2 B1B0
فرض کنید هر کدام چهار بیت داشته باشند:
for i 0,1, 2, 3
' xi Ai Bi Ai ' Bi
xi 1 if A B 0 or A B 1
25
اگر تمام
ها “ ”1باشند Aو Bبا هم برابر هستند.
AND operationxi
logic circuit 5
( A B) x3 x2 x1 x0
مقایسه کننده
برای اینکه بفهمیم کدامیک بزرگتر است ،از با ارزشترین بیت شروع می کنیم
و با هم مقایسه می کنیم .هر کدام بزرگتر بود عدد مربوطه بزرگتر است.
اگر مساوی بودند ،بیت با ارزش بعدی را امتحان می کنیم.
'( A B) A3 B3' x3 A2 B2' x3 x2 A1B1' x3 x2 x1 A0 B0
( A B) A3' B3 x3 A2' B2 x3 x2 A1' B1 x3 x2 x1 A0' B0
مثال:
A 1010and B 0101 ( A B) 1
A 0101and B 1010 ( A B) 1
26
logic circuit 5
بیتی4 مقایسه کننده
x
0
0
1
1
a3
a2
a1
a0
b3
b2
b1
b0
4 bit binary ADDER
1
s3
s2
s1
s0
y
0
1
0
1
1
0
0
0
A=B
A>B
C4
A<B
logic circuit 5
27
دیکدر ()Decoder
دیکدر یک مدار ترکیبی است که اطالعات باینری حاصل از n
ورودی را به 2nخروجی مجزا تبدیل می کند.
کاربردها:
حافظه اصلی میکروپروسسور :انتخاب بانکهای مختلف حافظه
ورودی و خروجی میکروپروسسور :انتخاب دستگاههای مختلف
دیکود کردن دستورات میکروپروسسور :انتخاب واحدهای مختلف
حافظه :دیکد کردن آدرسهای حافظه
28
logic circuit 5
b
0
1
0
1
m0 m1 m2 m3
1
0
0 0
0
1
0 0
0
0
1 0
0
0
0 1
b
a
0
1
2
3
m0
m1
m2
m3
. دیکودر فوق تولید کننده مینترم است:نکته
z
y
logic circuit 5
0
1
0
1
Decoder 2×4
a
0
0
1
1
Decoder 2×4
4 به2 دیکدر
0
1
2
3
D0
D1
D2
D3
29
دیکدر 2به 4
تاکنون تمام ورودی ها و خروجی هایی که در مدارها داشتیم اصطالحا « Active
»Highیا « منطق مثبت » می باشند.
ورودی و خروجی ها می توانند اصطالحا « »Active Lowیا « منطق منفی» باشند
یعنی چنانچه مقدار صفر داشته باشند ،فعال و مقدار یک ،یعنی غیر فعال هستند.
نکته :دیکودر با خروجی های Active Lowتولید کننده ماکسترم است.
30
Decoder 2×4
m0
m1
m2
m3
0
1
2
3
0
1
b
a
m2 m3
1
1
1
1
0
1
1
0
logic circuit 5
m1
1
0
1
1
m0
0
1
1
1
b
0
1
0
1
a
0
0
1
1
8 به3 دیکدر
logic circuit 5
31
جدول درستی دیکدر 3به 8
D7
0
0
0
0
0
0
0
1
32
D6
0
0
0
0
0
0
1
0
D5
0
0
0
0
0
1
0
0
Outputs
D3
D4
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
D2
0
0
1
0
0
0
0
0
D1
0
1
0
0
0
0
0
0
D0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
Binary Inputs
0
0
1
1
0
0
1
1
اگر مقدار ورودی دیکدر با مینترم miمعادل باشد ،خروجی i
ام تنها خروجی است که با بقیه خروجیها تفاوت دارد.
logic circuit 5
0
0
0
0
1
1
1
1
دیکدر 2به 4با ورودی توانا ساز
وقتی که E=0باشد دیکدر فعال خواهد شد و خروجی متناظر با مینترمی که توسط Aو B
انتخاب شده است مقدار 0خواهد داشت.
اما اگر E=1باشد دیکدر کار نخواهد کرد و مقدار تمام خروجیها 1خواهد بود.
یعنی D0 … D3 = 1
Complemented outputs
33
logic circuit 5
دیکدر 4به 16
وقتی که E=0است دیکدر باالیی فعال و دیکدر پایینی خاموش خواهد بود .دیکدر باالیی
مینترمهای 0000تا 0111را تولید خواهد کرد .و همه خروجیهای دیکدر پایینی 0خواهند
بود.
وقتی که E=1است دیکدر باالیی خاموش و دیکدر پایینی فعال خواهد بود .دیکدر پایینی
مینترمهای 1000تا 1111را تولید خواهد کرد .و همه خروجیهای دیکدر باالیی 0خواهند
بود.
34
logic circuit 5
مثال از دیکدر
تابع زیر را با استفاده از decoderو یک گیت ORپیاده سازی کنید.
f(a,b, c) m(0, 1, 2 , 5) m0 m1 m2 m5
F
35
logic circuit 5
Decoder 3×8
0
1
2
3
4
5
6
7
2
1
0
a
b
c
مثال از دیکدر
تابع مثال قبل را با استفاده از decoderو یک گیت ANDپیاده سازی
کنید.
f(a,b, c) m(0, 1, 2 , 5) (3,4,6,7) M 3 M 4 M 6 M 7
F
36
logic circuit 5
Decoder 3×8
0
1
2
3
4
5
6
7
2
1
0
a
b
c
ساخت تمام جمع کننده با دیکدر
در تمام جمع کننده سه ورودی و دو خروجی داریم که خروجی ها را می توان
به صورت جمع مینترم ها به شکل زیر پیاده سازی نمود:
)C ( x, y, z) (3,5,6,7
)( x, y, z) (1,2,4,7
)( x, y, z) (3,5,6,7
37
logic circuit 5
)S ( x, y, z ) (1,2,4,7
مولتی پلکسر
مولتی پلکسر یک مدار ترکیبی است که یکی از خطوط ورودی را انتخاب
و به خط خروجی وصل خواهد کرد.
اگر تعداد ورودیها برابر 2nباشد مولتی پلکسر nخط انتخاب دارد.
Mux 4×1
F
1 0
0
1
2
3
F
I0
I1
I2
I3
I0
I1
I2
I3
s1 s0
s0
0
1
0
1
s1
0
0
1
1
F S1S0 I 0 S1S0 I1 S1S0 I 2 S1S0 I3
38
logic circuit 5
مولتی پلکسر 2به 1
مولتی پلکسر 4به 1
39
logic circuit 5
A=A3A2A1A0
B=B3B2B1B0
0
1
4 bit Mux 2×1
به یک چهار بیتی2 مولتی پلکسر
F
s
logic circuit 5
40
مولتی پلکسر 4به 1
در حالت کلی ،یک مولتی پلکسر 2nبه 1را می توان توسط یک دیکدر nبه 2n
ساخت.
I0
I1
I2
I3
0
1
2
3
Decoder 2×4
0
1
41
s0 s1
logic circuit 5
1
0
مولتی پلکسرها
a
a’
1
0
0
1
2
3
Mux 4×1
. را به ساده ترین شکل ممکن بنویسیدF (a, b, c) خروجی مدار زیر
1 0
b
0
0
1
1
b c
c
F
0
a
1
a’
0
1
1
0
F S1S0I0 S1S0I1 S1S0I 2 S1S0I3
F b c a b c a b c 1 b c 0
ab c a b c bc
1
1
1
1
F (a, b, c) a b c bc ac
logic circuit 5
42
پیاده سازی توابع بولی توسط مولتی پلکسرها
هر تابع nمتغیره را می شود توسط یک مولتی پلکسر که mخط انتخاب
دارد ساخت.
برای این کار:
ابتدا جدول درستی را تشکیل دهید.
m ورودی با ارزش را به ورودیهای انتخاب مولتی پلکسر وصل کنید.
(اولویت با ارزش بیشتر)
به ازای هر ترکیب از ورودیهای انتخاب ،خروجی را بر حسب ورودی
های باقیمانده (کم ارزش ترین ورودی ها) تعیین کنید (.یک رابطه یا تابع )
ورودیهای مالتی پلکسر را طبق نتیجه مرحله قبل (تابع) وصل کنید.
43
logic circuit 5
پیاده سازی توابع بولی توسط مولتی پلکسرها
مثال :تابع
Mux 8×1
F
)F ( x, y, z ) (1,2,6,7
2 1 0
0
1
2
3
4
5
6
7
را به کمک مالتی پلکسر 8به 1پیاده سازی نمایید.
0
1
1
0
0
0
1
1
xy z
44
logic circuit 5
F
Z
Y
X
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
پیاده سازی توابع بولی توسط مولتی پلکسرها
مثال :تابع
)F ( x, y, z ) (1,2,6,7
را به کمک مالتی پلکسر 4به 1پیاده سازی نمایید.
Z
Mux 4×1
F
1 0
XY
45
0
1
2
3
Z
’Z
0
1
’Z
0
1
logic circuit 5
F
Z
Y
X
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
پیاده سازی توابع بولی توسط مولتی پلکسرها
مثال :تابع
)F ( x, y, z ) (1,2,6,7
Mux 2×1
F
را به کمک مالتی پلکسر 2به 1پیاده سازی نمایید.
y’z+ z’y
0
y
1
y’z+ z’y
x
Mux 2×1
F
z
y
0
1
y
x
46
logic circuit 5
y
F
z
y
x
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
پیاده سازی یک تابع بولی چهار متغیره توسط یک مولتی پلکسر 8به 1
)F ( A, B, C, D) (1,3,4,11,12,13,14,15
به ترتیب ورودیها دقت کنید.
D
D
Mux 8×1
F
2 1 0
0
1
2
3
4
5
6
7
’D
D
D
’D
0
0
D
1
1
0
0
D
1
AB C
1
47
logic circuit 5
F
D
C
B
A
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
گیتهای سه حالته
یک گیت سه حالته دارای سه حالت است 0 :و 1و امپدانس باال .در حالت
امپدانس باال خروجی مدار باز خواهد بود.
وقتی که ورودی کنترل 0باشد مقدار خروجی امپدانس باال خواهدبود.
وقتی که مقدار ورودی کنترل 1باشد خروجی به ورودی وصل خواهد بود.
لذا می توان هر تعداد دلخواه از خروجیهای این گیتها را به هم وصل نمود.
بدون این مشکل loadداشته باشیم.
48
logic circuit 5
ساخت مولتی پلکسر توسط گیتهای سه حالته
دقت کنید این نوع بستن خروجیها
در انواع دیگر گیتها مجاز نیست.
49
logic circuit 5