درس مدارهاي منطقي ديجيتال مرجع :مدارهاي منطقي ديجيتال نوشته :مانو --مترجم:دكتر سپيدنام
:فصل اول
ورود به سیستم دیجیتال
سیستم ده دهی اعداد (:)Decimal آشنایی پیچیدگی را پنهان می کند؟ ده رقم 9..0 موقعیت ،وزن تعیین می کند: 0
0
2
1
4
3
... 10 10 10 10 10 1 7 3
= 1 × 10 + 7 × 10 + 3 × 10 = 100 + 70 + 3 = 173 1
2
سیستم دودویی
اعداد(:)binary
آسان برای کامپیوتر ها ,ناملموس برای ما از ارقام دودویی( ،binary digits)) )bitsبه جای ارقام ده دهی استفاده می کند. n بیت داده شده می تواند نشانگر n^2عدد باشد. با ده انگشت می شود تا 1023شمرد! در این سیستم نیز از موقعیت ،وزن را تعیین می کند.
Dec 0 1 2 3
23 22 21 20
Binary
1
0 1 0
0 1 10
1
1
11
4 5
1 1
0 0
0 1
100 101
6 7 8
1 1 0
1 1 0
0 1 0
110 111 1000
1
تبدیل از مبنای ده به مبنای دو روش اول :تقسیمات متوالی
( ) 325 (10 ) 101000101 2 2 2 2 2
2 2 1
2 5
2 1 0
20 0
10 0 0
40
2 162
81 1
325 1
0
روش دوم :کاهش متوالی توان های دو توان های :دو … 1 2 4 8 16 32 64 128 256 512 1024
25 = 1 1 0 0 1 1
8
16
تبدیل از مبنای دو به مبنای ده
) 1 0 1 1 1 0 (21 = 0 x 1 + 1 x 2 + 1 x 4 + 1 x 8 + 0 x 16 + 1 x 32 = )46(10 25 24 23 22 21 20
اعداد اعشاری … 25.43 11001.01101
0.43 * 2 = 0.86 0.86 * 2 = 1.72 0.72 * 2 = 1.44 0.44 * 2 = 0.88 0.88 * 2 = 1.76 …
حداقل اعداد بدون علمت در قالب :nبیتی حداکثر2n – 1 0
20 + 21 + … + 2 a = 2) a + 1 ( - 1
اعداد علمت دار
سیستم علمت مقدار
+
1- 0 :
....
-:1
n-1
بیت علمت
سیستم متمم دو – 2 = 258 – 194 = 258 + ) 999 – 194 ( + 1 – 1000 A–B=A+B+1 متمم دو
:در روش متمم دو 1 0 0 1 0 1 1 = +20 + 21 + 23 – 26 = - 53
تمرین :یک عدد منفی پیدا کنید ،که روش نمایش آنnبیتی عینا مشابه نمایش آن در سیستم در سیستم متمم دو و قالب علمت مقدار و قالب .nبیتی باشد
ستمی برلی ارائه اعداد اعشاری منفی نشان دهید که به کمک آن بتوان جمع و تفریق را انجام داد و د
روش های ممکن جهت نمایش اعداد علمت دار: سیستم متمم دو
سیستم متمم یک
0+ = 000 1+ = 001 2+ = 010 3+ = 011 0- = 100 1- = 101 2- = 110 3- = 111
0+ = 000 1+ = 001 2+ = 010 3+ = 011 3- = 100 2- = 101 1- = 110 0- = 111
سیستم علمت مقدار 0+ = 000 1+ = 001 2+ = 010 3+ = 011 4- = 100 3- = 101 2- = 110 1- = 111
متمم : 2
نوشته( 49 صورت1 0 0 عدد بدون علمت به 0 1 (2 شود) 1- باینری10 = ) 1 ریزی – 2
0110001
عدد مثبت بود ،کار تمام است ،اما اگر عدد منفی است لزم است متمم دو شود – 3
جمع و تفریق اعداد علمت دار 1001111 0010111
- 49 + 23
1100110
- 26
ر در جمع خطای سرریز رخ داد ،باید خمع را در قالب بزرگتری انجام دهیم -
سیستم بدون علمت خطای سرریز همان .Carry-است
) خطای سرریز (Over flow
ع اعداد بدون علمت ،رخداد سرریز همان رقم نقلی است - ع و تفریق اعدا علمت دار ،سرریز در دو هنگام ممکن است رخ دهد :جمع دو عدد مثبت - ع دو عدد منفی
خیص رخداد سرریز
ل :اگر حاصلجمع دو عدد مثبت عددی منفی شود و یا جمع دو عدد منفی ،عددی مثبت،
وم :در صورتی که دو رقم نقلی آخر مساوی باشند
:جمع اعداد اعشاری 0011001.1000 1011001.0100
25 . 50 - 38 . 75
1110010.1100 0.25
مبنای 16 ،8 ،4
0.5
- 13 25 ) 1 1 0 0 1 (2 ) 121 (4
011001
) 31 (8
011001
) 19 (16
00011001
ضرب و تقسیم اعداد باینری :ضرب به روش معمولی 1110 * 0101 1110 0000 1110 0000 1000110
:ضرب به روش جمع های متوالی 1110 1110 1110 1110 1110 1000110
+
:کدینگ اطلعات
هدف :ورورد به سیستم دیجیتال افزایش سرعت - کاهش فضا - :معیار ها راحتی کار با آن - امنیت - اطمینان -
Binary Coded Decimal
(دارای وزن )
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
مورد کاراکتر ها ،از کد اسکی آنها استفاده می کنیم -
0 1 2 3 4 5 6 7 8 9
ex - 3 ex - 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
(خود مکمل )
تعداد کلیه سیستم های خود مکمل = 6720
4
0 1 2 3 4 5 6 7 8 9
3
2
1
0
8 * 7 * 6 * 5 * 4
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9
:یک کد وزنی و خود مکمل 2421 0000 0001 1000 0011 0100 1011 1100 0111 1110 1111
0 1 2 3 4 5 6 7 8 9
:تمرین چند کد وزنی و خود مکمل با ارزش های 4 ،2 ،2 ،1وجود دارد؟ 1- چند کد وزنی و خود مکمل با ارزش 2421وجود دارد؟ 2- .ارزش های دیگری غیر از این ارزش بگویید – 3 .ارزش منفی هم در اعداد قرار دهید – 4 چه ویژگی ای باید این ارزش ها داشته باشند؟ 5- روشی برای جمع و تفریق دودویی – BCD 6و .ex-3کد شدند ،بیابید اعدادی که با سیستم
نمایش اعداد غیر صحیح ( اعشاری . 0 1 0 1 1
اعشاری < 1
.
صحیح>= 1
1 1 0 0 1
0 . 257 25
نما 43.85 0.4385 * 10 2 مانتی س
> 1مانتی > 0 س
نما علمت نما
1 0 1 0 1 1 . 1 1 0 1 = 0 . 1 0 1 0 1 1 1 1 0 1 * 2 +6 >1
مانتی > 0.5 س
Parity توازن یا همپایگی -
در سیستم هایی که حداکثر احتمال بروز یک خطا وجود دارد -
خاصیت :Parityطولی و عرضی
لیت تشخیص دو خطا را دارد ،ولی فقط یک خطا را می تواند تصحیح کند -
:کد همینگ توان های 2
بیت های کنترلی 1 0 1 1داده خام :
0 1 1 0 0 1 1 7
Parityزوج
6
5
4
3
2
1بیت های کنترلی
P1 = P ) B3, B5, B7 ( = 0 P2 = P ) B3, B6, B7 ( = 1
0 1 1 0 0 1 1داده نهایی :
P4 = P ) B5, B6, B7 ( = 0
:خطایابی P1 P2
P4
0100101
داده ارسالی :
0 1 0 0 1 1 1 B5 B6 B7
0100111
B3
P1 =0 P2 =0 P4 =1 رخداد خطا B6
یک بیت خطا قابل تصحیح - دو بیت خطا قابل تشخیص -
6
داده دریافتی :
فصل 2 روش های جبری برای تحلیل و طراحی مدارهای منطقی
دستگاه های دیجیتالی جبر بول: یک عبارت منطقی می تواند ”درست“ یا ” نادرست“ باشد ( 0یا .)1 شامل فرمول های جبری مربوط به ترکیب های مقادیر منطقی است.
درسطح سخت افزار: هر عبارت منطقی با یک سیگنال الکتریکی نشان داده می شود. ارزش منطقی هر عبارت با ولتاژ الکتریکی سیگنال ،مشخص
دستگاه های
دیجیتالی()2
عملگرهای منطقی با گیت های منطقی پیاده سازی می شوند.
اصول جبر بول
()1
:اصول اساسی اصل :1 a+b تعریف:برایaهر bو که متعلق بهkمجموعه و kنیز به مجموعه ی ی a.bهستند، .تعلق دارند Or a+b And a.b نامیده می شود ) و، ∈ K )،. a.b a+b ∈ K
K
∈
a&b
If
اصول جبر بول
()2
اصل :2 موجودیت عناصر 0و :1 x
x+0=x
x+0 x.1 0
0
0
1
1
1
x.1=x
اصول جبر بول
()3
اصل :3
x+y=y+x
خاصیت عناصر +و : . x.y y.x x+y y+x
x.y=y.x y
x
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
اصول جبر بول
()4
’x
’y.x
x.y
x+y
y
x
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
اصول جبر بول
()5
اصل :4 .خاصیت شرکت پذیری اعمال +و ()x + y(+ z = x +)y + z x .)y . z( = )x . y(. z
اصول جبر بول
()6
اصل :5 +:خاصیت توزیع پذیری +بر .و .بر x .)y + z( = x . y + x . z (x +)y . z( = )x + y( . )x + z
آزمون درستی توزیع پذیری +بر .و = .بر )2( + ()x+y()x+z
x y z y.z x+y.z x+y x+z
0 0
0 1
0 0
0 0
0 0 0 0 0 0 1 0
0
0
1
0
0 1 0 0
1 1
1 1
1 1
1 1
0 1 1 1 1 0 0 0
1 1 1
1 1 1
1 1 1
1 1 1
1 0 1 0 1 1 0 0 1 1 1 1
اصول اساسی جبر بول
()1
:خاصیت خود توانی1. a+a=a a.a=a + :عناصر بی اثر در .و 2. a.1=a a+0=a
اصول اساسی جبر بول
()2
مم3. مم ِ مت ّ :مت ّ a’’ = a :قانون جذب4.
a+a.b=a a .)a + b( = a
)3(
اصول اساسی جبر بول 5. 5 قانون
a) a + a‘b = a + b b) a(a' + b) = a b
:مثال B + AB'C'D = B + AC'D (X + Y)((X + Y)' + Z) = (X + Y)Z
[[(a)5ق [[(b)5ق
6 قانون.6 a) ab + ab' = a b) (a + b)(a + b') = a
)3(
اصول اساسی جبر بول مثال:
ABC + AB'C = AC [[)a(6 )W' + X' + Y' + Z'()W' + X' + Y' + Z()W' + X' + Y + Z'()W' + X' + Y + Z( = )W' + X' + Y'()W' + X' + Y + Z'()W' + X' + Y + Z( [[)b(6 = )W' + X' + Y'()W' + X' + Y( [[)b(6 = )W' + X'( [ [)b(6
)3(
اصول اساسی جبر بول 7. 7 قانون
a( ab + ab‘c = ab + ac b( )a + b()a + b' + c( = )a + b()a + c( :مثال
wy' + wx'y + wxyz + wxz‘ = wy' + wx'y + wxy + wxz' = wy' + wy + wxz' = w + wxz' =w
[[(a)7ق [[(a)7ق [[(a)7ق [[(a)7ق
قوانین دمرگان
()1
’)x.y(’=x’+y ’)x+y(’=x’.y
ن قانون می تواند به صورت زیر تعمیم پیدا کند ’)x.y.....t(’=x’+y’+...+t ’)x+y+...+t(’=x’.y’.....t
)2(
قوانین دمرگان :مثال
(a + bc)‘ = (a + (bc))'
= a'(bc)‘ = a'(b' + c') = a'b' + a'c'
)3(
:دمرگان
قوانین دمرگان
مثال های بیشتری از قوانین
(a(b + z(x + a')))' = a' + (b + z(x + a'))' = a' + b' (z(x + a'))' = a' + b' (z' + (x + a')') = a' + b' (z' + x'(a')') = a' + b' (z' + x'a) = a' + b' (z' + x')
[ ([دb) [([دa) [([دb) [([دa) [مم ّ مم ِ مت ّ [مت [[(a)5ق
(a(b + c) + a'b)'
[[(b)5اصل [[(a)6ق [ ([دa) [ ([دb)
= (ab + ac + a'b)' = (b + ac)' = b'(ac)' = b'(a' + c')
)4(
اصول اساسی جبر بول 8. 8قانون
)a( ab + a'c + bc = ab + a'c )b( )a + b()a' + c()b + c( = )a + b()a' + c(
:مثال – AB + A'CD + BCD = AB + A'CD – )a + b'()a' + c()b' + c( = )a + b'()a' + c( – ABC + A'D + B'D + CD = ABC + )A' + B'(D + CD = ABC + )AB('D + CD = ABC + )AB('D = ABC + )A' + B'(D = ABC + A'D + B'D
[[)a(9ق [[)b(9ق [[)b(5اصل [ )[دb( [[)a(9ق [ )[دb( [[)b(5اصل
)duality( دوگان duality
duality
0
And
1
Or duality
duality
مثال:
x+y’z
دوگان
x.)y’+z(
()1( POS(( و ماکسترم هاSOP( مینترم x
y
z
x+y+z
Minterm
Maxterm
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
x’.y’.z’ x’.y’.z x’.y.z’ x’.y.z
m0 m1 m2 m3
x+y+z x+y+z’ x+y’+z x+y’+z’
M0 M1 M2 M3
1 1 1 1
0 0 1 1
0 1 0 1
1 1 1 1
x.y’.z’ x.y’.z x.y.z’ x.y.z
m4 m5 m6 m7
x’+y+z x’+y+z’ x’+y’+z x’+y’+z’
M4 M5 M6 M7
( SOPو ماکسترم ها ((()2( POS مینترم :مثال (m)1,2,4,5,6
=(f)x,y,z
(M)0,3,7
=(f)x,y,z
∑
∏
مینترم ( SOPو ماکسترم ها ((()2( POS مثال :تابع زیر را به صورت مینترمی بنویسید.
F )x , y( = x . y .1رسم جدول درستی .2تعیین مینترم ها (F )x , y( =∑ F)2
F
y
x
0
0
0
0
1
0
0
0
1
1
1
1
()3( POS(( و ماکسترم هاSOP( مینترم ) را به صورتf ') A ,B , Q ,Z ) وf) A , B , Q ,Z:مثال .مینترمی بنویسید f)A,B,Q,Z( = A'B'Q'Z' + A'B'Q'Z + A'BQZ' + A'BQZ
f)A,B,Q,Z( = A'B'Q'Z' + A'B'Q'Z + A'BQZ' + A'BQZ = m0 + m1 + m6 + m7 = S m)0, 1, 6, 7( f ')A,B,Q,Z ( =m2+ m3+ m4+ m5+ m8+ m9 + m10+ m11+ m12 13
+ m14 + m15m + m))2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15 S =
:قضیه گسترش شانون (a). f(x1, x2, …, xn) = x1 f(1, x2, …, xn) + (x1)' f(0, x2, …, xn) (b). f(x1, x2, …, xn) = [x1 + f(0, x2, …, xn)] [(x1)' + f(1, x2, …, xn)]
:مثال • f)A,B,C( = AB + AC' + A'C – f)A,B,C( = AB + AC' + A'C = A f)1,B,C( + A' f)0,B,C( = A)1×B + 1×C' + 1'×C( + A')0×B + 0×C' + 0'×C( = A)B + C'( + A'C – f)A,B,C( = A)B + C'( + A'C = B[A)1+C'( + A'C] + B'[A)0 + C'( + A'C] = B[A + A'C] + B'[AC' + A'C] = AB + A'BC + AB'C' + A'B'C – f)A,B,C( = AB + A'BC + AB'C' + A'B'C = C[AB + A'B×1 + AB'×1' + A'B'×1] + C'[AB + A'B×0 + AB'×0' + A'B'×0] = ABC + A'BC + A'B'C + ABC' + AB'C'
Xor & Xnor x + y=x . y’+x’.y x . y=x’. y’+x.y
x 0 0 1 1
y 0 1 0 1
x.y x+y x+y x.y 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1
)1(
)گیت ها(دریچه ها
And:
x y
A
x
y
A=x.y
0
0
0
0
1
0
1
0
0
1
1
1
گیت ها(دریچه ها) A=x+y
y
x
0
0
0
1
1
0
1
0
1
1
1
1
()1
Or:
B
x y
گیت ها
()2
:تقویت کننده x
x
:متمّم ’x
x
’x 1
x 0
0
1
)3(
Nand:
x y
x
A
گیت ها
x
y
A
0
0
0
0
1
0
1
0
0
1
1
1
)3(
Nor:
x y
x
A
گیت ها
x
y
A
0
0
1
0
1
0
1
0
0
1
1
0
)4(
Xor:
x y
گیت ها
x
y
A
0
0
0
0
1
1
1
0
1
1
1
0
A
)4(
Xnor:
x y
A
گیت ها
x
y
A
0
0
0
0
1
0
1
0
0
1
1
1
گیت یا بافر 3وضعیتی
()1
ن گیت ها دارای یک دریچه ورودی، است کنترل کلید یک و خروجی ک output ه هر گاه کلید کنترل 1گردد؛ ورودی بر روی خروجی قرار میگیرد
Input
Control If control = 1
Input
If control = 0
Hz
= Output
)2(
so
b=0
if
b=1 if
وضعیتی3 گیت یا بافر اتصال سری:
Off
c=0
c=1
so
Off
so
f =a f
a
b
c
گیت یا بافر 3وضعیتی :اتصال موازی
()3
f=b
f=a
so
so
c=0
c=1 a
c.d = 0
f
c b (c’)d
)1(
A
تأخیر در انتشار
Real implementations are not quite so perfect Computation actually takes some time Communication actually takes some time
B
C
A B C Timing Diagram
a b
)2(
k2 f
k1 k3
c k1 a=1 t=0
b=1 c=1
مثال:
1
a b
c
1 1 m+1
0 m+2
1
k2 k3
m+3
0 m+5
1
t=m
a=1 b=0 c=1
تأخیر
f t=m Hazard)1(
کد گِری
()1
در این کد،هر کدام از کد ها تنها در یک بیت با کد قبلی متفاوت است و این روند چرخشی است؛یعنی آخرین کد و اولین کد نیز تنها در 1 .بیت متفاوتند
)2(
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
Gray code
BCD code
x 0 0 0 0 1 1 1 1
کد گری y 0 0 1 1 1 1 0 0
z 0 1 1 0 0 1 1 0
نحوه
تولیدکدگری()3 0 1 2 3 4 5 6 7
0 1 1 0 0 1 1 0
0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1
فصل 3
خصوصیات توابع سويیچی
جدول کارنا برای ساده سازی توابع با حداکثر 6ورودی، .میتوان از جدول کارنا استفاده کرد در این روش جدولی با توجه به تعداد ورودی ها در نظر گرفته میشود؛ و به هر مینترم یک خانه .از این جدول اختصاص میابد
جدول کارنا برای 3ورودی (f)x,y,z
yz 10
11
01
00
2
3
1
0
0
6
7
5
4
1
x
جدول کارنا برای 4ورودی (f)x,y,z,t zt 10
11
01
00
xy
2
3
1
0
6
7
5
4
01
14
15
13
12
11
10
11
9
8
10
00
جدول کارنا برای 5ورودی
()1
(f)x,y,z,t,e
zte 100
101
111
110
010
011
001
000
4
5
7
6
2
3
1
0
12
13
15
14
10
11
9
8
28
29
31
30
26
27
25
24
11
20
21
23
22
18
19
17
16
10
xy 00 01
جدول کارنا برای 5ورودی به جای 1جدول 32خانه ای میتوان از 2جدول 16خانه zt کرد استفاده .ای 10 00 01 11 10 xy
18
19
17
16
22
23
21
20
30
31
29
28
26
27
25
24
x=1
()2
(f)x,y,z,t,e
te 11
01
00
yz
2
3
1
0
01
6
7
5
4
01
11
14
15
13
12
11
10
11
9
8
10
00
10
x=0
00
جدول کارنا برای 5ورودی
()3 (f)x,y,z,t,e
zt 10
11
01
00
zt xy
10
11
01
00
xy
4
6
2
0
00
5
7
3
1
00
12
14
10
8
01
13
15
11
9
01
28
30
26
24
11
29
31
27
25
11
20
22
18
16
10
21
23
19
17
10
e=0
e=1
ساده سازی توابع با کمک جدول کارنا
رسم جدول کارنا با توجه به سایزها1. آوردن مینترم ها داخل جدول کارنا2. تعیینcube 3. تبدیل cube 4.ها به شکل جبری
اصول ساده سازی کارنا در صورتی درست است که کلیه شرایط زیر
انتخاب cube :برقرار باشد 1. .قابل بزرگتر شدن نباشد cube موجود باشد که در هیچ حداقل یک 1در cube باشد .دیگری شرکت نکرده
2. cube
Algorithm )1( 1.count the number of adjacencies for each minterm on the k-map. 2.select an uncovered minterm with the fewest number of adja-cencies. 3. generate a prime implicant, select the one that covers the most uncovered minterms. 4.Repeat step 2 & 3 until all minterms have been covered
مثالی برای جدول کارنا f)x,y,z,t,e(=
∑m)2,4,5,6,7,8,9,10,11,12,13,15,16,18,22,24,25,27,28,29,31( zte xy
000
001
011
00 01 11 10
1 1 1
1 1
1 1
010
110
111
101
100
1 1
1
1 1 1
1 1 1
1 1 1
1
1
f)x,y,z,t,e(= xyz+ x’yz’ + xz’t’e’ + ye + yt’ + y’te’
توابع نا کامل(با ( )1( don’t-care حالت بی اهمیتی هستند در خروجی به این .دلیل که در ورودی اتفاق نمیافتد don’t-care از این حالت به عنوان یک مؤلفه ی موثر در ساده سازی به خوبی میتوان استفاده کرد؛ به این صورت که اگر 1بودن برخی از این حالت ها و ساده سازی باعث بزرگتر شدن بیشتر شود ،ما آنها را 1فرض میکنیم و اگر نه، .به نفع ماست که آنها را 0فرض کنیم
( )2( don’t-care توابع نا کامل(با f)x,y,z,t( =
∑ m)1,2,7,11,12,15(+ d )0,3,6,9,13,14(
f)x,y,z,t( = x’z + xy + y’t zt xy 00
00
01
11
10
*
1
*
1
1
*
*
1
*
*
1
01 11 10
1
انواع شکل مدارات 2طبقه
()1
می دانیم هر تابع جبری با هر شکل و اندازه ای با استفاده از یک جدول درستی قابل نمایش یا است؛ و به فرم 2طبقه ی And-Or Or-And است . Nand Nor و حال با توجه به اینکه گیت های نیز مفیداند؛ میخواهیم ببینیم چه فرم های 2 .طبقه دیگری وجود دارد
انواع شکل مدارات 2طبقه طبقه 2
طبقه 1
And
And
Or
Or
Nand
Nand
Nor
Nor
()2
طبقه 0
Not
حالت ممکن مدارات 2طبقه طبقه 2 Nor
Nand
Or
And
طبقه 1 And Or Nand Nor
مورب جدول کارنا
سازی cube
ساده مثال:
zt xy
00
1 1
10
1 1
1
11 10
11
1
00 01
01
1 1
f)x,y,z,t(= a’.c’)b + d( + a.c)b + d( + a’.c)b . d( + a.c’)b . d(
f)x,y,z,t(=)b + d( . )a . c(
روش ساده سازی کویین مک کلسکی ()1( )Quine-McCluskey
.روش دیگری برای ساده سازی توابع می باشد مزیت این روش به جدول کارنا ،اینست که اگر ورودی های ما زیاد هم باشند؛ کار کردن با آن ساده است ،ولی جدول کارنا برای توابعی با بیش از 6ورودی کاربردی ندارد زیرا کار کردن .با آن ساده نیست
روش ساده سازی کویین مک کلسکی ()2( )Quine-McCluskey
مراحل و روش این نوع ساده سازی را به همراه یک مثال می .بینیم
روش ساده سازی کویین مک کلسکی ()3( )Quine-McCluskey
:مثال (f)a,b,c,d(= ∑ m)2,4,6,8,9,10,12,13,15 cd 10
11
01
00
1
00
1 1 1
ab
1
01
1
1
11
1
1
10
Q-M Tabular Minimization Method )4(
Step 1. list in a column all the minterms of the function to be minimized in their binary representation. Partition them into groups according to the number of 1 bits in their binary representation. This partitioning simplifies identification of logically adjacent minterms since, to be logically adjacent, two minterms must differ in exactly one literal.
Q-M Tabular Minimization Method )5( Minterms
abcd
2
0010
4
0100
8
1000
6
0110
9
1001
10
1010
12
1100
13
1101
Group 3 )three 1’s(
15
1111
Group 4 )four 1’s(
Group 1 )a single 1(
Group 2 )two 1’s(
Q-M Tabular Minimization Method )6(
Step 2. perform an exhaustive search between neighboring groups for adjacent minterms and combing them into a column of )n-1(-variable implicants, checking off each minterm that is combined. Repeat for each column, combing )n-1(-variable implicants into )n-2(-variable implicants, and so on, until no further implicants can be combined.
Q-M Tabular Minimization Method )7( Minterms
abcd
Minterms
abcd
2
0010
2,6
0-10
PI2
4
0100
2,10
-010
PI3
8
1000
4,6
01-0
PI4
6
0110
4,12
-100
PI5
9
1001
8,9
100-
10
1010
8,10
10-0
12
1100
8,12
1-00
13
1101
9,13
1-01
15
1111
12,13
110-
13,15
11-1
PI6
PI7
Minterms
abcd
8,9,12,13
1-0- PI1
Q-M Tabular Minimization Method )8( the final result is a list of prime implicants of the switching function. Step 3. construct a prime implicants chart that lists minterms along the horizontal and prime implicants along the vertical, with an * entry placed wherever a certain prime implicant )row( covers a given minterm )column(.
Q-M Tabular Minimization Method )9( 2 PI1 PI2 * PI3 * PI4 PI5 PI6 PI7
4
6
8 9 10 12 13 15 * * * *
*
*
* * *
* *
* *
*
Q-M Tabular Minimization Method )10(
Step 4. Select a minimum number of prime implicants that cover all the minterms of the switching function.
Q-M Tabular Minimization Method )11( 2 PI2 PI3 PI4 PI5 PI6
4
* *
6
10
* * * *
* *
Q-M Tabular Minimization Method )12(
f)a,b,c,d(= PI1 + PI3 +PI4 + PI7 =1-0- + -010 + 01-0 + 11-1 = a.c’ + b’.c.d’+ a’.b.d’ + a.b.d
ساده سازی ًQ-M چند خروجی
برای سیستم های
حال از این روش برای ساده سازی سیستم های .با چند ورودی متفاوت استفاده می کنیم .روش کار را با یک مثال می بینیم (fα)a,b,c,d(= ∑ m)0,2,7,10(+d)12,15 (fβ)a,b,c,d(=∑ m)2,4,5(+d)6,7,8,10 (fγ)a,b,c,d(=∑ m)2,7,8(+d)0,5,13
برای سیستم های سازی ساده Q-M چند خروجی ()2 مینترم0,2,4,5,6,7,8,10,12,13,15: ها
های
don’t-care ابتدا فرض میکنیم همه ی مینترم ها و ه شده مربوط به 1تابع میباشد و آنها را دسته بندی کنیم و مرحله 1و 2را به صورت گفته شده در قسمت قبل جام میدهیم
برای سیستم های ساده سازی Q-M )3( چند خروجی MIN TERM abcd Flags 0000 αγ 0 2
0010 αβγ
4
0100
β
8
1000
βγ
5
0101
βγ
6
0110
β
10
1010 αβ
12
1100
7
α
0111 αβγ
MIN TERM
PI10 PI11
PI12 PI13
abcd Flags
0,2
00-0
αγ
0,8
-000
γ
2,6
0-10
β
2,10
-010
αβ
4,5
010-
β
4,6
01-0
β
8,10
10-0
β
PI6
5,7
01-1
βγ
PI7
5,13
-101
γ
PI8
13
1101
γ
6,7
011-
β
15
1111
α
7,15
-111
α
PI2 PI3 PI4 PI5
PI9
MIN TERM
abcd
4,5,6,7
01--
Flags
β
PI1
برای سیستم های ساده سازی Q-M )4( خروجی چند fα fβ fγ 0 PI1
β
PI2
αγ
PI3
γ
PI4
β
PI5
αβ
PI6
β
PI7
βγ
PI8
γ
PI9
α
PI10
αβγ
PI11
βγ
PI12
α
PI13
αβγ
2
7
10
2
4
5
* *
* *
2
7
*
8
*
* *
* * *
*
* *
* *
* *
برای سیستم های سازی ساده Q-M )5( چند خروجی fα fγ 7
PI3
γ
PI7
βγ
PI9
α
PI11
βγ
PI13 αβγ
7
* * * *
8
*
fα=PI2+PI5+PI13 fβ=PI1+PI5
*
fγ=PI2+PI3+PI13 fa=a’b’d’+b’cd’+a’bcd fβ=a’b+b’cd’ fγ=a’b’d’+b’c’d’+a’bcd
برای سیستم های ساده سازی Q-M چند خروجی ()6 d
PI1 fα PI2 fβ
fγ
PI3 PI5 PI13
c
b
a
فصل 4
مدارهاي منطقي تركيبي ماجولي
فهرست مطالب طراحي مدار طراحي ماجولر مدار Full Adder و Half Adder ديكدر اينكدر مالتي پلكسر)تسهيم كننده( دي مالتي پلكسر)پخش كننده داده ورودي( مقايسه گرها A seven segment display
طراحي مدار
تعين تعداد بيت هاي ورودي وخروجي مدار Interface
رسم جدولTruth Table
بدست آوردن يك تابع براي خروجي
ساده سازي توابع بدست آمده )كارنو(Q-M /
: مثال Truth table a b c Even Parity 0 0
0 0
1
0 1
0
1
1 1
0
0
0 0
1
1 0
1
0 1
1
1 1
=e
p) ) 1,2,4,7
0
1 0
1
m∑
1
b c 00 a
01 11
10
0
0 1 0 1
1
1 0 1 0
0 0 1
Pe
= )a b(
c
طرحي ماجولر مدار اگر تعداد بيت هاي ورودي وخروجي بيش از 4يا 5باشد در رسم جدول صحت با مشكل برخورد مي كنيم ).پيچيدگي ( حافظه
راهكار بدون رسم جدول درستي به خروجي مدار برسيم).رهيافت ذهني( طراحي ماجولر مدار).طراحي پيمانه اي( )از نظر زماني بهينه نيست(
Full Adderو (Half Adder(1 Full Adder: يك مدار تركيبي با سه ورودي و دو خروجي است كه دو بيت داده ويك رقم نقلي را با هم جمع كرده و حاصل جمع ورقم نقلي را محاسبه مي كند.
Half Adder: يك مدار تركيبي با دو ورودي و دو خروجي است كه دو بيت دودويي را با هم جمع كرده و حاصل جمع ورقم نقلي را محاسبه مي كند.
(Half Adder(2 وFull Adder طراحيHull adder عدد2 را ميتوان توسطFull adder يك .كرد Xi Yi
s
H.A
s
H.A c
c
Si = X i
Yi
Ci-1
Ci-1= XiYi+XiCi-1+YiCi-1
Ci-1 مي تواند توسط يك جايگزينXOR گيت .شود
(H.A ) بلوك دياگرام Xi Yi
H.A Ci
Si
Truth Table Xi Y i
Ci S i
Si = X i Yi
0
0
0
0
Ci = Xi Yi
0
1
0
1
1
0
0
1
1
1
1
0
Xi
Si
Yi Ci
)F.A ( بلوك دياگرام Xi Yi Ci-1
F.A Ci
Si
Truth Table Xi Y i Ci-1
Ci S i
0
0 0
0
0
0
0 1
0
1
0
1 0
0
1
Si = X i Yi Ci-1
0
1 1
1
0
Ci = XiYi+
1
0 0
0
1
1
0 1
1
0
1
1 0
1
0
1
1 1
1
1
XiCi-1+ YiCi-1
)F.A ( دياگرام منطقي C=C(A out A B
B) + AB
S
C C out
Ripple Carry Adder (RCA)
b 7 a7
b 3 a3
b 2 a2
H.A
F.A
F.A
COUT S7
C4
S3
C3 S2
b1
a1
b 0 a0
F.A C2 S1
H.A C1
S0
Ripple Carry Adder (RCA) b7
b3 a7
a3
S7
b1 a2
F.A
F.A
COUT
b2
S3
If M =0
A+B
If M =1
A-B or )A+B+1(
b0 a1
F.A
S2
a0
F.A
M
F.A
S1
S0
ديكدر
ديكدر nبه2 nيك شبكه منطقي تركيبي است با nخط ورودي و 2nسيگنال خروجي.
عنصري است كه مينترم ها را مي سازد.
n 2 بهn ماجول ديكدر
x0 x1
LSB
m0 n-to-2n
m1
Decoder
xn-1 MSB
E . هستندActive Low معمول
mn-1
دياگرام منطقي )موازي و خروجي هاي فعال بال( Truth Table m0= AB m1= AB m2= AB m3= AB
B A
m0 m1 m2 m3
E A B
1 0
0 0
0
0
0
0 1
1
0
1 0
0
1
0
0 1
0
1 0
1
0 0
0
1 1
1
0
0 0
0
× ×
0
دياگرام منطقي (موازي و خروجي هاي فعال پايين)
m0 m1 m2 m3
B A
ساختماني ديگر m0
m1
m2
m3
B A
C
B
بيت ديكدر نوع موازي سه A m0 =C B A m1 =C B A m2 =C B A m3 =C B A m4 =C B A m5 =C B A m6 =C B A m7 =C B A
A
ديكدر نوع درخت سه m بيت 0
B A
C
A
m1 m2
B A
m3
A
m4
A
m5
B C
A
m6
A
m7
B
پياه سازي توابع منطقي با ديكدر ها مثال: (F)A , B ,C( = ∑m)0 ,1 ,4 ,6 ,7( = ∏M )2 ,3 ,5 تابع را به چندين طريق مي توانيم پياده نماييم:
•
يك ديكدر )با خروجي فعال بال( ويك گيت ORبكار بريم.
•
يك ديكدر )با خروجي فعال پايين( ويك گيت NANDبكار بريم.
•
يك ديكدر )با خروجي فعال بال( ويك گيت NORبكار بريم.
•
يك ديكدر )با خروجي فعال پايين( ويك گيت ANDبكار بريم.
ك ديكدر )با خروجي فعال بال( ويك گيت ORبكار بريم.
F)A , B ,C( = m0 + m1+ m4 +m6+ m7
(F)A , B ,C
0
1 4 6 7
2
MSB A
1
B
0
LSB C
ديكدر )با خروجي فعال پايين( ويك گيت NANDبكار بر
F)A , B ,C( = m0 . m1. m4 .m6. m7
(F)A , B ,C
0
1 4 6 7
2
MSB A
1
B
0
LSB C
ك ديكدر )با خروجي فعال بال( ويك گيت NORبكار بريم.
F)A , B ,C( = m2 + m3+ m5
(F)A , B ,C
2 3 5
2
MSB A
1
B
0
LSB C
ديكدر )با خروجي فعال پايين( ويك گيت ANDبكار بريم
F)A , B ,C( = m2 . m3. m5
(F)A , B ,C
2 3 5
2
MSB A
1
B
0
LSB C
ساختن Full Adderبه وسیله دیکدر:
ساختن ديكدر بزرگتر:
اينكدر اينكدر يك ماجول تركيبي است كه براي هر سيگنال ورودي به دستگاه يك كد خروجي منحصر به فرد را اختصاص مي دهد. اگر يك ماجول اينكدر nورودي داشته باشد خروجي sبايد در رابطه زير صدق كند:
2s ≤ n s ≤ Log2 n
or
مثال: يك اينكدر براي براي چهار خط ورودي طراحي كنيد بشرطي كه در هر لحظه از زمان فقط يك ورودي فعال باشد. A0
4 –to- 2
A1
Encoder
x0 x1 x2 x3
x3 x2 x1 x0 A1 d
A1= X2+X3
1
d
1
0
d
d
d
d
d
d
d
0
d
d
d
A0
A0= X1+X3
A1 A0
0
0
0
0
d
d
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
d
d
0
1
0
0
1
0
0
1
0
1
d
d
0
1
1
0
d
d
0
1
1
1
d
d
1
0
0
0
1
1
1
0
0
1
d
d
1
0
1
0
d
d
1
0
1
1
d
d
d
0
d
1
0
d
d
d
d
d
d
d
1
1
0
0
d
d
1
1
0
1
d
d
1
d
d
d
1
1
1
0
d
d
1
1
1
1
d
d
دياگرام منطقي A0= X1+X3
A1= X2+X3
x1 x3
x2 x0
اينكدر اولويت اينكدر اولويت اجازه مي دهد تا چندين خط ورودي فعال شوند ولي عدد دودويي خارج شده از آن انديسي است كه در خطوط ورودي بالترين اولويت را دارد. براي ساده كردن طراحي بالترين اولويت به بالترين انديس اختصاص يافته است و بالترين اولويت بعدي به دومين انديس بالتر و الي آخر تخصيص داده شده است.
بلوك دياگرام اگر هيچ يك از خطوط ورودي فعال نباشد EO=1 A0 A1
GS EO
اگر بيش از يكي از خطوط ورودي فعال باشد GS=1
x0 4 –to- 2 Priority encoder
x1 x2 x3
A1 A1= X2+X3
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
A0 1 A0= X1+X3
1
x3 x2 x1 x0
A1 A0 GS EO
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
EO=GS= X0 + X1 + X2 + X3
دياگرام منطقي
X1
A0
X2 X3
A1 EO GS
X2 X0
مالتي پلكسر(تسهيم كننده) بطور كلي مالتي پلكسر) انتخابگر داده ( يك ماجول است كه يكي از چند خط ورودي را انتخاب و آن را روي خط خروجي ظاهر مي سازد.
Y
4-to-1 MUX
s1 s2 كد انتخاب
x0 x1 x2 x3
دار معادل دو طبقه x0 S1 S0
Y
0
0
0
1
1
0
1
1
x0 x1 x2 x3
Y
x1 x2 x3
S1
S0
دياگرام منطقي x0
Y
x1 x2 x3
Dec 2 × 4 S0
S1
: 1مثال F)A , B ,C( = ∑m)1, 2 , 3 , 5 ,6(
a b c
F
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0 1 1 1 0 1 1 0
I0 I1 I2 I3 I4 I5 I6 I7
MUX 8×1
a b
c
F
: 2مثال F)A , B ,C( = ∑M)1 ,2 , 3, 6(
I0 I1 I2 I3
a b c
F
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
c
c
I0
1
I1
0
I2
MUX 4×1
I3
a
b
: 3مثال F)A , B ,C( = ∑m)1, 2 , 4 , 5 ,6(
I0
I1
a b c
F
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
I0 = b
b c 00 a
c
01 11
10
0
1
1
I0
1
1 1
1
I1
I1= b + c = bc b I0 MUX c I1
2×1 s0 a
F
I0
I1
I2
I3
a
b
c
d
F
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
: 4مثال F)A , B , C , D( = ∑ m)1 , 3 , 5 , 6 , 7 , 10 , 11 , 15( c d 00 a b
0
1
0
0
1
00
0
1
0
1
1
01
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
01
11
1
1
1
1
11
1
10
1
10
I0=d I1= d+c I2=C I3= cd
I0 1
I1 I2
1
I3
: 4مثال d c
I0 I1 I2
MUX
4×1
I3
a
b
F
دي مالتي پلكسر) پخش كننده داده ورودي( يك مدار منطقي تركيبي كه خط را به يك خط ورودي را به يكي از nخط خروجي وصل مي كند خط خروجي خاص با يك كد انتخاب sبيتي معين مي شود كه:
≤ n
s
2
در اين حالت كد انتخاب براي توليد مينترم هاي sبكار مي رود.
دياگرام عملياتي Y0 Y1
دي مالتي پلكسر
1بهn
Yn-1
s
1 2
كد انتخاب
ورود ي
دي مالتي پلكسر 1به 4با فعال ساز D Y0
E
Y1 فعال ساز Y2 Y3 m0 m1 m2 m3 2-to-4 Decoder
ورودي
مقايسه گرها مقايسه گر قطعه اي محاسباتي است كه اندازه نسسبي دو عدد دودويي را معيين مي كند. در يك مقايسه گر سه تصميم كامل ديكد شده در مورد دو كلمه انجام و در خروخي ها قرار مي گيرند .يعني A>B , A>B , A=Bاگر
) A=(An-1
)B …B0 AB=(B n-1 n-2…A 0 n-2
دياگرام عملياتي A
F1 , A
2
مقایسگر مقدار B
2
F2 , A=B F3 , A
F1 =1, If AB
مثال :
F1 F2 F3
A1 A2 B2 B2
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
كلمه مقايسه گري طراحي كنيد دو 1 كه 0 0 0 B=(B1B0) 2
0) 2و A=(A1Aرا
در كد دودويي مقايسه
كند.
نقشه هاي كارنو F ,A=B 10
11
01
00
1
1 1 1
10
11
01
00
F1, A
2
00
00
1
01
1
1
11
1
1
10
01
1
11 10 10
11
01
1
1
1
1
1
00 00
01 11
1
10
F3, A>B
توابع خروجي
F1= A1 B1+ A1A0 B0+ A0 B1B0
For )A1A0(2 < )B1B0(2
F2=A1A0 B1B0+ A1A0 B1B0+ A1A0B1 B0+A1A0B1B0 F3=A1B1+A1B1B0+A1A0B0
For )A1A0(2 = )B1B0(2
For )A1A0(2 > )B1B0(2
تحقيق منطقي يك مقايسه گر دو بيت A1 F3 B1
A2 F1 B2
F2
Seven Segment Displayمثال
: L1 L 4
L 6 L2
L 5
L 7 L3
L1 L 4
L 6 L2
L 5
L 7 L3
B3
B2
B1
B0
Val
L1
L2
L3
L4
L5
L6
L7
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
2
1
1
1
0
1
1
0
0
0
1
1
3
1
1
1
0
0
1
1
0
1
0
0
4
0
1
0
1
0
1
1
0
1
0
1
5
1
1
1
1
0
0
1
0
1
1
0
6
1
1
1
1
1
0
1
0
1
1
1
7
1
0
0
0
0
1
1
1
0
0
0
8
1
1
1
1
1
1
1
1
0
0
1
9
1
1
1
1
0
1
1
المنت :L4
:فصل ششم
مدارات ترتیبی
Latch
:
R
Q
Q
S
مفهوم
R
S
Q)t+1(
Q)t+1(
0
1
1
0
1
0
0
1
0
0
Q)t(
Q)t(
1
1
نامعین
نامعین
نمونه ی دیگر : O2
O1
B
A
1
1
0
0
0
1
1
0
1
0
0
1
1
1
نامعین نامعین
Q
Q
R
S
: CLKپالس های ساعت که باعث همگام سازی .مدار می شود
Q
R
CLK Q
S
انواع فلیپ فلپ :ها
RS, JK, T, D
فلیپRS
فلپ (Q)t+1
R
S
(Q)t
0
0
0
1
0
1
0
1
نامعین
1
1
جدول ) (مشخصه
Q Q
R S
CLK
)
انواع فلیپ فلپ ها( :ادامه فلیپ JK
فلپ (Q)t+1
K
J
(Q)t
0
0
0
1
0
1
0
1
(Q)t
1
1
جدول ) (مشخصه
Q Q
D
T
J K
CLK
)
انواع فلیپ فلپ ها( :ادامه فلیپ D ,T فلپ (Q)t+1
T
(Q)t
0
(Q)t
1
Q
T
Q
CLK
(Q)t+1
D
Q
D
0 1
0 1
Q
CLK
جدول ) (مشخصه
مثال:1
به کمک فلیپ فلپ JKیک فلیپ فلپ .Tبسازید
(Q)t+1 (Q)t
K 0
J 0
T 0
(Q)t
1
1
1 (Q)t (Q)t
J K
CLK
T
مثال: 2
به کمک فلیپ فلپ JKیک فلیپ فلپ . Dبسازید
(Q)t+1 (Q)t
K 1
J 0
0
(Q)t
0
1
1
not
D
(Q)t (Q)t
J K
CLK
D
مثال: 3
به کمک فلیپ فلپ Tیک فلیپ فلپ . JKبسازید
T
K
J
(Q)t
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
5
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
(Q)t+1
JK 10
11
1
1 1
01
00
(Q)t 0
1
(T = J Q)t( + K Q)t
1
مثال :3 ((ادامه
Q
J T
Q
K
CLK
مثال4
:به کمک فلیپ فلپ Dیک فلیپ فلپ . JKبسازید
مثال .n :5بیتی را با هم جمع کند ،به طوریکه درهرکلک پالس دو بیت داده شود مداری طراحی کنید که دو عدد A : a 3 a 2 a 1 a0 B : b 3 b 2 b 1 b0 i
C : s3 s 2 s1 s0
c
si (Q)t (Q)t
ai D
CLK
C
F.A.
( ) Full Adder
bi
روند تجزیه و تحلیل مدارات :ترتیبی مدار ترتیبی
X=0 State 2
X=0
X=1 State 1
X=1 State 3
X=0
X=1
توصیف رفتار و عملکرد مدار
مثال: 6
یک شمارنده بالشمار ( با ورودی ) 1و پایین شمار ( با ورودی ) 0
مشخص کردن حالت ها و ترسیم آن - (تعداد فلیپ فلپ ها ) تعداد حالت
0 01 0
1 1
10
00 0
1 1 0
11
= 2
:طراحی مدار های ترتیبی تجزیه و تحلیل طراحی
مدار جدول حالت S.D.
توصیف عملکرد S.D. (کمینه ( کاهش یافته تعداد حالت S.D. تخصیص مقدار به حالت
توصیف عملکرد (جدول حالت ( جدول تحریک ساده سازی کارنا
مثال : 7طراحی یک شمارنده دو بیتی بالشمار ( با ورودی ) 0و پایین شمار Carry ( با ورودی ،) 1خروجی به کمک فلیپ فلپ های) (JK
0/0 01 0/0
( ) State Diagram
1/0 1/0
10
00 1/1
1/0 0/0
11
0/1
جدول :تحریک K
J
S
R
T
D
(Q)t+1
(Q)t
X
0
0
X
0
0
0
0
X
1
1
0
1
1
1
0
1
X
0
1
1
0
0
1
0
X
X
0
0
1
1
1
مثال ( : 7ادامه ( log 4تعداد فلیپ فلپ ها : =2
رسم جدول حالت:
Q2)t(
Q1)t(
x
J2
K2
J1
K1
Z
0
0
0
0
1
0
X
1
X
0
0
0
1
1
1
1
X
1
X
1
0
1
0
1
0
1
X
X
1
0
0
1
1
0
0
0
X
X
1
0
1
0
0
1
1
X
0
1
X
0
1
0
1
0
1
X
1
1
X
0
1
1
0
0
0
X
1
X
1
1
1
1
1
1
0
X
0
X
1
0
Q2)t+1( Q1)t+1(
جدول کارنا: Q1)t( x 00 Q2)t( X 0
01
11
10
X
X
1
1 K2 = Q1)t(
x
01
X
Q1)t( x 00 Q2)t( 0
1
1
X
X
11
10
1
J2 = Q1)t(
1 X
X
x
‘1’
J1 K1
x
J2 K2
Q1)t( Q1)t(
Q2)t( Q2)t(
Z
مثال :8مداری ترتیبی طراحی کنید که در هر کلک پالس یک بیت هم مرتبه( همa ارزش ) ،از دو عدد مثل و .bرا دریافت کند و مجموع آنها را در خروجی نمایش دهد ورودی)ai, bi 2 : )بیت خروجی :حاصلs i جمع حالت :رقم C i+1 نقلی 10/0
00/0
01/0 11/0 1
0 00/1
11/1
01/1
10/1
مثال : 9مداری ترتیبی طراحی کنید که در هر کلک پالس یک بیت ازParityزوج ورودی دریافت نموده و را روی بیت دریافت شده در این کلک و بیت دریافت شده در کلک قبل ،در .خروجی نمایش دهد ورودی 1 :بیت خروجی 1:بیت p e حالت :بیت ما قبل
1/1
1/0 1
0/0 0
0/1
تمرین تمرین : 1مدار ترتیبی طراحی نمایید که در هر کلک پالس یکParityزوج را بیت از : ورودی گرفته ، بر روی سه بیت جاری ( این بیت و دو بیت ماقبل ) محاسبه نموده و در خروجی قرار دهد. تمرین : 2مداری ترتیبی طراحی Parityزوج را روی کلیه بیت های ماقبل نمایید که در هر کلک پالس و بیت جاری محاسبه کند. تمرین : 3مداری ترتیبی طراحی نمایید که در هر کلک پالس دو Parityزوج را بیت از ورودی گرفته، روی کل بیت های دریافت شده تا این کلک و خود این کلک در خروجی نمایش .دهد
کمینه کردن یک :State Diagram مثال 10 : اولین گام State :ها بر اساس خروجی ها دسته بندی
0/0
0/0
a
b 1/1
0/0
1/0
0/1 1/0
c
d
e 0/1 1/0
دومین گام:
خروج ی
حالت بعدی X=0 X=1
00 a
b
d
01 b
b
10 c
e
01 d 10 e
b
b, d X=0
X=0 X=1
0
0
c
0
1
c
1
0
b
c
0
1
c
e
1
0
c
X=1
b=b
c=c
c, e X=0
e=c
X=1
c=e
معادل:State Diagram 0/0
0/0
a
b 1/0
1/1
c 1/0 0/1
کمینه کردن یک (State Diagramادامه ) : مثال 11 1/1:
0/0 1/0
d
f 0/1
1/1
a
1/1 0/0
1/0
c
e 1/0
1/1
b 0/0
0/1
g
0/1
0/0
: 11 مثال (( ادامه حالت بعدی X=0
X=1
خروج ی X=0
X=1
1
0
10 a
b
c b
01 b
c b
d
0
1
01 c
c
e
0
1
00 d
d
f
0
0
00 e
e
g
0
0
11 f
g f
f
1
1
11 g
f
g
1
1
b, c X=0
X=1
c=c
d,e X=0
X=1
d=e
f, g X=0
g=f
X=1
f=g
معادل:State Diagram
0/0 1/1
0/1
a
b
0/1 1/0
d
f
1/0 0/0
1/1
مدارها :
.خروجی تابعی از ورودی و حالت است ( : )میلی mili )مور .: )morخروجی تابعی از حالت0/0است 0/0
b/ 0
a/ 0
1/0 0/0 1/1
c/ 1
1/0
تمرین تمرین : 1مداری ترتیبی طراحی کنید که به عنوان یک تشخیص دهنده ی الگو: ، الگوی بیتی 1101را تشخیص دهد وSetنماید .توجه داشته باشید که در هر کلک پالس یک بیت از به ازای آن خروجی را ورودی دریافت می شود. تمرین : 2مداری ترتیبی طراحی نمایید که با رشته بیت ورودی برخورد عددی داشته باشد و در صورتی که عدد دریافت شده ،مضرب .Setکند ،در غیر این صورت خروجی صفر باشد شمارنده ای طراحی کنید که به صورت زیر عمل شمارش را تمرین : 3 خروجی را 5بود، انجام دهد .در طراحی این مدار لزم است کلیه اصول ساده سازی برای نظرورودی در بار مانند ،دو مرحله حجمهر .کاهش 1در ورودی بگیرید ترکیبی را مدار .صفر عمل می کند 0 0 0 0 5 30 25 18 12 0
فصل 7 ثبات ها و شیفت رجیستر
فهرست مطالب طرح بلوک دیاگرامی ثبات طرح ساده یک ثبات با فیلیپ فلپ D طرح یک ثبات با فیلیپ فلپ Jkبه پایه Load طرح یک ثبات با پایه Loadو Clear شیفت رجیستربا فیلیپ فلپ D شیفت رجیستربا فیلیپ فلپ JK شمارنده
طرح بلوک دیاگرامی ثبات
...
...
{
input
}
Clk Increment Load Clear
output
Dطرح ساده یک ثبات با فیلیپ فلپ Input
Clk D Q’ Q
D
D
D
Q’ Q
Q’ Q
Q’ Q
Output
Load و پایهJKطرح یک ثبات با
فیلیپ فلپ 1 Load 1 I0 1 1 I1
I2
I0 I0’ I1
1
I1’
1
I2
1
I2’
1 I3 1
I3 I3’ Clk
J K
Q Q’
J K
Q Q’
J K
Q Q’
J K
Q Q’
Outpu t
Load 0 Load 0 I0 0 0 I1
I2
و پایهJKطرح یک ثبات با فیلیپ فلپ 0 0 0
0
0
0
0
0
0
0 I3 0
0 0 Clk
J K
Q Q’
J K
Q Q’
J K
Q Q’
J K
Q Q’
Outpu t
Clear Load
وLoad طرح یک ثبات با پایه Clear
I0
J K
Q Q’
I1
J K
Q Q’
I2
I3
Clk
J K
Q Q’
J K
Q Q’
Outpu t
تمرین: ثباتی طراحی کنید پایه سومی به نام Incrementداشته باشد.
D
شیفت رجیستربا فیلیپ فلپ Output
Input Clk
D
Q Q’
D
Q Q’
D
Q Q’
D
Q Q’
JK
شیفت رجیستربا فیلیپ فلپ Shift
Input
Clk
J K
Q Q’
J K
Q Q’
J K
Q Q’
J K
Q Q’
Outpu t
شمارنده سنکرون(هنگام):در این نوع تمام واحدهای ترتیبی مداربا یک Clkکار می کنند. آسنکرون(ناهمگام):در این نوع هر واحد Clk مجزایی دارد.
شمارنده
منظم
بال شمار
پائین شمار
نامنظم
شمارنده 3بیتی بیت
0
Q2 Q1 Q0 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
)شمارنده 3بیتی (ادامه بیت
1
Q2 Q1 Q0 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
)شمارنده 3بیتی (ادامه بیت
2
Q2 Q1 Q0 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
مدار یک شمارنده 3بیتی سنکرون Q ’Q Q ’Q Q ’Q
1
J K J K J K Clk
:مثالی از یک ماشین میلی X=0/Z=0
X=1/Z=1
S0
S2
X=1/Z=1
S1 X=1/Z=0
X=0/Z=0
S3 X=0/Z=0
X=1/Z=1
X=0/Z=1
:مثالی از یک ماشین میلی X=0/Z=0
X=1/Z=1
S0
S2
X=1/Z=1
S1 X=1/Z=0
X=0/Z=0
S3 X=0/Z=0
X=1/Z=1
X=0/Z=1
Present Next State Output State X=0 X=1 X=0 X=1 S0 S0 S1 0 1 S1 S2 S3
:مثالی از یک ماشین میلی X=0/Z=0
X=1/Z=1
S0
S2
X=1/Z=1
S1 X=1/Z=0
X=0/Z=0
S3 X=0/Z=0
X=1/Z=1
X=0/Z=1
Present Next State Output State X=0 X=1 X=0 X=1 S0 S0 S1 0 1 S1 S1 S2 1 1 S2 S3
:مثالی از یک ماشین میلی X=0/Z=0
X=1/Z=1
S0
S2
X=1/Z=1
S1 X=1/Z=0
X=0/Z=0
S3 X=0/Z=0
X=1/Z=1
X=0/Z=1
Present Next State Output State X=0 X=1 X=0 X=1 S0 S0 S1 0 1 S1 S1 S2 1 1 S2 S2 S0 0 1 S3
:مثالی از یک ماشین میلی X=0/Z=0
X=1/Z=1
S0
S2
X=1/Z=1
S1 X=1/Z=0
X=0/Z=0
S3 X=0/Z=0
X=1/Z=1
X=0/Z=1
Present Next State Output State X=0 X=1 X=0 X=1 S0 S0 S1 0 1 S1 S1 S2 1 1 S2 S2 S0 0 1 S3 S3 S1 0 1
مدل عمومی ماشین میلی: X1 X2 Xm
•• •
•• • Q1
Q1+
Z1 Z2 Zn D1
Q1
CK
Combinatorial Q2+ Circuit Q2
D2
Q2
CK
Q3
QK+
DK CK
Clock
QK
A More Complex Sequence Detector Design a sequence detector whose output Z is one if the input sequence is 010 or 1001
X= 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 Z= 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0 S(0) 1/0 0/1 S(01)
S(010)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0 0/1 S(01)
S(010)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1) 0/?
1/0
?
0/1 S(01)
S(010)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(010)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10)
?
1/?
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10) 1/0
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10) 1/0
?
0/?
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10) 1/0 0/0 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10) 1/0
?
0/0
1/? S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
S(01)
S(10) 1/0
?
0/0
1/1 0/?
S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-)
?
0/0
1/0
0/? S(0)
S(1)
1/0
0/0 0/1
0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
0/0
1/0
S(0)
S(1)
1/0
0/0 0/1
0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
0/0
1/0
S(0) 1/0 1/?
S(1)
?
0/0
0/1 0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
0/0
1/0
S(0)
S(1) 1/0
1/0
0/0
0/1 0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
0/0
1/0 1/?
S(0)
S(1) 1/0
1/0
0/0
0/1 0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
?
Mealy Sequence Detector Target Sequences: 010 1001
S(-) 0/0
0/0
1/0
S(0)
S(1) 1/0
1/0
1/0
0/0
0/1 0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Mealy Sequence Detector Target Sequences: 010 1001 S(-) 0/0
0/0
1/0
S(0)
S(1) 1/0
1/0
1/0
0/0
0/1 0/0
S(01)
S(10) 1/0 0/0
1/1 S(100)
Present Next State Output State X=0 X=1 X=0 X=1 S(-) S(0) S(1) 0 0 S(0) S(0) S(01) 0 0 S(1) S(10) S(1) 0 0 S(01) S(10) S(1) 1 0 S(10) S(100) S(01) 0 0 S(100) S(0) S(01) 0 1
Mealy Sequence Detector Present State S(-) S(0) S(1) S(01) S(10) S(100)
Next State X=0 X=1 S(0) S(1) S(0) S(01) S(10) S(1) S(10) S(1) S(100) S(01) S(0) S(01)
Output X=0 X=1 0 0 0 0 0 0 1 0 0 0 0 1
State
Code Q2Q1Q0 S(-) 000 S(0) 001 S(1) 010 S(01) 011 S(10) 100 S(100) 101
Mealy Sequence Detector Present State 000 S(0) S(1) S(01) S(10) S(100)
Next State X=0 X=1 S(0) S(1) S(0) S(01) S(10) S(1) S(10) S(1) S(100) S(01) S(0) S(01)
Output X=0 X=1 0 0 0 0 0 0 1 0 0 0 0 1
State
Code Q2Q1Q0 S(-) 000 S(0) 001 S(1) 010 S(01) 011 S(10) 100 S(100) 101
Mealy Sequence Detector Present State 000 001 S(1) S(01) S(10) S(100)
Next State X=0 X=1 001 S(1) 001 S(01) S(10) S(1) S(10) S(1) S(100) S(01) 001 S(01)
Output X=0 X=1 0 0 0 0 0 0 1 0 0 0 0 1
State
Code Q2Q1Q0 S(-) 000 S(0) 001 S(1) 010 S(01) 011 S(10) 100 S(100) 101
Mealy Sequence Detector Present State 000 001 010 S(01) S(10) S(100)
Next State X=0 X=1 001 010 001 S(01) S(10) 010 S(10) 010 S(100) S(01) 001 S(01)
Output X=0 X=1 0 0 0 0 0 0 1 0 0 0 0 1
State
Code Q2Q1Q0 S(-) 000 S(0) 001 S(1) 010 S(01) 011 S(10) 100 S(100) 101
Mealy Sequence Detector Present State 000 001 010 011 S(10) S(100)
Next State X=0 X=1 001 010 001 011 S(10) 010 S(10) 010 S(100) 011 001 011
Output X=0 X=1 0 0 0 0 0 0 1 0 0 0 0 1
State
Code Q2Q1Q0 S(-) 000 S(0) 001 S(1) 010 S(01) 011 S(10) 100 S(100) 101
Mealy Sequence Detector Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 Q2 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
X
Q0
Q1
Which Karnaugh map cells are don’t cares?
Mealy Sequence Detector Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 Q2 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 D2 =
X 1 1
1
X
X
X
X Q1
Q0
Mealy Sequence Detector X
Present Next State Output State X=0 X=1 X=0 X=1 + + + + + + Q2Q1Q0 Q2 Q1 Q0 Q2 Q1 Q0 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 Q2 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
1 1
1
X
X
X
X Q1
D2 = Q1X’ + Q2Q0’X’
Q0
Mealy Sequence Detector Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 Q 2 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
X 1
1
1
1
X
X
1
X
X
1
Q1
D1 =
Q0
Mealy Sequence Detector X
Present Next State Output State X=0 X=1 X=0 X=1 + + + + + + Q2Q1Q0 Q2 Q1 Q0 Q2 Q1 Q0 000 001 010 0 0 001 001 011 0 0 Q 2 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
1
1
1
1
X
X
1
X
X
1
Q1
D1 = X
Q0
Mealy Sequence Detector X
Present Next State Output State X=0 X=1 X=0 X=1 + + + + + + Q2Q1Q0 Q2 Q1 Q0 Q2 Q1 Q0 000 001 010 0 0 001 001 011 0 0 Q 2 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 D0 =
1 1
1
1
X
X
1
1
X
X
1
Q1
Q0
Mealy Sequence Detector Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 Q2 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
X 1 1
1
1
X
X
1
1
X
X
1
Q0
Q1
D0 = Q2 + Q1’X’ + Q1’Q0
Mealy Sequence Detector X
Present Next State Output State X=0 X=1 X=0 X=1 + + + + + + Q2Q1Q0 Q2 Q1 Q0 Q2 Q1 Q0 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
1 Q2
X
X
X
X Q1
Z=
1
Q0
Mealy Sequence Detector X
Present Next State Output State X=0 X=1 X=0 X=1 + + + + + + Q2Q1Q0 Q2 Q1 Q0 Q2 Q1 Q0 000 001 010 0 0 001 001 011 0 0 Q2 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1
1 X
X
X
X
1
Q1
Z = Q1Q0X’ + Q2Q0X
Q0
Mealy Sequence Detector Design Verification Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 110 ??? ??? ? ? 111 ??? ??? ? ?
D0 = Q2 + Q1’X’ + Q1’Q0 D1 = X D2 = Q1X’ + Q2Q0’X’ Z = Q1Q0X’ + Q2Q0X
Mealy Sequence Detector Design Verification Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 110 1?? 0?? ? ? 111 1?? 0?? ? ?
D0 = Q2 + Q1’X’ + Q1’Q0 D1 = X D2 = Q1X’ + Q2Q0’X’ X = Q1Q0X’ + Q2Q0X X 1 1 Q2
1
X
X
X
X Q1
Q0
Mealy Sequence Detector Design Verification Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 110 10? 01? ? ? 111 10? 01? ? ?
D0 = Q2 + Q1’X’ + Q1’Q0 D1 = X D2 = Q1X’ + Q2Q0’X’ X = Q1Q0X’ + Q2Q0X X
Q2
1
1
1
1
X
X
1
X
X
1
Q1
Q0
Mealy Sequence Detector Design Verification Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 110 101 011 ? ? 111 101 011 ? ?
D0 = Q2 + Q1’X’ + Q1’Q0 D1 = X D2 = Q1X’ + Q2Q0’X’ X = Q1Q0X’ + Q2Q0X X 1 1 Q2
1
1
X
X
1
1
X
X
1
Q1
Q0
Mealy Sequence Detector Design Verification Present Next State Output State X=0 X=1 X=0 X=1 Q2Q1Q0 Q2+Q1+Q0+ Q2+Q1+Q0+ 000 001 010 0 0 001 001 011 0 0 010 100 010 0 0 011 100 010 1 0 100 101 011 0 0 101 001 011 0 1 110 101 011 0 0 111 101 011 1 1 Q2
D0 = Q2 + Q1’X’ + Q1’Q0 D1 = X D2 = Q1X’ + Q2Q0’X’ X = Q1Q0X’ + Q2Q0X X
1 X
X
X
X Q1
1
Q0