לתוכנת עיצוב המעגלים שראיתי יש יכולת לנתב עקבות וכדומה באופן אוטומטי על גבי PCB.
אך מדוע אין לתוכנה זו אפשרות למקם רכיבים באופן אוטומטי על גבי PCB, כדי למזער את גודל הלוח הכולל?
האם זה פשוט מסובך מכדי להיות אוטומטי?
לתוכנת עיצוב המעגלים שראיתי יש יכולת לנתב עקבות וכדומה באופן אוטומטי על גבי PCB.
אך מדוע אין לתוכנה זו אפשרות למקם רכיבים באופן אוטומטי על גבי PCB, כדי למזער את גודל הלוח הכולל?
האם זה פשוט מסובך מכדי להיות אוטומטי?
לאחרונה תכננתי כמה מעגלי PCB והייתי מציע לך לא להשתמש במיקום אוטומטי או בנתב אוטומטי עבור המוצר הסופי שלך. (ל- Proteus יש מיקום אוטומטי.)
קודם כל - התוכנה שלך היא חכמה כמו תולעת אדמה בכל מה שקשור למיקום אוטומטי או ניתוב אוטומטי. במילים אחרות, זה מטומטם כמו תפוח אדמה.
ניתוב אוטומטי לא יידע איזה מיקום יביא לך דפוס עקבות טוב יותר שיאפשר לך לא רק ליצור עיצוב יעיל אלא גם למזער רעש במעגל. . באופן דומה ניתוב אוטומטי אינו יודע כי העברת רכיב מעט שמאלה או ימינה תאפשר לך לנתב מסלול בצורה טובה יותר. כלים אלה פשוט יתנו לך עיצוב הנכון בהתאם למעגל. אבל כשמדובר בביצועים בעולם האמיתי, הדברים שונים.
לדוגמא:
התוכנה שלך לא תכבד את המושגים האלה מכיוון שאלה לא מוזכרים בסכמה שלך. אתה תדע רק מתי ייצור לך את ה- PCB וזה לא עובד כמצופה כל הזמן. אני לא אומר שזה לא יעבוד. זה עשוי לעבוד, 90% מהפעמים, אבל אתה צריך לקחת בחשבון גם את אותם 10%.
ההצעות שלי הן שאתה צריך ללמוד כמה מושגים בעיצוב PCB ולנסות להציב ולנתב לבד. אתה תמיד יכול לפרסם את פריסת הסכמה והלוח שלך בפורומים ומומחים יתנו לך את דעתם / הצעותיהם.
לנתב שלי יש מיקום ותמיכה ב"חדרים ". בואו תוכלו לצייר אזורים ולהקצות חלקים ל"חדרים "מהסכמה. המיקום האוטומטי יקבץ אותם יחד בחדר אליו נקבע החלק. די בטוח שיש לו תמיכה במחבר הזה צריך לעבור גם למיקום זה. יש גם כלי שיכול לבצע מיקום ניתוק צימוד אוטומטי ובחירת חלקים / אופטימיזציה על בסיס תוצאות סימולציה. זה אמנם לא זול :) אבל כן עובד.
המיקום האוטומטי יכול לחסוך לך מעט זמן על ידי הצבת הכל ככה ביחד. אבל אני עדיין מעדיף לחקור את הסכימה על פני הפריסה במצב מקום.
בדיוק כמו הנתב האוטומטי אתה מוציא את מה שאתה מכניס מבחינת אילוצים וכמה טוב אתה יכול להשתמש בו. אם אתה פשוט מנסה להשתמש בנתב האוטומטי שלך מבלי להגביל אותו כראוי הוא פשוט עובר לכל מקום. כאשר אנו מוגדרים כראוי אנו משתמשים בו לניתוב נכון של חלקי DDR באורך גדול. על לוחות גדולים וצפופים הרבה יותר זה כמעט הכרח, ובוודאי דרישה לחנות שירותי פריסה שזקוקה למהירות. עם זאת, דברים אלה עשויים שלא להיות שווים עבור מישהו שעושה רק כמה לוחות קטנים בשנה.
דבר אחד שאתה לא שוקל הוא ש סכמטי אינו מכיל מספיק מידע כדי לפרוס לוח כראוי .
בעיקרון, פריסת ה- PCB דורשת התחשבות ולינה עבור כמה עשרות דרישות פריסה לחלק , שאף אחת מהן אינה מקודדת בתרשים. קחו בחשבון רק את הקבלים העוקפים. כדי שתהיה מערכת אוטומטית למקם כראוי את הקבל העוקף עבור כל רכיב, תצטרך שיהיו לך כמה הוראות נוספות על הסכימה שמכתיבות למפעיל אוטומטי שהעקבות בין שני הצמתים חייבת להיות מתחת לאורך מסוים.
ככל הנראה, אז תצטרך הנחיות נוספות כדי לקודד את ה עדיפות של מזעור האורך ברשתות שונות, משהו שיכתיב זוגות דיפרנציאליים / עכבה מבוקרת, עקבות שמירה (אם יש צורך) וכו '...
בעיקרון, ישנם הרבה משתנים נוספים המניעים את המיקום שבדרך כלל אינם מקודדים כלל במסמכים סכמטיים / עכברים.
יתר על כן, גם אם אתה מניח שיש לך את כל מגבלות העיצוב לעיל, הגודל העצום שטח הבעיה לפריסה משותפת הוא עצום. זה המקביל לניסיון לפתור משוואה עם אלפי תשומות, כאשר לכל קלט יש השפעה שונה ולא ליניארית על כל האחרים. למעשה, הבעיה בלתי ניתנת לביצוע מבחינה כוחנית. לפיכך כל פתרון חייב לכלול מנגנון היוריסטי כלשהו, שיש בו מורכבויות משלו.
באופן מציאותי, הסיבה העיקרית לכך שאין לפחות טובים יותר autorouters היא שיש פשוט אין שוק. שוק ה- EDA הוא קטן יחסית בהשוואה לשווקי תוכנה רבים אחרים בנישה, המיועדים למטרה מיוחדת, ואפילו המכשיר הראשי הטוב ביותר אי פעם אפילו לא יתקרב לפריסה אמיתית של אדם ממשי.
כשעומדים במערך משעמם במיוחד, בדרך כלל יש לי כמה פנטזיות לנסות לעצב את ה- Autorout שלי בעצמי, על ידי לעשות משהו עם שדות וקטוריים וחישול מדומה, אבל אפילו זה רק יתקרב לאופטימום מקומי, אלא בכלל. פריסה אופטימלית.
עוד בשנים 1974-1975 עבדתי במחלקת אוטומציה לעיצוב בהוניוול. הבעיה לא השתנתה מאז:
ישנן גישות מבוססות AI להתמודדות עם בעיות כאלה. עם זאת, בשלב מסוים, קל יותר למעצב פשוט לנסות דברים ולקבל משוב מהתוכנה לגבי קריטריוני העיצוב שהוא מעוניין בהם. לספר לתוכנות AI כל מה שאתה יודע יכול להיות משימה אינסופית, חסרת תודה. בסופו של דבר, התוכנה צריכה לספק לך, המעצב, ומכלול הפשרות שלך. הדרך הטובה ביותר לעבוד זה היא אם כן לראות זאת כשיתוף פעולה בין מעצב לתוכנה, כאשר המעצב מקבל את ההחלטות הסופיות. התוכנה יכולה לספק מידע על המאפיינים ויכולה להציע דרכים לשיפור מאפיין של עניין, והל נחקר את ההשלכות של שינוי.
אבל אני צופה שלעולם, לעולם, לא נראה פריסה אוטומטית לחלוטין - כל עוד יש לנו בני אדם שמסתכלים על התוצאה ואכפת להם.
לתוכנה שלי יש מיקום. רצתי את זה פעם אחת רק כדי לראות מה יקרה. הוא הלך ושואג דרך הלוח, והכניס את כל הרכיבים עליו. כשהסתכלתי על זה, חלקים היו בכל מקום. ה- IC היה בפינה אחת וכובע הניתוק שלו נמצא בשנייה. הדרך הקריטית זיג-זיג הלוך ושוב על פני הלוח.
הנקודה שלי כאן היא מיקום זה החלק הכי קשה בפריסה כדי להשיג נכון. ראשית יש אילוצים מכניים. מעצב ה- ME / התעשייה מעוניין שהמחבר / מתג / סיר / נורית / כל רכיב ממשק חיצוני אחר יירד מהלוח בנקודה מסוימת. רכיבים מסוימים עשויים להיות גבוהים מכדי להיות באזורים מסוימים בתוך המתחם. יתכנו חלקים במעגל שצריכים לשמור על פינוי מסוים לבידוד.
תוכנה יכולה להיות מוגדרת כך שתתמודד עם חלק מהגורמים הללו, אך היא לעולם לא תעשה עבודה טובה כל כך, או שתוכל לראות חזותית בעיות כמו שאדם יכול. בעולם מושלם, אם תקבל נכון את המיקום, תעשה ניתוב כוח, קרקע ונתיב קריטי, מעבר מהיר של המפעיל אוטומטי אמור להיות מסוגל לסיים את הפריסה.
השתמשתי בעבר במוצבים אוטומטיים, והם אכן מטומטמים כמו ערמת סלעים. הדבר היחיד שאליו אתה יכול להשתמש בהם בשפיות הוא להתיר ערימה של עקבות שכולן יובאו ללוח שלך באותו מקום עליו; כל דבר אחר הוא פשוט יותר מדי לשאול.