Home

نرم‌افزار BATS

طراحیکننده توپولوژي مدارهاي آنالوگ درحوزة سيگنال‌كوچك و فركانس پايين

 

1        معماري نرم‌افزار BATS

      نرمافزاري که براي نشان دادن عملي بخشي از قابليت‌هاي مورد نظر در روش طراحي مبتني بر رفتار نوشته شده BATS[1] نام دارد. اين نرم‌افزار به كمك زبان برنامه نويسي Visual C++ 6 نوشته شده است. علت انتخاب اين زبان نيز سرعت زياد اجرا و نزديكي آن به زبانهاي سطح پايين، در عين برخورداري از ويژگي‌هاي شيء گرايي بوده است. بدون قابليت‌هايي نظير شيء گرا بودن زبان و امكان ايجاد واسط كاربر قوي، چنين برنامه‌هايي به سختي قابل پياده‌سازي و استفاده مي‌باشند. اين نرم‌افزار در حوزة سيگنال كوچك و فركانس پايين صورت مسئله را به كمك منوهايي از کاربر دريافت کرده و پاسخ را که حاوي توپولوژي‌هاي نهايي است در دو فرمت Schematic و Netlist به كاربر تحويل مي‌دهد. در طول انجام مراحل حل، توپولوژي‌هاي توليدي هر مرحله به كاربر ارائه مي‌شود و به اين ترتيب کاربر مي‌تواند محدوديت‌هايي از قبيل حذف ادامة حل شاخه‌اي از مسئله را به برنامه اعمال کند. تنها توپولوژي‌هايي به مراحل بعدي حل راه پيدا مي‌كنند كه كاربر اجازة ادامة حل آنها را داده باشد. استفاده از منوها براي تعريف مسئله و تنظيمات نرم‌افزار، کار با آن را بسيار ساده کرده است.

      معماري نرم افزار BATS در شکل 1 نشان داده شده است. بخش توليد کنندة توپولوژي موتور اصلي سيستم است که به کمک الگوريتم‌ها و دانش ذخيره شده، عمل توليد توپولوژي را از روي مدل رفتار پاية سطح اول انجام مي‌دهد. محتويات پايگاه دانش در فصل سوم معرفي شده‌اند.

شکل 1 معماري نرم افزار BATS

2           ويژگي‌هاي نرم‌افزار BATS

1-2      استفاده از ويژگي‌هاي برنامه‌هاي Visual در ايجاد ارتباط ساده تر با كاربر

     روش دريافت ورودي‌ها از كاربر و ارائه پاسخ به او و همچنين شكل كلي پوستة برنامه در ايجاد ارتباط ساده و سريع با كاربر مؤثر است. در نرم‌افزار BATS كاربر نيازي به يادگيري يك زبان جديد با قواعد دستوري خاص آن زبان ندارد و مشكلات ارتباطي او با نرم‌افزار بسيار كم خواهد بود. ظاهر معمولاً مشابه و به اصطلاح استاندارد برنامه‌هاي نوشته شده با زبان‌هاي برنامه‌نويسي visual نيز در برقراري سريعتر ارتباط ميان كاربر و نرم‌افزار مؤثر مي‌باشد. ايجاد يك پوستة كلي و واحد براي نرم‌افزار كار اضافه كردن قسمتهاي جديد و توسعة نرم‌افزار را با حفظ ظاهر فعلي و تنها با تكميل بخش‌هاي غير فعال فعلي ممكن مي‌سازد. كاربر نيازي به دانستن چگونگي كار با فايل‌هاي ورودي و خروجي نداشته و مديريت فايل‌ها و ارتباط آنها با هستة اصلي برنامه به عهدة خود نرم‌افزار مي‌باشد.

