1 clockSkew - Technion moodle

‫תכן לוגי‬
‫תרגול ‪ClkSkew - 1‬‬
‫‪1‬‬
‫אפיונים דינמיים של ‪F .F‬‬
‫• ה‪ 7474 -‬הוא ‪ D-FF‬מסוג ‪ Edge triggered‬מושפע מעליית שעון‬
‫(כלומר ברגע שהשעון עולה בלבד) ‪ -‬היציאה ‪ Q‬מקבלת את ערך‬
‫הכניסה ‪ D‬במעבר השעון מ‪ '0' -‬ל‪.'1'-‬‬
‫‪2‬‬
‫נגדיר מספר מושגים חשובים‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫מעבר אקטיבי של השעון – מעבר בהחלפת השעון הגורר שינוי‬
‫ביציאה‪.‬‬
‫)‪ - tw(L) ,tw(H‬רוחב פולסי השעון‪ T=tw(L)+tw(H) .‬זמן המחזור‪.‬‬
‫‪ - tsetup‬משך הזמן שיש להחזיק את הכניסות קבועות לפני המעבר‬
‫האקטיבי של השעון על מנת שהיציאות יהיו נכונות‪.‬‬
‫‪ - thold‬משך הזמן שיש להחזיק את הכניסות קבועות אחרי המעבר‬
‫האקטיבי של השעון על מנת שהיציאות יהיו נכונות‪.‬‬
‫‪ -tpd‬זמן ההשהיה ממעבר השעון האקטיבי עד שהיציאה משתנה‪.‬‬
‫‪ - tcd‬הזמן לאחר מעבר השעון האקטיבי בו עדיין מובטח כי היציאה‬
‫לא השתנתה‪.‬‬
‫לרכיב יש שתי כניסות הפועלות ללא תלות בשעון (כניסות‬
‫אסינכרוניות)‪Q=0 ← Rd=0 ,Q=1← Sd=0 :‬‬
‫‪3‬‬
‫נגדיר מספר מושגים חשובים‪:‬‬
‫• כדי שישמרו תנאי ‪ setup‬ו‪ hold -‬נדרש‪:‬‬
‫‪T2>Thold‬‬
‫‪T1>Tsetup,‬‬
‫‪4‬‬
‫‪Fmax‬‬
‫תדר השעון המקסימלי המותר כך שהמערכת תתפקד נכון‪.‬‬
‫ניתן לפרק מערכת סינכרונית ל‪ 2 -‬חלקים‪:‬‬
‫•‬
‫•‬
‫–‬
‫–‬
‫–‬
‫פליפ‪-‬פלופים (המכילים את משתני המצב)‬
‫לוגיקה צירופית‬
‫מעבר אקטיבי של השעון גורם לזיכרון לשנות מצב‪ ,‬שינוי המצב "עובר"‬
‫דרך הלוגיקה וחוזר לכניסות הפליפ‪-‬פלופים (ככניסות למצב הבא)‪ .‬מכאן‬
‫שיש זמן מינימלי שיש לחכות בין ‪ 2‬מעברים אקטיביים עוקבים‪.‬‬
‫‪5‬‬
‫חישוב ‪Fmax‬‬
‫•‬
‫•‬
‫•‬
‫מחשבים מהו ‪ - Tmin‬זמן המחזור המינימלי כך שהמערכת‬
‫תתפקד נכון‪Tmin=1/Fmax ,‬‬
‫ל‪ Tmin -‬שלושה חלקים‪:‬‬
‫זמן ההשהיה של הזיכרון מהמעבר האקטיבי עד להתיצבות יציאותיו ‪-‬‬
‫–‬
‫‪( Tc→out‬למשל ב‪.) Tc→out=max{tpdHL,tpdLH} 7474 -‬‬
‫זמן ההתפשטות של המצב החדש דרך הלוגיקה עד לכניסות הזיכרון ‪.tpdcl‬‬
‫–‬
‫זמן ה‪ set-up -‬של הזיכרון‪.‬‬
‫–‬
‫כלומר מתחילים ממצב התחלתי נתון‪ ,‬כעת מתקבל מעבר אקטיבי של השעון‪,‬‬
‫ושואלים מתי ניתן לתת את המעבר האקטיבי הבא‪ .‬על מנת למצוא את ‪Tmin‬‬
‫יש לבצע את התהליך הנ"ל לכל המצבים של המערכת‪ .‬למזלנו‪ ,‬בד"כ ניתן‬
‫לראות מהם המצבים ההתחלתיים שיתנו ‪ Tmin‬גדול‪ ,‬ולבדוק רק אותם‪.‬‬
‫‪6‬‬
Fmax ‫דוגמה לחישוב‬
IN1
D1
Q1
7474
OUT
7408
IN2
D2
Q2
D3
Q3
7474
:7474 •
7474
CLK1
Tsetup=20ns, Thold=5ns
TpCQ= 40ns
Tpd=19ns
Tmin=tpd7474+tpd7408 +tsetup7474
Tmin=40+19+20=79ns
Fmax=1/Tmin=12.66MHz
7
7408 •
:‫• חישוב‬
‫תנאי ‪ Setup‬ו‪Hold-‬‬
‫‪ ‬תנאי ‪– Setup‬‬
‫יש לוודא כי המרחק בין עליות השעון מספיק ארוך‬
‫אם לא מתקיים‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫להאריך את זמן מחזור השעון (להקטין תדר)‬
‫להקטין השהייה לוגית על ידי הסרת חלק מהפונקציות‬
‫להקטין השהייה לוגית על ידי שימוש ברכיבים מהירים יותר‬
‫‪ ‬תנאי ‪– Hold‬‬
‫תלוי בנתונים של רכיבי המעגל‪ .‬אם לא מתקיים עלינו‬
‫לשנות את מבנה המעגל להוסיף השהיות‪.‬‬
‫‪8‬‬
Without CLK skew – Setup Conditions
X
B
A
Q0
D0
Y
FF0
CLKA
Q1
D1
C
Set Y=0,Z=1
FF1
X:0↑1
CLKB
Z
Clk A/B
tCD(FF0)
Q0
tPD(FF0)
tPD(C)
tSETUP(FF1)
tCD(FF1)
Q1
tPD(FF1)
9
FF0->FF1
tSETUP(FF0)
tPD(A+B)
FF1->FF0
Without CLK skew – Setup
Conditions
B
FF 0  FF1: Tmin  Tpd ( FF 0)  Tpd (C )  Tsetup ( FF1)
FF1  FF 0 : Tmin  Tpd ( FF1)  Tpd ( A)  Tpd ( B )  Tsetup ( FF 0)
A
D
QC
0
0
FF0
D
Q
1
1
FF1
 Tmin  TFF 0  FF 1 , TFF 1 FF 0
.‫ נבדוק על ה"מסלול הארוך" ביותר במערכת‬setup ‫=> תנאי‬
Tmin>Tpd(FF)+max {Tpd(CL)} + Tsetup
10
‫דוגמא מספרית – זמן מחזור‬
TCD
TPD
nand
2
22
nor
2
20
FF
5
40
TSETUP
THOLD
FF 0  FF1: Tmin  40  22  20
FF1  FF 0 : Tmin  40  22  20  20
20
5
 Tmin  102
FF 0  FF1: Tmin  Tpd ( FF 0)  Tpd (nand )  Tsetup ( FF1)
FF1  FF 0 : Tmin  Tpd ( FF1)  Tpd (nand )  Tpd (nor )  Tsetup ( FF 0)
 Tmin  TFF 0  FF 1 , TFF 1 FF 0
B
11
A
D
QC
0
0
FF0
D
Q
1
1
FF1
Without CLK skew – Hold Conditions (FF0->FF1)
X
B
A
Q0
D0
Y
C
Set Y=0,Z=1
FF0
CLKA
Q1
D1
FF1
X:0↑1
CLKB
Z
Clk A/B
tCD(FF0)
Q0
tCD(C)
Q1
12
tHOLD(FF1)
FF0->FF1
tHOLD(FF0)
tCD(FF1)
tCD(A)+tCD(B)
FF1->FF0
Without CLK skew – Hold
Conditions
FF 0  FF1: THold ( FF1)  Tcd ( FF 0)  Tcd (C )
FF1  FF 0 : THold ( FF 0)  Tcd ( FF1)  Tcd ( A)  Tcd ( B )
B
A
D
QC
0
0
FF0
D
Q
1
1
FF1

THold  min{Tcd ( FF 0)  Tcd (C ), Tcd ( FF1)  Tcd ( A)  Tcd ( B)}
.‫ נבדוק על ה"מסלול הקצר" ביותר במערכת‬Hold ‫=> תנאי‬
Thold<Tcd(FF)+min {Tcd(CL)}
13
Hold ‫דוגמא מספרית – תנאי‬
TCD
TPD
nand
2
22
nor
2
20
FF
5
40
TSETUP
THOLD
FF 0  FF1: 5  5  2
20
5
FF1  FF 0 : 5  5  2  2
FF 0  FF1 : THold ( FF1)  Tcd ( FF 0)  Tcd (nand )
FF1  FF 0 : THold ( FF 0)  Tcd ( FF1)  Tcd (nand )  Tcd (nor )
B
14
A
D
QC
0
0
FF0
D
Q
1
1
FF1
‫‪Clock Skew‬‬
‫• המשטר הדינמי מחייב הזנת שעון יחיד בו זמנית‬
‫לכל הרכיבים המתוזמנים במעגל‪.‬‬
‫• במקרים רבים נתקלים בקושי של מגבלות‬
‫פיזיקליות‪ ,‬והשעון מגיע בהפרשי זמן מסוימים‬
‫לחלקים שונים במעגל‪ .‬הפרש הזמן המכסימלי‬
‫נקרא "עוות השעון" )‪.(clock skew‬‬
‫‪B‬‬
‫‪A‬‬
‫‪Q‬‬
‫‪1‬‬
‫‪C‬‬
‫‪D‬‬
‫‪FF1‬‬
‫‪1‬‬
‫‪CLK‬‬
‫‪B‬‬
‫‪X‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪0‬‬
‫‪0‬‬
‫‪FF0‬‬
‫‪Y‬‬
‫‪CLK‬‬
‫‪A‬‬
‫‪Z‬‬
With CLK skew – Hold Conditions (FF0->FF1)
B
X
Set Y=0,Z=1
Q0
D0
Y
A
C
FF0
Q1
D1
X:0↑1
FF1
CLKA
CLKB
Z
Delay
A
Clk B
tskew
tCD(FF0)
Q0
tCD(C)
16
Q1
tHOLD(FF1)
tCD(FF1)
tPD(FF1)
With CLK skew – Hold Conditions (FF1->FF0)
X
B
A
Q0
D0
Y
FF0
Z
C
CLKA
tskew
Clk B
tCD(FF1)
Q1
tCD(A+B)
Q0
17
tHOLD(FF0)
Q1
D1
FF1
CLKB
Delay
Clk A
Set Y=0,Z=1
X:0↑1
With CLK skew – Hold
Conditions
.A ‫ עולה שעון‬t=0, t=T, …-‫•נניח כי ב‬
.B ‫ עולה שעון‬t=tskew, t=T+tskew, … -‫•בהתאמה ב‬
FF 0  FF1: tskew  THold  Tcd ( FF 0)  Tcd (C )
FF1  FF 0 : THold  tskew  Tcd ( FF1)  Tcd ( A)  Tcd ( B )
tskew ‫ עלולים לא להתקיים אם‬Hold ‫ תנאי‬,‫•מתוך התנאי הראשון‬
:‫גדול מדי‬
tskew  Tcd ( FF 0)  Tcd (C )  THold
‫ הרי‬,skew ‫ בהנחה שהמערכת עובדת ללא‬,‫•מתוך התנאי השני‬
.‫שהיא תעבוד גם עכשיו‬
18
tskew  Tcd ( FF1)  Tcd ( A)  Tcd ( B )  THold
With CLK skew – Setup Conditions (FF0->FF1)
B
X
Set Y=0,Z=1
Q0
D0
Y
A
C
FF0
Q1
D1
X:0↑1
FF1
CLKA
CLKB
Z
Delay
Tmin
A
tskew
Clk B
tPD(FF0)
Q0
tPD(C)
19
Q1
tSetup(FF1)
With CLK skew – Setup Conditions (FF1->FF0)
X
B
A
Q0
D0
Y
FF0
Q1
D1
C
CLKA
Z
Set Y=0,Z=1
FF1
CLKB
Delay
Tmin
Clk A
tskew
Clk B
tPD(FF1)
Q1
tPD(A+B)
20
Q0
tSetup(FF0)
X:0↑1
With CLK skew – Setup
Conditions
.A ‫ עולה שעון‬t=0, t=T, …-‫•נניח כי ב‬
.B ‫ עולה שעון‬t=tskew, t=T+tskew, … -‫•בהתאמה ב‬
Tpd ( FF 0)  Tpd (C )  Tsetup ( FF1)  Tmin  t skew
tskew  Tpd ( FF1)  Tpd ( A)  Tpd ( B )  Tsetup ( FF 0)  Tmin
?‫ יגדל או יקטן‬Tmin ‫•האם‬
?‫ שלילי‬tskew ‫•מה יקרה אם‬
21
:‫שאלת סיכום‬
‫ מהו התדר הגבוה האפשרי בו‬,‫עבור המערכת שנדונה מקודם‬
?skew ‫המערכת תפעל באופן תקין כאשר ניתן לקבוע ערך ל‬
TCD
TPD
nand
2
22
nor
2
20
FF
5
40
TSETUP
THOLD
20
5
?tskew ‫מה הערך המכסימלי והמינימאלי של‬
FF 0  FF1: tskew  THold  Tcd ( FF 0)  Tcd (C )
tskew  5  2  5  2
B
FF1  FF 0 : THold  tskew  Tcd ( FF1)  Tcd ( A)  Tcd ( B )
4  5  (5  2  2)  tskew
 4  tskew  2
22
A
D
QC
0
0
FF0
D
Q
1
1
FF1
TCD
TPD
nand
2
22
nor
2
20
FF
5
40
TSETUP
THOLD
20
5
:‫דוגמא מספרית‬
 4  tskew  2
?‫מה ההשפעה על זמן המחזור המינימאלי האפשרי‬
. skew ‫ קודם כל נחשב את זמן המחזור ללא‬
FF 0  FF1: Tmin  40  22  20
FF1  FF 0 : Tmin  40  22  20  20
 Tmin  102
‫ ונבדוק את ההשפעה‬tskew ‫ נבחר את הערכים הקיצוניים האפשריים של‬
.‫שלהם‬
tskew  2
tskew  4
23
40  22  20  Tmin  2
2  40  22  20  20  Tmin
40  22  20  Tmin  4
4  40  22  20  20  Tmin
Tmin  104
Tmin  98
‫מסקנה‪:‬‬
‫• בחירה נכונה של ‪ Skew‬יכולה לעיתים לשפר את‬
‫ביצועי המערכת‪.‬‬
‫תזכורת‪:‬‬
‫• ערכי ‪ skew‬שליליים פירושו שהשעון מגיע מהכיוון‬
‫ההפוך ביחס לכיוון הראשוני שיחסנו לו‬
‫(במקרה שלפנינו ‪ skew‬שלילי הוא כאשר השעון מגיע מימין במקום משמאל)‪.‬‬
‫‪24‬‬