פרויקט CircuitVerse

דף זה מכיל את הפרטים של פרויקט כתיבה טכנית שהתקבל בעונה של Google Docs.

סיכום הפרויקט

ארגון הקוד הפתוח:
CircuitVerse
כתב טכני:
קובצי DVD
שם הפרויקט:
איחוד ושיפורים של ספרים אינטראקטיביים של CircuitVerse
אורך הפרויקט:
אורך רגיל (3 חודשים)

תיאור הפרויקט

1 תקציר

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

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

מטרת ההצעה הזו היא לשתף פעולה עם המנטורים כדי ליצור הנחיות לתרומות, להכין תוכנית לפיתוח נושאים ולתרום לשיפור התוכן הקיים וליצירת תוכן חדש בהתאם לתוכנית הפיתוח.

2 המצב הנוכחי של הספר האינטראקטיבי

מאז שהפרויקט התחיל ב-Google Summer of Code 2019, הוא השיג צמיחה לא מנוהלת בעזרת קהילת הסטודנטים. הארגון עצמו מורכב בעיקר על ידי מפתחים, ולכן הם השתתפו ב-GSoD כדי לחפש עזרה חיצונית לשיפור הספר האינטראקטיבי. מפתחי הפרויקט זיהו שהספר דורש כרגע שכתוב של חלק מהמקטעים, הוספת תוכן חדש והפיכתו למפורט ומקיף יותר. יתרה מכך, הצוות מצפה לקבל, לאחר ה-GSoD, הנחיות לתרומות חדשות וגם "תוכנית ראשית" כללית לפיתוח התוכן.

3 מהי התרומה של הצעה זו

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

4 ניתוח של החלופות הזמינות

במספר פרויקטים של קוד פתוח בעלי מאפיינים דומים כבר פיתחו הנחיות לתרומות, כגון Wikibooks ([Help:Contributing], [Wikibooks:Policies and guidelines]), OpenStreetMap ([Organised Edit Guidelines]) או The Linux Documents Project ([LDP Author Guide]). אפשר להשתמש בדוגמאות האלה כדי ליצור הנחיות לפרויקט על סמך הניסיון של פרויקטים מוצלחים בקוד פתוח.

לצורך תוכנית הפיתוח של הנושא ניתן להשוות בין תוכניות הלימודים של קורסים פתוחים (למשל, [MIT Open Courseware]) לבין ספרי עיון על מעגלים לוגיים דיגיטליים, כולל ספרים פתוחים כגון [שיעורים במעגלים חשמליים - כרך 4 -דיגיטלי], [Wikibooks: מעגלים דיגיטליים: דיגיטלי] ו-[Wikibooks: Digital Directory]

[עזרה:תרומה] https://iw.wikibooks.org/wiki/Help:Contributing

[Wikibooks:מדיניות והנחיות] https://iw.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

[הנחיות לעריכה מאורגנת] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

[מדריך למחבר LDP] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

[הקורס הפתוח של MIT] https://ocw.mit.edu/

[שיעורים במעגלים חשמליים – כרך 4 -דיגיטלי] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

[Wikibooks: מעגלים דיגיטליים] https://iw.wikibooks.org/wiki/Digital_Circuits

[Wikibooks: DigitalElectronics] https://iw.wikibooks.org/wiki/Digital_Electronics

5 המבנה של המסמכים המוצעים

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

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

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

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

  • ייצוג באמצעות מספרים בינארטיים:
    • רמה בסיסית: מספרים בינאריים, כמויות שליליות, בסיסים אחרים, תכנות
    • רמה בינונית: [ללא תוכן ספציפי]
    • רמה מתקדמת: מודולים וטבעות
  • פעולות מתמטיות עם מספרים בינאריים:
    • רמה בסיסית: חיבור, חיסור, כפל, חילוק
    • רמה בינונית: אלגברה בוליאנית, פונקציות בוליאניות
    • רמה מתקדמת: אלגברות אחרות, פירוק Shannon
  • רכיבי SSI משולבים:
    • רמה בסיסית: סמלים, שערים לוגיים, טבלאות האמת
    • רמה בינונית: משפחות לוגיות, שערים אוניברסליים
    • רמה מתקדמת: התנהגות זמן (מודלים של תזמון, סכנות)
  • תכנון לוגי משולב:
    • רמה בסיסית: תיאור פונקציונלי, הטמעה
    • רמה בינונית: פונקציות קנוניות, k-מפות
    • רמה מתקדמת: משתנים שהוזנו במפה, קווין מקלסקי, ייצוג של קוביות בינאריות
  • רכיבי ה-MSA המשולבים:
    • רמה בסיסית: MUX, DEMUX, מקודד, מפענח, חצי אדר, הרחבה מלאה
    • רמה בינונית: פונקציות מבוססות MUX
    • רמה מתקדמת: [ללא תוכן ספציפי]
  • רכיבי LSI משולבים:
    • רמה בסיסית: ROM, ALU
    • רמה בינונית: PLDs (PLA, PAL, GAL)
    • רמה מתקדמת: [ללא תוכן ספציפי]
  • רכיבי SSI ברצף:
    • רמה בסיסית: בריחים, כפכפי אצבע, אותות שעון, דיאגרמות זמן
    • רמה בינונית: משוב זיכרון, מערכות סינכרוניות, מערכות אסינכרוניות
    • רמה מתקדמת: [ללא תוכן ספציפי]
  • רכיבי IS רציף:
    • רמה בסיסית: רישומים, מונים
    • רמה בינונית: [ללא תוכן ספציפי]
    • רמה מתקדמת: [ללא תוכן ספציפי]
  • עיצוב רציף:

    • רמה בסיסית: [ללא תוכן ספציפי]
    • רמה בינונית: סינתזת רצף, FSM (מלי, מור), דיאגרמות מדינה, מזעור מצב, הקצאת מדינות, תנאי גזע
    • רמה מתקדמת: תכנון מבוסס-MSI, תכנון מבוסס LSI, תרשימי זרימה, דיאגרמות MDO

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

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

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

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

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

