החלפת ספריות

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

אני אתאר לעצמי שיש לנו שני קבצים, בשם master.circ ו-query.circ. כל קובץ מכיל מעגל בשם Adder2 (חשוב שהמעגל לבדיקה יקרא בדיוק בשם אותו הדבר), שהמראה שלו הוא הבא.

Adder2 ב-master.circ Adder2 ב-query.circ
######### #########

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

אנו בונים את מעגל הבדיקה שלנו לקובץ אחר test.circ. שם, אנחנו מעמיסים master.circ כספריית Logisim | פרויקט || טען ספריה || ספריית לוגיסים |, ואנחנו מכניסים את המוסיף 2-bit שלה כקובץ תת-מעגל. נוכל לבצע מעגל זה ישירות כדי לקבל את הפלט הרצוי לפתרון מושלם.

java -jar logisim-evolution.jar test.circ -tty table

אבל אנחנו רוצים להפעיל את המעגל באמצעות query.circ במקום master.circ בתור הספרייה הטעונה. הגישה הנאיבית תהיה לפתוח את Logisim ולטעון את הספרייה הזו במקום; או שאולי פשוט הסר את הקובץ master.circ ושנה את שם query.circ כדי לקבל את השם master .circ במקום זאת. אבל Logisim כולל אפשרות שימושית -sub שמחליפה זמנית אחת קובץ אחר במהלך אותה הפעלה - מבלי לבצע שינויים כלשהם בדיסק.

java -jar logisim-evolution.jar test.circ -tty table -sub master.circ query.circ

הפלט שתראה מזה מוצג להלן; זה כמובן שונה ממה שראינו בהסעיף הקודם מכיוון שהספרייה המשותפת לadder2 הייתה הוחלף במעגל הבדיקה בזה של query.circ שגוי.

a  b sum
00 00 000
00 01 001
00 10 010
00 11 011
01 00 001
01 01 000
01 10 011
01 11 010
10 00 010
10 01 011
10 10 100
10 11 101
11 00 011
11 01 010
11 10 101
11 11 100

הבא: אפשרויות אימות אחרות.