در این بخش از آموزش شما یاد میگیرید که چطور مدارات خود را در Kicad شبیهسازی کنید. در جامعه مهندسی توجه زیادی به شبیهسازی نمیشود درحالیکه در بسیاری از موارد انجام شبیهسازی قبل از پیادهسازی عملی مدار میتواند از بروز بسیاری از مشکلات جلوگیری کند. Kicad از موتور شبیهسازی مبتنی بر SPICE استفاده میکند که در تمامی نرمافزارهای دیگر مثل Altium هم روال به همین صورت است. برای شبیهسازی دو نوع مدل ریاضی IBIS و SPICE گزینههای موجود برای طراحان است. هرچند که مدل SPICE قطعات بسیار دقیقتر از مدل IBIS است؛ ولی تولیدکنندگان قطعات خیلی راغب نیستند که آنها را در اختیار عموم قرار دهند زیرا میتواند اطلاعات زیادی را از نحوه طراحی و ساخت قطعه به دیگران بدهد؛ بنابراین در اکثر مواقع تنها مدل IBIS قطعه در اختیار طراحان قرار میگیرد.
Kicad یک شبیهساز مدار الکتریکی نهفته را در اختیار شما قرار میدهد که در درون خود موتور ngspice را دارد. Ngspice یک شبیهساز Spice است که از برنامه Berkeley SPICE که به شکل گسترده در حال استفاده است گرفته شده است.
هنگامی که با شبیهساز کار میکنید ممکن است کتابخانه سمبل Simulation_SPICE که در حالت پیشفرض با Kicad نصب میشود سودمند باشد. این کتابخانه دارای المانهای رایج مثل منابع ولتاژ و جریان، منابع سیگنال DC و AC، یک مرجع زمین، المانهای مداری غیرفعال ایدهآل مثل مقاومتها، سلفها و خازنها و دیگر مدلهای قطعه نیمههادی است که برای شبیهسازی استفاده میشوند.
درحالیکه که این المانها انجام بسیاری از شبیهسازیها را ممکن میسازد؛ اما کاربران آشنا با SPICE در دیگر محیطها به استفاده از مدلهای نیمههادیهای تجاری موجود، مدارات مجتمع و دیگر قطعات مثل مدلهای SPICE پیچیده مبادرت خواهند کرد. بهطورقطع، تولیدکنندههای نیمههادی اغلب آزادانه این مدلها را تأمین میکنند تا به کاربران کمک کنند تا مدارات خود را با استفاده از قطعات آنها شبیهسازی کرده و توسعه بدهند. توجه کنید که kicad در سیستم توزیع خود دارای هیچگونه مدل SPICE تجاری نیست؛ اما درهرصورت شما آزاد هستید تا هر مدلی که دارید و یا با دیگر شبیهسازها استفاده کردهاید را در شبیهسازی Kicad استفاده کنید.
در کل، اگر مدلی با دیگر شبیهسازهای SPICE کار میکند آن مدل باید با شبیهساز Kicad نیز کار کند هرچند برخی از شبیهسازهای SPICE توسعههایی را پیادهسازی میکنند که توسط ngspice پشتیبانی نمیشوند. Ngspice چندین حالت سازگاری را بهمنظور بهبود سازگاری با دیگر شبیهسازها ارائه میکند.
در پایان بهمنظور نمایش سریع قابلیتهای شبیهساز Kicad برخی از پروژهها در فایلهای Kicad قرار داده شدهاند. آنها میتوانند در دایرکتوری demos/simulation یافت شوند.
شبیهساز از چندین علائم نشانهگذاری برای نوشتن مقادیر عددی پشتیبانی میکند:
شما میتوانید علائم علمی را با علائم پیشوند ترکیب کنید. برای مثال 3e-4k یک ورودی معتبری بوده و با مقدار 0.3 برابر است. لیست پیشوندهای معتبر در زیر نشان داده شدهاند. آنها حساس به حروف کوچک و بزرگ هستند.
|
پیشوند |
نام |
ضریب |
|
a |
atto |
10-18 |
|
f |
femto |
10-15 |
|
p |
pico |
10-12 |
|
n |
nano |
10-9 |
|
u |
micro |
10-6 |
|
m |
milli |
10-3 |
|
k |
kilo |
103 |
|
M |
mega |
106 |
|
G |
giga |
109 |
|
T |
tera |
1012 |
|
P |
peta |
1015 |
|
E |
exa |
1015 |
قبل از اینکه بتوانید مدار خود را شبیهسازی کنید شما باید مدلهای شبیهسازی را به سمبلهای خود تخصیص بدهید.
هر سمبل تنها میتواند یک مدل تخصیصیافته داشته باشد حتی اگر سمبل دارای چند واحد باشد. برای سمبلها با چندین واحد شما باید مدل را به اولین واحد اختصاص بدهید.
اطلاعات مدل Spice به شکل متن در فیلدهای سمبل ذخیره میشوند؛ بنابراین شما میتوانید آن را در ویرایشگر سمبل یا ویرایشگر شماتیک تعریف کنید. بهمنظور تخصیص یک مدل شبیهسازی به یک سمبل، پنجره Symbol Properties را باز کنید و روی Simulation Model کلیک کنید. این کار پنجره Simulation Model Editor را باز میکند.
شما میتوانید سمبلی را با زدن تیک exclude from simulation در پنجره Symbol Properties به طور کامل از شبیهسازی حذف کنید.
مدلهای مقاومت، سلف و خازن میتوانند استنتاج شوند که به این معنی است که Kicad تشخیص میدهد آنها المان غیرفعال بوده و به شکل خودکار یک مدل شبیهسازی مناسب را به آنها تخصیص میدهد؛ بنابراین آنها به هیچ تنظیم خاصی نیاز ندارند و تنها باید مقدار Value توسط کاربر در فیلد وارد شود.
Kicad بر اساس معیارهای زیر مدلهای شبیهسازی را نتیجهگیری میکند:
مدلهای استنتاجی مدلهای ایدهآل هستند. درصورتیکه شبیهسازی به یک مدل غیرایدهآل نیاز داشته باشد مثل یک سلف با احتساب خازنهای پارازیت آن، شما باید مدلی را تخصیص بدهید که این خازن پارازیت را اضافه میکند.
Kicad برخی از مدلهای شبیهسازی استاندارد را ارائه میدهد. آنها نیازی به یک فایل مدل خارجی نداشته و پارامترهایشان میتواند در GUI ویرایشگر مدل شبیهسازی Kicad ویرایش شوند. قطعات زیر موجود هستند:
بهمنظور اضافهکردن یک مدل داخلی به یک سمبل، پنجره Simulation Model Editor را باز کنید (Symbol Properties -> Simulation Model) و Built-in SPICE model را انتخاب کنید. سپس شما میتوانید نوع قطعه را از منوی device انتخاب کنید و زیرقطعه را از منوی device type انتخاب کنید.
Device نوع قطعه برای شبیهسازی را انتخاب میکند: منبع ولتاژ، BJT ، مقاومت. این مقدار در فیلد Sim.Device ذخیره میشود.
Device Type نوع مدل استفاده شده برای مدل را انتخاب میکند. اکثر قطعات دارای چندین نوع مدل هستند. مدلها ممکن است دارای دقتهای مختلف، خصوصیاتی که برای آنها بهبود یافتهاند، پارامترهایی که موجود دارند و تعداد پینهایی که دارا هستند، باشند. برای مثال مقاومت ایدهآل یک مقاومت ساده با دو ترمینال و یک تک پارامتر resistance را مدلسازی میکند درحالیکه مقاومت پتانسیومتر یک مقاومت قابلتنظیم با سه ترمینال و یک پارامتر اضافه برای موقعیت اهرم آن را نیز مدلسازی میکند. برخی از قطعات دارای تعداد زیادی از گونهها هستند که میتوان از بین آنها انتخاب کرد: برای مثال N-channel MOSFETS دارای 17 نوع متفاوت است که هرکدام از آنها از یک مدل ریاضی متفاوت برای شبیهسازی رفتار ترانزیستور استفاده میکنند. یک مدل ممکن است کموبیش نسبت به دیگری یا در مدار دیگری برای اجرای تحلیلی خاص مناسبتر باشد.
سربرگ Parameters پارامترهای مدل را نمایش داده و به شما اجازه میدهد تا آنها را ویرایش کنید. برای مثال میزان مقاومت یک مقاومت شکل موج یک منبع ولتاژ، طول و عرض یک ماسفت و غیره. هر پارامتری که از پیشفرضهای مدل متفاوت باشد در فیلد Sim.Params ذخیره میشود.
سربرگ code مدل SPICE تولیدی را نمایش میدهد؛ چون این کد در لیست گره SPICE برای شبیهسازی نوشته خواهد شد.
کادر Save parameter ‘<parameter name>’ in Value field از فیلد Value سمبل برای ذخیرهسازی پارامترها بجای فیلد Sim.Params استفاده میکند. این موضوع ویرایش مدلهای ساده از سمت شماتیک را بدون باز کردنSimulation Model Editor آسانتر میکند. این گزینه تنها برای مدلهای غیرفعال ایدهآل (R,L,C) و منابع DC موجود هست. اگر فیلد Sim.Params در سمبل وجود داشته باشد نسبت به فیلد Value دارای اولویت خواهد بود.
Kicad میتواند مدلهای SPICE را از فایلهای خارجی نیز بارگذاری کند و این روش معمولی است که شما برای اضافهکردن یک مدل SPICE از یک قطعه تجاری خاص (به طور مثال تایمر 555 یا یک تقویتکننده عملیاتی TL071) به شبیهسازی خودتان استفاده میکنید. این مدلها باید در یک فرمت Spice استاندارد بوده و نباید رمزگزاری شده باشند. مدلهایی از این دست از منابع مختلفی قابل دسترسی هستند به طور مثال وبسایت سازنده قطعه.
برای بارگذاری یک مدل از یک فایل خارجی پنجره Simulation Model Editor را باز کنید (Symbol Properties -> Simulation Model) و SPICE model from file را انتخاب کنید.
File مسیری به فایل مدل برای استفادهشدن است. فایلهای مدل غیررمزگذری شده فایلهای متنی خوانا برای انسان و ساده بوده و دارای پسوندهایی مثل .lib و .sub هستند. اگرچه Kicad یک مدل معتبر با هر پسوندی را قبول میکند.
مسیر داده شده به فایل میتواند نسبت به فولدر پروژه مطلق یا نسبی باشد. اگر شما آن متغیر مسیر را تعریف کرده باشید مسیر میتواند به مقدار SPICE_LIB_DIR نیز نسبی باشد. نام فایل کتابخانه در فیلد Sim.Library سمبل ذخیره میشود.
Model نام مدل موردنظر در فایل مدل است. یک فایل مدل ممکن است شامل چندین مدل باشد و اگر باشد آنها در منوی کشوئی لیست خواهند شد. مدل انتخابی در فیلد Sim.Name سمبل لیست میشود.
با استفاده از سربرگ Parameters پارامترها میتوانند ابطال شوند (یا پارامترهای اضافه تعیین شده). تمامی پارامترهای مشخص شده در مدل انتخابی یا سربرگ Parameters در فیلد Sim.Params سمبل ذخیره میشوند.
سربرگ Code مدل Spice تولیدی را نمایش میدهد؛ چون این کد به لیست گره SPICE برای شبیهسازی نوشته خواهد شد.
فایلهای IBIS (I/O Buffer Information Specification) جایگزینی برای مدلهای Spice بهمنظور مدلسازی رفتاری بافرهای ورودی/خروجی روی پورتهای دیجیتال هستند. بهمنظور بارگذاری یک فایل IBIS، کاربران باید همان روند را برای مدلهای کتابخانه SPICE را دنبال کنند؛ اما اینبار فایل .ibs را برای آن بارگذاری کنند.
File مسیر فایل مدل برای استفاده است. مسیر میتواند مطلق بوده و یا نسبت به فولدر پروژه نسبی باشد. اگر شما متغیر مسیر را تعریف کرده باشید، مسیر میتواند نسبت به مقدار SPICE_LIB_DIR نسبی باشد. نام فایل کتابخانه در فیلد Sim.Library سمبل ذخیره میشود. درصورتیکه یک فایل مدل IBIS بارگذاری شده باشد فیلدهای باقیمانده در پنجره به مدلهای IBIS مرتبط میشوند.
Component اینکه چه قطعهای از فایل IBIS استفاده شود را انتخاب میکند؛ چون فایلهای IBIS میتوانند دارای چندین قطعه باشند. نام قطعه در فیلد Sim.Name سمبل ذخیره میشود.
Pin در مدل IBIS را برای شبیهسازی انتخاب میکند. پین انتخابی باید به یک پین سمبل در سربرگ Pin Assignment نگاشت شود. شماره پین انتخابی در فیلد Sim.Ibis.Pin ذخیره میشود.
Model لیست مدلهای موجود برای پین انتخابی است برای مثال یک ورودی یا یک خروجی. نام مدل انتخابی در فیلد Sim.Ibis.Model سمبل ذخیره میشود.
Type اینکه پین چه کاری را در شبیهسازی باید انجام بدهد را انتخاب میکند. یک پین میتواند یک قطعه غیرفعال یا پسیو باشد که هیچ مقداری را راهاندازی نمیکند. این مورد میتواند یک راهانداز DC باشد که بالا، پایین یا امپدانس بالا را راهاندازی میکند یا اینکه میتواند یک موج مربعی (rectangular wave) یا PRBS driver باشد. این مقدار در فیلد Sim.Type سمبل ذخیره میشود.
سربرگ پارامترها به شما اجازه میدهد تا پارامترهای مدل را دیده و ویرایش کنید. برای هر پارامتر میتوانید بین یک مقدار ماکزیمم، مینیمم و معمول انتخاب کنید. شما میتوانید پارامترهای شکلموج راهاندازی شده را نیز بر اساس type انتخابی پین انتخاب کنید. هر پارامتری که از پیشفرضها متفاوت باشد در فیلد Sim.Params ذخیره میشود.
مدلهای شبیهسازی ممکن است دارای پینهایی باشند که به شکل متفاوتی نسبت به سمبل مرتبط با خود شمارهگذاری شده باشند. برای مثال مدلهای SPICE برای دیودها معمولاً پین 1 را آند در نظر میگیرند درحالیکه سمبلهای شماتیک معمولاً دارای پین کاتدی هستند که شماره آن 1 است. مدلهای تقویتکنندههای عملیاتی نیز بسیار محتمل هست که تخصیصات پین آنها با شمارههای پین پکیج یا شماتیک منطبق نباشد.
شما میتوانید از سربرگ Pin Assignment ویرایشگرSimulation Model برای نگاشت پینهای سمبل به پینهای مدل شبیهسازی استفاده کنید.
ستون چپ نام و شماره هر پین را نمایش میدهد؛ یعنی اسامی و شمارههای پین که روی قسمت شماتیک در Kicad ظاهر میشوند. ستون راست پین مربوط را همانطور که در فایل مدل استفاده میشود نمایش میدهد. برای هر پین سمبل شما میتوانید از منوی مربوطه در ستون راست پین مرتبط را از مدل شبیهسازی انتخاب کنید. در مواردی که قسمت شماتیک دارای پینهایی است که در مدل نیستند به طور مثال در تقویتکنندههای عملیاتی با پینهای “nulling” که مدلسازی نشدهاند، پین قسمت شماتیک ممکن است به گزینه “Not Connected” در منوی Pin Assignments تخصیص یابد. برخلاف دیگر تخصیصات پین، “Not Connected” ممکن است در صورت لزوم به پینهای چندگانه تخصیص داده شوند.
وقتی که شما از یک مدل زیرمدار استفاده میکنید، پنجره کد مدل را زیر تخصیصات پین برای استفاده بهعنوان یک مرجع نمایش میدهد. مدلی که بهخوبی نوشته شده باشد اغلب دارای یک بخش مرجع سودمند است (یعنی دستهای از کامنتها) تا به کاربر چگونگی نگاشت شدن پینهای مدل را اطلاع بدهد.
دستورالعملهای SPICE
این امکان وجود دارد تا دستورالعملهای SPICE را با قراردادن آنها در فیلدهای متن روی یک صفحه شماتیک اضافه کنید. این رویکرد برای تعریفکردن نوع شبیهسازی پیشفرض مناسب است. لیست دستورالعملهای پشتیبانی شده در فیلدهای متن به شکل زیر است:
امکان قراردادن قطعات اضافی با استفاده از فیلدهای متن وجود ندارد.
اگر یک دستور شبیهسازی در متن شماتیک اضافه شود، وقتی که شما شبیهساز را باز میکنید شبیهساز از آن بهعنوان دستور شبیهسازی استفاده میکند. هرچند شما میتوانید آن را در پنجره Simulation Command باطل کنید.
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.