םינומו םירגוא – Registers & Counters

Download Report

Transcript םינומו םירגוא – Registers & Counters

‫אוגרים ומונים – & ‪Registers‬‬
‫‪Counters‬‬
‫לאגירת נתונים‪ ,‬ומורכבות‬
‫• יחידות סטנדרטיות המשמשות‬
‫מדלגלגים‪.‬‬
‫• הם מחזיקים את המשתנים אשר צריכים להיות זמינים בזמן‬
‫ריצת תכנית (למשל משתני לולאה)‪.‬‬
‫• מאפשרים מבחר פעולות‪:‬‬
‫ הזזות ימינה‪ ,‬שמאלה‪ ,‬מעגליות‬‫ טעינה פשוטה ומהירה‬‫ מנייה מעלה‪ ,‬מטה‬‫• משמשים כיחידות הזיכרון ברכיבים המהירים ביותר‪.‬‬
‫‪CPU‬‬
‫‪ALU‬‬
‫‪CU‬‬
‫‪Arithmetic Logic Unit‬‬
‫‪Control Unit‬‬
‫אוגר ‪ 4-bit‬עם‬
‫טעינה מקבילית‬
‫• שעון משותף‬
‫• יש טעינה כל פעם שהשעון‬
‫מימוש בעזרת‬
‫‪SRFF‬‬
‫‪ - LOAD = 0‬אין שינוי ערך‬
‫‪ - LOAD = 1‬טעינה‬
‫‪ - CLEAR = 0‬איפוס‬
‫אסינכרוני‬
‫אוגר ‪ 4-bit‬עם טעינה‬
‫מקבילית ועם בקרה‬
‫טעינה מקבילית עם בקרה ‪-‬מימוש בעזרת‬
‫‪DFF‬‬
‫מימוש מעגל סדרתי ע"י אוגרים‬
‫‪CP‬‬
‫ערך המצב הבא‬
‫יציאות‬
‫מעגל‬
‫צירופי‬
‫כניסות‬
‫‪clear = 1‬‬
‫‪load = 1‬‬
‫• האוגר משמש כ"זוכר מצב"‬
‫• המעגל הצירופי יכול להיות ממומש ע"י‪:‬‬
‫• לוגיקה בדידה‬
‫• רכיבים סטנדרטיים )‪(Mux, Decoder, etc.‬‬
‫• יחידות זיכרון (‪)ROM‬‬
‫• ‪ LOAD‬ו‪ CLEAR -‬קבועים כך שאין השפעה חיצונית על‬
‫דוגמה‬
‫• שני משתני מצב ‪,B‬‬
‫‪A‬‬
‫• משתנה כניסה ‪.X‬‬
‫טבלת‬
‫• משתנה יציאה ‪.Y‬‬
‫נוכחי‬
‫יציאה הבא המצבים‬
‫‪B‬‬
‫‪X‬‬
‫‪A‬‬
‫‪B‬‬
‫‪Y‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫' ‪A(t  1)  A t X t‬‬
‫‪A‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪B(t  1)  Bt  X t‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪Y(t)  Bt X t‬‬
‫מימוש בעזרת אוגר של ‪ 4‬ביט‬
‫‪A‬‬
‫‪D1‬‬
‫‪B‬‬
‫‪D2‬‬
‫‪D3‬‬
‫‪Y‬‬
‫‪D4‬‬
‫לא‬
‫בשימוש‬
‫‪L=1 C=1‬‬
‫‪X‬‬
‫אוגרי הזזה ‪Shift Registers -‬‬
‫הזזה‬
‫שמאלה‬
‫הזזה‬
‫ימינה‬
‫כניסה‬
‫טורית‬
‫יציאה‬
‫טורית‬
‫הזזה‬
‫מעגלית‬
‫שמאלה‬
‫הזזה‬
‫מעגלית‬
‫• ימינה‬
‫שימושים‪:‬‬
‫• כפלים‪/‬חילוקים פשוטים‬
‫• קודים (לינאריים) לתיקון שגיאות‬
‫• הצפנות‪...‬‬
‫יציאה‬
‫טורית‬
‫כניסה‬
‫טורית‬
‫אוגרי הזזה ‪ -‬מימוש פשוט‬
‫אוגר הזזה של ‪ 4‬ביטים‪:‬‬
‫‪SO‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪SI‬‬
‫‪CP‬‬
Serial Shift Register with Parallel Load
0 0
0 1
0 0
0 1
0 0
0 1
Serial Input for
RIGHT Shift
Serial Input for
LEFT Shift
1 0
1 1
1 0
1 1
1 0
1 1
‫חיבור טורי ע"י אוגרי הזזה‬
‫‪SO‬‬
‫‪X‬‬
‫‪S‬‬
‫‪Y FA‬‬
‫‪Z‬‬
‫‪C‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪FF‬‬
‫‪SI‬‬
‫‪SR-A‬‬
‫‪OP‬‬
‫‪cp‬‬
‫כניסה חיצונית‬
‫‪SO‬‬
‫‪SI‬‬
‫‪SR-B‬‬
‫‪OP‬‬
‫‪cp‬‬
‫‪clear‬‬
‫• זמן החיבור כאורך האוגרים (‪.)+1‬‬
‫• ‪ : DFF‬שומר את ה‪ Carry -‬מהשלב הקודם‪.‬‬
‫• יש לאפס את ה‪ DFF -‬לפני תחילת החישוב‪.‬‬
‫• חסכון בחומרה‪.‬‬
‫• האטה לעומת חיבור מקבילי‪.‬‬
‫הזז‬
‫מינה‬
‫‪CP‬‬
‫מונים ‪Counters -‬‬
‫• מעגלים סדרתיים העוברים דרך סדרת מצבים קבועה מראש‪.‬‬
‫• שעון או מקור חיצוני גורמים למעבר‪.‬‬
‫דוגמא‪ :‬מונה ‪ 3‬סיביות בינאריות‬
‫‪000‬‬
‫• אין כניסות ויציאות‬
‫‪111‬‬
‫‪001‬‬
‫‪110‬‬
‫• מעבר מתבצע כל דופק שעון‬
‫• משמשים בעיקר לבקרת‬
‫תזמון‬
‫‪010‬‬
‫‪101‬‬
‫‪011‬‬
‫‪100‬‬
‫מונה ‪ 3‬ביט – מימוש בעזרת ‪TFF‬‬
‫• עבור מונים בינאריים טבעי להשתמש ב – ‪ TFF‬היות והפעולה‬
‫הבסיסית הנה היפוך מצב‪.‬‬
‫טבלת עירור עבור מונה ‪ 3‬ביט בינארי‬
‫כניסות ‪FF‬‬
‫‪TX3 TX2 TX1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫סדרת מנייה‬
‫‪X3‬‬
‫‪X2‬‬
‫‪X1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
X3
TX1 = 1 (1
1 1
1 1
X2
TX2 = X1 (2
X3
X1
X2
1 1
TX3 = X1X2 (3
X1
i ‫ עבור מונה בינארי בן‬- ‫באינדוקציה‬
i -1
:‫סיביות‬
TX 1  1, TX 2  X1 , TX i   X j  X1X 2 
X i-2 X i-1
j1
TX3
T
Q
TX3
X3
O3
TX21
T
Q
TX2
X2
O2
TX1
T
Q
TX1
X1
O1
1
TX i  TX i-1  Xi-1 , TX1  1 :‫נוסחת רקורסיה‬
Count
Pulse
‫מניה מעלה ומניה מטה‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪‬‬
‫‪Count Up‬‬
‫מעברים ‪ 0  1‬או ‪1  0‬‬
‫מתבצעים כאשר כל הביטים מימין‬
‫הנם ‪11…1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪‬‬
‫‪Count Down‬‬
‫מעברים ‪ 0  1‬או ‪1  0‬‬
‫מתבצעים כאשר כל הביטים מימין‬
‫הנם ‪00…0‬‬
‫מניה מעלה‪/‬מטה‬
‫‪i -1‬‬
‫מניה ‪Ti   Q j  Q1Q 2 Qi-1‬‬
‫‪j1‬‬
‫מעלה‪:‬‬
‫‪i -1‬‬
‫מניה מטה‪:‬‬
‫‪Ti   Q  Q Q Q‬‬
‫'‬
‫'‬
‫'‬
‫‪i -1‬‬
‫‪2‬‬
‫‪1‬‬
‫'‬
‫‪j‬‬
‫‪j1‬‬
‫ביטוי בעזרת נוסחאות‬
‫רקורסיה‬
‫‪T1 = 1‬‬
‫מניה מעלה‪:‬‬
‫‪Ti = Ti-1Qi-1‬‬
‫מניה מטה‪:‬‬
‫‪Ti = Ti-1Q'i-1‬‬
Up Counter
Down Counter
‫‪Up-Down Counter‬‬
‫‪ - 00‬המצב נשמר‬
‫‪ - 10‬מניה מעלה‬
‫‪ - 01‬מניה מטה‬
‫‪??? - 11‬‬
‫מונה כללי – דוגמא בעזרת ‪JKFF‬‬
‫‪000001 010 100 101 110‬‬
‫• ‪ 6‬מצבים‬
‫• ‪ 3‬דלגלגים‬
‫‪‬‬
‫כניסות ה ‪FF -‬‬
‫‪JA K A J B K B JC K C‬‬
‫‪0  0  1 ‬‬
‫‪0  1   1‬‬
‫‪1   1 0 ‬‬
‫‪ 0 0  1 ‬‬
‫‪ 0 1   1‬‬
‫‪ 1  1 0 ‬‬
‫‪‬‬
‫סדרת מנייה‬
‫‪A‬‬
‫‪B‬‬
‫‪C‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫לא‬
‫מנוצל‬
:‫מימוש‬
B
0
A
JA = B
1
0

0

00

0
0
KB = 1
KC = 1
01
11


C
KA = B
JB = C
JC = B’
00
A
1
01


cp
Q
J
JA
10

1
KA
C
A
Q’
K
1

B
11

0
10
B
Q’
K
1
Q
J
C
Q’
K
1
Q
J
‫דיאגרמת מצבים‬
‫‪111‬‬
‫‪011‬‬
‫‪000‬‬
‫‪110‬‬
‫‪001‬‬
‫‪101‬‬
‫‪010‬‬
‫‪100‬‬
‫‪ JA JB JC KA KB KC‬מצב‬
‫‪011 1 1 0 1 1 1‬‬
‫‪111 1 1 0 1 1 1‬‬
‫‪100‬‬
‫‪000‬‬
‫מונים – סיכום‬
‫‪CP‬‬
‫איפוס ‪Reset -‬‬
‫פונקציה‪ /‬פעולה ‪LOAD COUNT‬‬
‫אפס‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪0‬‬
‫אין שינוי‬
‫‪0‬‬
‫‪0‬‬
‫‪‬‬
‫‪1‬‬
‫טען כניסות‬
‫‪‬‬
‫‪1‬‬
‫מנה (עבור למצב‬
‫הבינארי הבא)‬
‫‪1‬‬
‫‪‬‬
‫‪1‬‬
‫‪0‬‬
‫‪‬‬
‫‪Reset‬‬
‫‪R‬‬
‫‪L‬‬
‫‪Load‬‬
‫‪Count‬‬
‫‪C‬‬
‫‪CP‬‬
‫‪Clock Pulse‬‬
‫הכללה של מניה ‪modulo n‬‬
‫‪1‬‬
‫• נאתחל את המונה בערך ‪X‬‬
‫• נאפשר מנייה עד ערך ‪X+n-1‬‬
‫• הערך ‪ X+n-1‬יגרום לטעינה מחודשת או לאתחול של המונה‬
6 ‫ מניה מודולו‬:‫דוגמה‬
01 2 3 4 5
L 3 2 10R
Clock
CP 3 2 1 0 C
1
1
1 ‫מונה‬
1
1
2 ‫מונה‬
0
L 3 2 10R
3 4 5 6 7 8
Clock
CP 3 2 1 0 C
0 0 11
6
01 2 3 4 5
0
Clock
L 3 2 10R
CP 3 2 1 0 C
‫אין השפעה‬
1
3 ‫מונה‬
‫(טריק‬
)‫מלוכלך‬
‫ניתוח מונה ‪2‬‬
‫‪Load 3‬‬
‫‪Load 3‬‬
‫‪3 ...‬‬
‫‪8 3 ...‬‬
‫‪7‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪6‬‬
‫‪5‬‬
‫‪5‬‬
‫‪4‬‬
‫‪4‬‬
‫‪3‬‬
‫‪3‬‬
‫• נאתחל את המונה בערך ‪3‬‬
‫• נאפשר מנייה עד ערך ‪3+6-1=8‬‬
‫• הערך ‪ 8‬יגרום לטעינה מחודשת של המונה‬
‫• מחזור מנייה ‪8 .. 3‬‬
‫‪8‬‬
‫‪M‬‬
‫‪S‬‬
3 ‫ניתוח מונה‬
Master Count-up 5  6
M
S
5
Direct Preset: M0 S0
6
5
Slave Count-up Ends 5  6
0
60
1 ...
1