מערכות ספרתיות: תכנון מערכת לוגית באמצעות רשת מחזורית של תאים זהים

הדלפות מחדר החקירות - ראיון עבודה בתחום אלקטרוניקה ספרתית

תחומי המערכות הספרתיות ותכן לוגי הינם תחומים מורכבים הדורשים מיומנות רבה, עם זאת תחום זה הינו בעל הנפח הגדול ביתר בתחום התעסוקה הנדסת אלקטרוניקה הן מבחינת מספר מהנדסי האלקטרוניקה המועסקים בו והן מבחינת השכר. החברות המובילות בארץ במספר מהנדסי תכן לוגי הן Intel, Melanox,Ceragon והתעשיות הביטחוניות.

בבואכם לחפש עבודה בתחום, לעיתים קרובות תישאלו שאלות בנושא תכנון לוגיקה. במאמר זה נכיר שיטה יעילה לתכנון לוגיקה באמצעות רשת תאים הניתנת לשרשור לצורך הגדלת מרחב הפעולה נפוצה מאוד בשרשור מסכמים (full adder). במאמר זה נרחיב את התחום לנושאים נוספים. שיטה זו עשויה לעזור לכם בראיונות עבודה וכן במבחנים במערכות ספרתיות בלימודי התואר במוסדות האקדמיים.

המשימה

תכנן מעגל באמצעות לוגיקה צרופה (No clock, No Flip-flop) המקבל במקביל מילה בת 4 ביט ומוציא את מספר האפסים מהביט היותר משמעותי ועד ה1 הראשון. אין להשתמש ב-(full-adder or look-up table)

השיטה לתכנון מערכת כזו היא בניית רשת מחזורית של תאים זהים.

למעשה עלינו לתכנן מערכת לוגית של מכונת מצבים סופית. כל תא מקבל ביט בודד של המילה ואת היציאות של התא שקיבל ביט בעל עדיפות גבוהה יותר.

תחילה עלינו למצוא את מספר המצבים של המערכת, נמצא זאת באמצעות מרחב היציאה של המערכת.

  • המספר המזערי היוצא  מהמערכת הוא 0 כאשר הכניסה היא "1111"
  • המספר המרבי היוצא מהמערכת הוא 4 ("100") כאשר הכניסה "0000"

כלומר נדרשים לפחות 5 מצבים, אך בפועל נדרשים מצבים נוספים.

תא המעביר לבא אחריו את מספר האפסים, נדרש להעביר בנוסף למספר האפסים תווית אם התוצאה סופית, כלומר האם הופיע כבר ביט בערך 1 בכניסות המידע. לכן נגדיר, יציאות תא:

  • {(שני ביטים המציינים את מספר האפסים עד ל1 הראשון),(ביט המציין אם הופיע 1)} כאשר הביט המשמעותי יותר משמאל והפחות משמעותי מימין.
  • כניסות תא מקושרות ליציאות התא הקודם בהתאמה, משתמע: {(שני ביטים המציינים את מספר האפסים עד ל1 הראשון),(ביט המציין אם הופיע 1)} כאשר הביט המשמעותי יותר משמאל והפחות משמעותי מימין.

השרטוט למטה מתאר את המערכת כאשר A(i)  מציינים את ביטי כניסות המידע.

מערכות ספרתיות

הוספת התווית באורך ביט בודד מגדירה את אורך המילה המועברת בין תא לתא ל-3 ביטים:

{(שני ביטים המציינים את מספר האפסים עד ל1 הראשון),(ביט המציין אם הופיע 1)} ולכן מספר המצבים הוא

2^3=8 

כניסות התא מגדירות את מצב התא מקביל לחלוטין למצב מכונת מצבים סינכרונית!

הגדרת התווית במתכונת זו מאפשרת שיציאות התא האחרון יציינו במדויק את מספר האפסים עד ל-1 הראשון, שכן אם מספר האפסים קטן מ 4 התווית תהיה 0 (תווית מתחלפת ל-0 כאשר 1 מופיע בכניסה), לחילופין אם לא הופיע 1 התווית תישאר 1 ושאר הסיביות יקבעו ל-0 כלומר היציאות יציינו "100"  כמוראה בטבלאות האמת. הטבלאות למטה מתארות את המצבים:

מערכות ספרתיות

בטבלאות הבאות נפשט את הפונקציותQ(2),Q(1),Q(0)  באמצעות מפת קרנו.

מערכות ספרתיות

כעת ניתן לשרטט את התא הכללי

מערכות ספרתיות

למבקשים לממש מערכת זו בורילוג

A: המספר הבינארי הנכנס למערכת
Q: היציאה המגדירה את מספר האפסים עד ה-1 הראשון כולל ביט התווית.

כאשר מגדירים כניסות מודול בדיוק באופן הבא:

module IterativeNetwork(
                A,
                Q
);

Input  wire          [3:0] A;
Output  wire       [2:0] Q;

 

ניתן להריץ TB הנמצא בקישור הבא
כך ניתן לבדוק את תקינות התכנון.

 

 

בתוכנית הבדיקה נעשה שימוש בנוסחה 

 

 

2**(Amsb+1-Q)-1

כאשר Q היציאה מהתא האחרון מגדיר את מספר האפסים עד ה "1" הראשון  אם היה כזה.

 

לדוגמא, עבור Q=2, Max=0011, המספר המרבי המאפשר את Q הוא 3

 

מערכות ספרתיות