320 likes | 473 Views
Registers and Counters. יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב. מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם. Registers. יחידות סטנדרטיות המשמשות לאגירת נתונים בעזרת FF . מחזיקות את המשתנים אשר צריכים להיות זמינים (לולאות משתנה לולאה) מאפשרים "מבחר" פעולות:
E N D
Registers and Counters יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם
Registers • יחידות סטנדרטיות המשמשות לאגירת נתונים בעזרת FF. • מחזיקות את המשתנים אשר צריכים להיות זמינים • (לולאות משתנה לולאה) • מאפשרים "מבחר" פעולות: • הזזות "ימינה" "שמאלה" "מעגליות" • טעינה פשוטה ומהירה • מנייה "מעלה" "מטה" • משמשים ברכיבים המהירים ביותר • אבן היסוד של CPU • אוגרים ל-Integers ובדר"כ אוגרים נוספים ל- Floating Point ALU CU Arithmetic Logic Unit Control Unit
אוגר 4-bit עם טעינה מקבילית • שעון משותף • דורש טעינה כל פעם שהשעון
מימוש בעזרת SRFF LOAD = 0 אין שינוי ערך LOAD = 1 CLEAR איפוס אסינכרוני אוגר 4-bit עם טעינה מקבילית ועם בקרה
טעינה מקבילית עם בקרה -מימוש בעזרת DFF • כאשר Load = 0 כניסות DFFs מקבלות את היציאות והערך הקודם נשאר
מימוש לוגיקה סדרתית ע"י אוגרים CP ערך המצב הבא יציאות מעגל צירופי כניסות load = 1 clear = 1 • האוגר משמש כ"זוכר מצב" • המעגל הצירופי יכול להיות ממומש ע"י: • לוגיקה בדידה • רכיבים סטנדרטיים Select, Mux • יחידות זיכרון (ROM) • LOAD ו- CLEAR קבועים כך שאין השפעה חיצונית על האוגר
דוגמא: • שני משתני מצב B, A • משתנה כניסה X. • משתנה יציאה Y. טבלת המצבים
מימוש ע"י אוגר ושערים לוגים A D1 B D2 D3 לא בשימוש Y D4 L=1 C=1 X
אוגרי הזזה - Shift Registers • n ביטים – n יחידות של FF יציאה טורית כניסה טורית MSB LSB הזזה שמאלה SerialOutput (SO) SerialInput (SI) MSB LSB הזזה ימינה (defaults: 0 – pos 1 – neg ) יציאה טורית כניסה טורית MSB LSB הזזה מעגליתשמאלה MSB LSB הזזה מעגליתימינה • שימושים: • כפלים/חילוקים פשוטים • קודים (לינאריים) לתיקון שגיאות • הצפנות...
אוגרי הזזה - מימוש פשוט SO SI D Q D Q D Q D Q CP אוגר הזזה 4 ביטים אוגרי הזזה - העברה טורית • חיבור ה – SI של אוגר "מקבל" אל ה – SO של אוגר "מוסר". • דורש פעימות שעון כאורך האוגרים. שעון cp SO SI SO(B) אוגר הזזה A אוגר הזזה B CPI CPI בקרת הזזה Shift Control Word Time זמן מילה CPI T1 T2 T3 T4 A: B: SO(B):
0 0 0 1 0 0 0 1 0 0 0 1 Serial Input forRIGHT Shift
Serial Input for LEFT Shift 1 1 1 0 1 1 1 0 1 1 1 0
חיבור טורי ע"י אוגרי הזזה הזז מינה SO SI SR-A FA X S OP CP cp Y כניסה חיצונית Z C SI SR-B OP SO D FF Q cp אוגר הזזה - טעינה/בקרה clear • זמן החיבור כאורך האוגרים (1+). • DFF : שומר על ה Carry מהדרגה הקודמת • יש לאפס את DFF לפני תחילת החיבור הראשון • חיסכון בחומרה • האטה לעומת חיבור מקבילי • אות הבקרה צריך להיות "1" כל משך החיבור
מונים - Counters • מעגלים סדרתיים העוברים דרך סדרת מצבים נתונה מראש • Count Pulse – דופק מנייה • שעון או מקור חיצוני גורמים למעבר • טבלת המעברים: n מצבים • שורה i שורה i+1 • שורה n שורה 1 • דוגמא: מונה 3 סיביות בינאריות 000 111 001 • אין כניסות ויציאות • מעבר מתבצע כל דופק שעון • משמשים לתזמון, חלוק תדר וכו'... 110 010 101 011 100
טבלת עירור – מימוש בעזרת TFF • עבור מונים בינאריים כדאי להשתמש ב – TFF היות והפעולה הבסיסית הינה היפוך מצב. לדוגמא - עבור סיבית ה- least מתבצע היפוך כל פעימה טבלת עירור עבור מונה 3 ביט בינארי
TX1 = 1 • TX2 = X1 • TX3 = X1X2 X3 X2 X3 X1 TXi = Txi-1Xi-1 X2 מסקנה X1 באינדוקציה - עבור מונה בינארי בן i סיביות: Count Pulse TX3 TX2 TX1 T T T TX3 TX21 TX1 Q Q Q X3 X2 X1 “1” O3 O2 O1
מונים בינאריים - ניתוח שני Count Down מעברים 1 0 או 0 1 מתבצעים כאשר כל הביטים "הקודמים" הינם 00…0 Count Up מעברים 1 0 או 0 1 מתבצעים כאשר כל הביטים "הקודמים" הינם 11…1
מונים בינאריים - ספירה מעלה/מטה Count Up Count Down Ti = Ti-1Qi-1 Count Up Ti = Ti-1Q'i-1 Count Down T1 = 1 בכל "פעימה" -
1 10 0 0 0 00 0 0 11 0 0 00
מונה כללי – דוגמא בעזרת JKFF 000001 010 100 101 110 • 6 מצבים • 3 דלגלגים לא מנוצל פירוט לשורה ראשונה : J K C: 0 1 (Set OR Flip) 1 B: 0 0 (Reset OR Stay) 0 A: 0 0 (Reset OR Stay) 0
מימוש: B JA A C JA = B KA = B B KA A JB = C KB = 1 JC = B’ KC = 1 C A B C Q’ Q Q’ Q Q’ Q K J K J K J cp “1” “1”
דיאגרמת מצבים 000 111 001 110 010 101 100 011 100 000
מונים – סיכום Load Reset R L Clock Pulse Count C CP דוגמא – מנייה modulon: • נאתחל את המונה בערך X • נאפשר מנייה עד ערך X+n-1 • הערך X+n-1 יגרום לטעינה מחודשת או לאתחול של האוגר/מונה
דוגמא – מנייה מודולו 6: X=0 “1” 3 2 1 0 L R 01 2 3 4 5 Clock “1” C CP 3 2 1 0 “0” X=3 “1” 3 2 1 0 L R 3 4 5 6 7 8 “1” Clock C CP 3 2 1 0 0 0 1 1 טריק "מלוכלך": 6 01 2 3 4 5 “0” 3 2 1 0 L R Clock “1” C CP 3 2 1 0 אין השפעה
ניתוח – מיקרה 2 Load “3” Load “3” M 3 4 5 6 7 8 3 ... S 8 3 4 5 6 7 8 3 ... • נאתחל את המונה בערך 3 • נאפשר מנייה עד ערך 3+6-1=8 • הערך 8 יגרום לטעינה מחודשת של האוגר/מונה • מחזור מנייה 3 .. 8
Direct Preset: M0 S0 ניתוח – טריק "מלוכלך" Master Count-up “5 6” M 5 6 0 1 ... S 4 5 6 0 0 ... Slave Count-up Ends “5 6” מחזור מנייה של העבד (שעון למעלה): 0 1 2 3 4 5 0 1 2 3 ...
חיבור טורי – מימוש בעזרת JKFF • נתייחס אל הנשא מהדרגה הקודמת כאל מצב ונסתכל על טבלת העירור/מעברים Cn an bn Cn+1 Sn JQ = XY KQ = X’Y’ = (X+Y)’ S = XYQ • נוכל לממש את המחבר הטורי ע"י 2 אוגרי הזזה + JKFF + שערים בדידים
מימוש מסכם טורי ע"י JKFF SI הזז ימינה S SO=X SR - A CP Q J כניסה חיצונית K SR - B SO=Y Clear • בקרות J,K של JKFF תלויות רק ביציאות אוגרי ההזזה.