6 שערים

  1. יוצרים טיוטה ראשונה של הנחיות לתרומות לפרויקט של הספר האינטראקטיבי.
  2. התווה פיתוח לנושאים שמופיעים בספר.
  3. לשכתב תוכן נוכחי ולבנות אותו מחדש.
  4. יוצרים תוכן חדש בהתאם לתוכנית הפיתוח.

7 צירי זמן

שבוע 1: (14 בספטמבר עד 20 בספטמבר) מנתחים ודון עם המנטורים לגבי ההנחיות הטובות ביותר על סמך דוגמאות מפרויקטים אחרים ועל סמך הניסיון שצברתם עד כה בפרויקט. שבוע 2: (21 בספטמבר עד 27 בספטמבר) כתיבת טיוטה של ההנחיות שבוע 3: (28 בספטמבר עד 4 באוקטובר) דיון על טיוטה של תוכנית לפיתוח נושא עם מנטורים. שבוע 4: (5 באוקטובר עד 11 באוקטובר) כתיבת תוכנית פיתוח. שבועות 5 עד 11: (12 באוקטובר עד 29 בנובמבר) כותבים את התרומות, שמכילות תוכן ששונה וגם נושאים חדשים. שבוע 12: (30 בנובמבר – 5 בדצמבר) הגשת דוח פרויקט. הערכת הפרויקט: (3 בדצמבר עד 10 בדצמבר) - הגשת הערכה על ידי כותב טכני. - הגשת הערכה למנטורים.

8 מדוע הספר האינטראקטיבי של CircuitVerse

בעקבות משבר הקורונה (COVID-19) העולמי, התחלתי לחפש מקורות מידע אונליין שיעזרו לתלמידים שלי בקורס לתואר ראשון במערכות לוגיקה דיגיטליות. אני מקדמת את השימוש בטכנולוגיות קוד פתוח בחינם של Libre במשך כמה עשורים, ולכן הענקתי עדיפות לפרויקטים כאלה. מצאתי את הסימולטור של CircuitVerse והחלטתי שהוא כלי מצוין להשלים את המחסור בפעילויות מעבדה עקב אמצעי הבלימה של האוניברסיטה שלנו למניעת התפשטות נגיף הקורונה (COVID-19). כשבדקתי את הסימולטור, מצאתי גם את הספר האינטראקטיבי שלו, ולמרות שהתוכן עדיין לא היה מקור המידע העיקרי בקורס שלם בנושא מערכות לוגיקה דיגיטליות, התוכן הנוכחי שלו היה נכון וקל להבנה, לכן הוספתי אותו למשאבי הלמידה.

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

9 מקורות מידע

  • [עזרה ב-Wikibooks:תרומה],
  • [Wikibooks:מדיניות והנחיות]
  • [הנחיות לעריכה מאורגנת של OpenStreetMap]
  • [המדריך למחבר של פרויקט מסמכי התיעוד של Linux (LDP)]
  • [מעבדת מבוא למערכות דיגיטליות ב-MIT קורס פתוח של MIT]
  • [שיעורים במעגלים חשמליים – כרך 4 -דיגיטלי]
  • [Wikibooks: מעגלים דיגיטליים]
  • [Wikibooks: אלקטרוניקה דיגיטלית]
  • [פרויקט העלון של Linux]

    [עזרה ב-Wikibooks:תרומה] https://iw.wikibooks.org/wiki/Help:Contributing

    [Wikibooks:מדיניות והנחיות] https://iw.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [הנחיות לעריכה מאורגנת של OpenStreetMap] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

    [המדריך למחבר של פרויקט מסמכי התיעוד של Linux (LDP)] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [מבוא למעבדות דיגיטליות למערכות דיגיטליות של MIT ] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/syllabus/

    [שיעורים במעגלים חשמליים – כרך 4 -דיגיטלי] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks: מעגלים דיגיטליים] https://iw.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks: DigitalElectronics] https://iw.wikibooks.org/wiki/Digital_Electronics

    [פרויקט העלון של Linux] http://lbproject.sourceforge.net/