فصل چهارم

Download Report

Transcript فصل چهارم

‫به نام یگانه مهندس هستی‬
‫مدار منطقی‬
‫مهدی قدیری‬
[email protected]
[email protected]
logic circuit 4
1
‫فصل سوم‬
‫ساده سازی سطح گیت‬
‫‪2‬‬
‫‪logic circuit 4‬‬
‫ساده سازی سطح گیت‬
‫‪‬‬
‫در جبر بول تشخیص قدم بعدی مشکل است لذا ساده سازی بولی با‬
‫سعی و خطا همراه است‬
‫یک روش جایگزین‪ :‬جدول کارنو ‪Karnaugh‬‬
‫‪‬‬
‫جدول کارنو را می توان به عنوان معادل گرافیکی جدول درستی در نظر گرفت‪.‬‬
‫‪‬‬
‫‪y‬‬
‫’‪y‬‬
‫‪1‬‬
‫‪0‬‬
‫‪y‬‬
‫‪x‬‬
‫‪x' y ' x' y‬‬
‫‪0‬‬
‫‪xy' xy‬‬
‫‪1‬‬
‫’‪x‬‬
‫‪m0 m1‬‬
‫‪x‬‬
‫‪m2 m3‬‬
‫‪Two-variable map‬‬
‫‪3‬‬
‫‪logic circuit 4‬‬
‫جدول کارنوی سه متغیره‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫جدول کارنو دارای ‪ 8 ، 4‬یا ‪ 16‬خانه ( ‪ n‬متغیر ‪ 2n‬خانه) می باشد‪.‬‬
‫هر دو خانه مجاور تنها در یک متغیر تفاوت دارند‪.‬‬
‫لذا می توان با استفاده از قوانین جبر بول مجموع آنها را ساده کرد‪.‬‬
‫‪logic circuit 4‬‬
‫جدول کارنوی دو متغیره‬
y
y0
1
x
0 x' y ' x' y
x 1 xy' xy
y
x
0
x 1
y0
1
1
F1  xy
y
x
0
y0
x 1 1
1
1
1
F2  m1  m2  m3 
logic circuit 4
 x' y  xy' xy
5
‫قواعد ساده سازی به کمک جدول کارنو‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪6‬‬
‫یک های مجاور را طوری دسته بندی می کنیم که بزرگترین دسته ممکن ‪2m‬‬
‫تایی را ایجاد نماید مثال ‪ 8 ، 4 ، 2 ، 1‬و ‪....‬‬
‫‪ ‬تعداد اعضای دسته حداکثر و تعداد دسته ها حداقل باشد‪.‬‬
‫‪ ‬اضالع چپ و راست با یکدیگر و اضالع باال و پایین با یکدیگر مجاور می باشند‪.‬‬
‫‪ ‬دسته بندی را زمانی ادامه می دهیم که کلیه یک ها حداقل در یک دسته‬
‫بندی قرار گرفته باشند‪.‬‬
‫‪ ‬اشتراک یک ها در چند دسته بالاشکال است‪.‬‬
‫در هر دسته متغیرهایی را که در همه اعضای دسته مشترک می باشند را نوشته‬
‫و بین آنها عالمت ضرب می گذاریم‪ ( .‬اگر تنها یک متغیر باشد فقط همان متغیر‬
‫را می نویسیم‪).‬‬
‫بین جمالت هر دسته که در مرحله قبل بدست آمد عمل جمع قرار می دهیم‪.‬‬
‫‪logic circuit 4‬‬
‫جدول کارنوی دو متغیره‬
y
y0
y
1
x
0 x' y ' x' y
x 1 xy' xy
x
0
y0
x 1 1
1
1
1
F2  x  y
logic circuit 4
7
‫جدول کارنوی سه متغیره‬
F  (m2 , m3 , m4 , m5 )  x ' yz ' x ' yz  xy ' z ' xy ' z
1 ‫مثال‬
 x ' y ( z  z ')  xy '( z  z ')  x ' y  xy '