2-2 محدوديت پذير بودن فرايند حل در نرم‌افزارBATS

     همانطور كه اشاره شد فضاي پاسخ براي هر مسئله‌اي كه در حوزة قيود زباني داراي پاسخ باشد بينهايت است به اين معني كه مي‌توان با نامحدود درنظر گرفتن تعداد عناصر در توپولوژي‌هاي توليدي، عملاً بينهايت پاسخ بدست آورد كه شرايط مسئله را راضي مي‌كنند. مثلاً اگر در يك توپولوژي، فقط يك مقاومت موجود باشد، مي‌توان بينهايت توپولوژي كه از مقاومتهاي سري تشكيل شده‌اند را نيز معادل با همان توپولوژي اوليه درنظر گرفت. باطرح اين مسئله لزوم محدود كردن حوزة پاسخ هاي توليدي مشخص مي‌شود. پيش بيني عدم تكرار مسئله‌اي پيچيده‌تر از خود صورت مسئله در مدل رفتار پاية سطوح دوم به بعد در الگوريتم‌ها مي‌تواند به نحوي محدود كنندة حوزة پاسخ‌ها باشد و از توليد مدل‌هاي رفتار پايه با پيچيدگي بيش از حد مطلوب جلوگيري كند. علاوه بر آن، روشي كه در نرم‌افزار BATS براي جلوگيري از توليد پاسخ‌هاي نامطلوب و گستردگي بيش از حد فضاي پاسخ درنظر گرفته شده است بر مبناي تصميم كاربر قرار دارد به اين شكل كه توپولوژي توليدي در هر مرحله به كاربر نشان داده مي‌شود و تنها در صورت تمايل كاربر به ادامة حل مسئله در مسير توپولوژي ناكامل فعلي روند حل آن ادامه مي‌يابد. كاربر مي‌تواند در هر مرحله از ادامة حل مسئله در مسير فعلي جلوگيري كرده و حل مسئله را در انشعابي ديگر از مسيرهاي حل مسئله دنبال نمايد.

3-2           حل درختي مسئله و  استفاده از حداقل حافظه در ساختار بندي داده‌ها

     در الگوريتم‌هاي فصل سوم اشاره شد كه حل مسئله در چندين مرحله از اجراي الگوريتم‌هاي حل باعث ايجاد انشعاب و چند مسيرگي مي‌گردد. مدل رفتار پاية هر انشعاب از مسير حل توليد و براي مراحل بعدي نگهداري مي‌شود. در هر لحظه فقط يكي از چندين مسير ممكن مورد پردازش قرار مي‌گيرد. براي اينكه مشخص باشد كه مدل رفتار پاية فعلي مورد پردازش دركدام سطح از سلسله‌مراتب حل قرار دارد و از كدام مدل رفتار پاية قبلي منتج شده است نامي متشكل از تعدادي حروف الفباي لاتين به هر مدل رفتار پايه در هر سطح اختصاص داده شده است. با پيشروي در هر سطح از سلسله‌مراتب يك حرف به اين نام افزوده مي‌گردد. به عنوان مثال مدل رفتار پايه اي با نام abb نشان مي‌دهد كه اين مدل رفتار پايه در سطح سوم سلسله‌مراتب (تعداد حروف اين نام) قرار دارد و همچنين مدل رفتار پايه‌اي كه اين مدل از آن منشعب شده است ab نام داشته است. با اين نام گذاري، گستردگي مسيرهاي حل در گذر از هر سطح سلسله‌مراتب به سطح بعدي برابر حداكثر 26 انشعاب خواهد بود. در الگوريتم‌ها پيش بيني شده است كه اگر تعداد اين انشعاب‌ها از 26 بزرگتر باشد (كه با توجه به كوچك بودن كتابخانة عناصر چنين چيزي كمتر اتفاق مي‌افتد)، 26 انشعابي كه وزن تطبيق بالاتري نسبت به بقيه دارند براي ادامة مسير انتخاب شوند. انتخاب مدل رفتار پايه براي حل به كمك نام هر كدام و بر مبناي بزرگترين نام موجود انجام مي‌شود. نام‌هايي كه طول بيشتري دارند بزگتر هستند و در بين نام‌هاي با طول مساوي، بزرگتر يا كوچكتر بودن آنها با مقايسة اولين حرف از سمت چپ و به ترتيب، دومين حرف و ... انجام مي‌شود. در فايل خروجي هر مرحله از حل نيز نام مدل رفتار پايه درج مي‌گردد. وقتي از روي مدل رفتار پايه‌اي با نام فرضي adc مدل‌هاي رفتار پايه در سطح جديد سلسله‌مراتب ايجاد مي‌شوند، خود مدل رفتار پاية adc از حافظة سيستم پاك خواهد شد. اين كار باعث صرفه‌جويي بيشتر در حافظة اشغالي سيستم خواهد بود. به اين ترتيب اگر مسيرهاي حل مسئله را به شكل شاخه‌هاي يك درخت تصوركنيم، فقط سرشاخه‌ها در حافظة سيستم نگهداري مي‌شوند. ساختار داده هاي مورد استفاده در اين نرم‌افزار به گونه‌اي است كه رشته ها با طول مورد نياز توليد مي‌شوند و از قبل هيچ دادة با طول بيشينه در حافظه سيستم قرار داده نشده است. در موقع نياز مقاديري از حافظه به داده‌هاي موجود تخصيص يافته و در پايان كار اين حافظه‌ها به طور خودكار آزاد خواهند شد.

 

 