logic circuit 4
8
‫جدول کارنوی سه متغیره‬
F ( x, y, z )  (3,4,6,7)
m0
m4
m1
m5
m3
m7
2 ‫مثال‬
m2
m6
yz
xz'
logic circuit 4
9
‫جدول کارنوی سه متغیره‬
F ( x, y, z )  (0,2,4,5,6)
m0 m1 m3 m2
3 ‫مثال‬
m4 m5 m7 m6
logic circuit 4
10
‫جدول کارنوی سه متغیره‬
4 ‫مثال‬
F ( A, B, C )  A' C  A' B  AB' C  BC :‫ فرض کنید‬
.‫ را به صورت مجموع مینترمها بیان کنید‬F 
.‫ سپس با استفاده از جدول کارنو نتیجه را ساده کنید‬
A' C ( B  B' )  A' BC  A' B ' C
A' B (C  C ' )  A' BC  A' BC '
AB' C
BC ( A  A' )  ABC  A' BC
F ( A, B, C )  A' B' C  A' BC ' A' BC  AB' C  ABC
 (1,2,3,5,7)
logic circuit 4
11
‫جدول کارنوی سه متغیره (ادامه مثال ‪)4‬‬
‫)‪F ( A, B, C )  (1,2,3,5,7‬‬
‫‪12‬‬
‫‪m2‬‬
‫‪m3‬‬
‫‪m1‬‬
‫‪m0‬‬
‫‪m6‬‬
‫‪m7‬‬
‫‪m5‬‬
‫‪m4‬‬
‫‪logic circuit 4‬‬
‫جدول کارنوی سه متغیره‪ :‬مشاهدات‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یک مربع نشان دهنده یک مینترم است ← یک ترم سه متغیره‬
‫دو مربع همسایه ← یک ترم دو متغیره‬
‫چهار مربع همسایه ← یک ترم یک متغیره‬
‫هشت مربع همسایه ← تابع همیشه یک‬
‫البته در جدول کارنوی سه متغیره‬
‫‪13‬‬
‫‪logic circuit 4‬‬
‫جدول کارنوی چهار متغیره‬
‫‪14‬‬
‫‪logic circuit 4‬‬
‫جدول کارنوی چهار متغیره‬
F(w,x,y,z) = (0,1,2,4,5,6,8,9,12,13,14)
F  y ' w' z ' xz'
5 ‫مثال‬
1
logic circuit 4
15
‫جدول کارنوی چهار متغیره‬
Simplify F(A,B,C,D) = A' B' C' B'CD' A' BCD' AB'C'
6 ‫مثال‬
F  B' D'B' C' A' CD'
logic circuit 4
16
‫جدول کارنوی چهار متغیره‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یک مربع نشان دهنده یک مینترم است ← یک ترم چهار متغیره‬
‫دو مربع همسایه ← یک ترم سه متغیره‬
‫چهار مربع همسایه ← یک ترم دو متغیره‬
‫هشت مربع همسایه ← یک ترم یک متغیره‬
‫شانزده مربع همسایه ← تابع همیشه یک‬
‫البته در جدول کارنوی چهار متغیره‬
‫‪17‬‬
‫‪logic circuit 4‬‬
SOP ‫ و‬POS
:‫ را به دو صورت زیر ساده کنید‬F ( A, B, C , D)  (0,1, 2,5,8,9,10)‫تابع‬
sum of products (b) product of sums(a)
:‫ازترکیب یکها داریم‬
F  B ' D ' B ' C ' A ' C ' D
:‫ازترکیب صفرها داریم‬
F '  AB  CD  BD '
:‫سپس مکمل می گیریم‬
( F ') '  F 
AB  CD  BD '
 ( A ' B ')(C ' D ')( B ' D)
logic circuit 4
18
POS ‫ و‬SOP ‫پیاده سازی‬
SUM OF PRODUCT (SOP)
PRODUCT OF SUM (POS)
logic circuit 4
19
‫شرایط بی اهمیت (‪)don’t care‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪20‬‬
‫ممکن است برای بعضی از ترکیبات ورودی ها خروجی تابع مشخص نباشد‪ .‬لذا‬
‫مقدار بعضی از مینترمها مشخص نیست‪.‬‬
‫مینترمهایی که مقدار آنها مشخص نیست را ‪ don’t care‬می نامند‪ .‬یعنی‬
‫اهمیتی ندارد که خروجی تابع در این مینترم برابر ‪ 0‬است یا ‪.1‬‬
‫مقادیر مینترمهای بی اهمیت در جدول کارنا با ‪ x‬نشان داده می شوند‪.‬‬
‫بسته به شرایط مقدار مینترم را می توانیم ‪ 0‬یا ‪ 1‬فرض کنیم‪.‬‬
‫وجود شرایط بی اهمیت نشان دهنده مقدار درجه آزادی موجود در طراحی‬
‫مدار است و نقش مهمی در ساده سازی مدارات دیجیتال بازی می کنند‪.‬‬
‫‪logic circuit 4‬‬
‫مثال‪ :‬تابع زیر را ساده کنید‪.‬‬
‫‪21‬‬
‫شرایط بی اهمیت‬
‫)‪F (w, x, y, z)   (1,3,7,11,15)  d (0,2,5‬‬
‫‪logic circuit 4‬‬
Example:
NAND
‫فقط‬
‫سازی‬
‫پیاده‬
F ( x, y, z )  (1,2,3,4,5,7)
F  ( F ' )'  (( xy' x' y  z )' )'
F  xy' x' y  z
 (( xy' )'  ( x' y)'  ( z ' ))'
INVERT-OR
NAND
NAND-OR gates
2-level NAND gates
logic circuit 4
22
NAND ‫پیاده سازی فقط‬
logic circuit 4
23
AND-OR-INVERT ‫پیاده سازی‬
logic circuit 4
24
OR-AND-INVERT ‫پیاده سازی‬
logic circuit 4
25
XOR (EXCLUSIVE-OR) ‫گیت‬
x  y  xy' x' y
( x' y ' ) x  ( x' y ' ) y
xy' x' y
( xy)'  ( x' y ' )
logic circuit 4
26
‫زبان توصیف سخت افزاری ‪Verilog‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ Verilog‬یک زبان )‪ HDL (Hardware Description Language‬است که‬
‫سخت افزار را به صورت متنی توصیف می کند‪.‬‬
‫توابع بولی‪ ،‬دیاگرامهای دیجیتالی و مدارات پیچیده سخت افزاری را می توان‬
‫توسط ‪ Verilog‬مدل کرد و شبیه سازی نمود‪.‬‬
‫کاربردها‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪27‬‬
‫شبیه سازی دیجیتالی‪ :‬شبیه سازی ساختمان و رفتار یک سیستم دیجیتالی‪.‬‬
‫‪ ‬یک شبیه ساز کد ‪ HDL‬را ترجمه کرده و مقادیر خروجیها را بر اساس مقادیر ورودیها و‬
‫ساختار مدار یا سیستم دیجیتالی مشخص می کند‪.‬‬
‫‪ ‬لذا می توان قبل از ساخت مدار آنرا آزمایش کرد و خطا ها را رفع نمود‪.‬‬
‫سنتز دیجیتالی‪ :‬به پروسه پیدا کردن لیست قطعات (ترانزیستورها یا گیتها) و نحوه‬
‫ارتباط آنها از روی توصیف ‪ HDL‬یک سیستم دیجیتالی سنتز گفته می شود‪.‬‬
‫‪logic circuit 4‬‬
‫یک مثال ساده‬
module smpl_circuit(A,B,C,x,y);
input A,B,C;
port list
output x,y;
wire e;
and g1(e,A,B);
not g2(y, C);
or g3(x,e,y);
endmodule
logic circuit 4
28
‫تاخیر‬
//HDL Example 3-2
//--------------------------------//Description of circuit with delay
module circuit_with_delay (A,B,C,x,y);
input A,B,C;
output x,y;
wire e;
and #(30) g1(e,A,B);
or #(20) g3(x,e,y);
not #(10) g2(y,C);
endmodule
logic circuit 4
29
Stimulus to a design: test bench
//HDL Example 3-3
//---------------------//Stimulus for simple circuit
module stimcrct;
reg A,B,C;
wire x,y;
circuit_with_delay cwd(A,B,C,x,y);
initial
begin
A = 1'b0; B = 1'b0; C = 1'b0;
#100
A = 1'b1; B = 1'b1; C = 1'b1;
#100 $finish;
end
endmodule
logic circuit 4
30
‫خروجی شبیه سازی‬
‫‪31‬‬
‫‪logic circuit 4‬‬
HDL ‫جبر بولی در‬
x  A  BC  B' D
y  B' C  BC ' D'
//HDL Example
//-----------------------------//Circuit specified with Boolean equations
module circuit_bln (x,y,A,B,C,D);
input A,B,C,D;
output x,y;
assign x = A | (B & C) | (~B & D);
assign y = (~B & C) | (B & ~C & ~D);
endmodule
logic circuit 4
32