4-2 خروجي netlist/schematic

      خروجي هر مرحله از حل به‌صورت يك فايل حاوي netlist توپولوژي توليدي و پنجره‌اي است كه شكل توپولوژي توليدي تا اين مرحله را نشان مي‌دهد. اگر توپولوژي هنوز ناكامل باشد يعني واحد يا واحدهاي ساختماني مجهولي داشته باشد، كاربر با قبول يا عدم قبول توپولوژي فعلي اجازة ادامه يا توقف مسير حل در اين انشعاب را مي‌دهد. در صورتي‌كه توپولوژي نشان داده شده داراي واحد ساختماني مجهولي نباشد، شكل رسم شده به منزلة يكي از توپولوژي‌هاي نهايي توليد شده توسط نرم‌افزار خواهد بود. در اين حالت كاربر با قبول اين توپولوژي اجازة ادامة مسير حل در بزرگترين انشعاب پس از انشعاب فعلي را مي‌دهد.

     از آنجا كه توپولوژي توليدي در هر مرحله به كاربر ارائه مي‌شود و تصميم گيري در مورد ادامه يا توقف مسير حل در اين شاخه بر عهدة كاربر است، رسم شكل مدار از روي netlist باعث تصميم‌گيري سريعتر كاربر در قبول يا رد توپولوژي توليدي شده و سرعت كار با نرم‌افزار را به شدت افزايش مي‌دهد. لازم به ذكر است كه ارائه توپولوژي توليدي به شكل schematic در ساير نرم‌افزارها انجام نمي‌شود و از ويژگي‌هاي منحصر به فرد نرم‌افزار BATS به‌شمار مي‌رود.

5-2 سهولت افزودن عناصر جديد به كتابخانة عناصر

      براي افزودن عنصر جديد به كتابخانه عناصر كافيست مراحل زير انجام شود:

1-    مجموعه روابط علي عنصر را با الگوريتم توليد مجموعه روابط علي ارائه شده در فصل سوم از روي مجموعه معادلات توصيف كنندة رفتار عنصر توليد و به فايل مجموعه روابط علي كه يك فايل متني ساده است افزوده گردد.

2-    جدول قيود سيگنال كوچك و مجموعه قيود سيگنال بزرگ عنصر به فايل متني مجموعة قيود افزوده گردد.

3-    شكل مداري عنصر به بخش رسم كنندة توپولوژي مدارها افزوده گردد.

مراحل فوق همگي به سادگي قابل انجام هستند و به اين ترتيب با افزودن عنصري به كتابخانة عناصر مي‌توان مجموعه جواب‌هاي مطلوب را بزرگتر كرد.

از آنجا كه انتخاب عنصر از كتابخانه بر مبناي قيود و با استفاده از مجموعه قيود عنصر قرار داده شده در كتابخانه انجام مي‌گيرد، در مواردي كه نياز به كار با مجموعه عناصر محدود تري وجود دارد، براي حذف يك يا چند عنصر از كتابخانه كافيست كه آن عنصر از مجموعه قيود موجود در كتابخانه كنار گذاشته شود. به اين شكل عنصر از ميان عناصر قابل انتخاب حذف خواهد شد.

 

 



[1] Behavioral Analog Topology Synthesizer


مرجع

بخشی از پایان نامه خانم میترا دامغانیان


طراح نرم افزار

فرشید فرحت

Comments