تبلیغات
مهندسی برق الکترونیک - آموزش hspice
 
مهندسی برق الکترونیک
صفحه نخست            تماس با مدیر            پست الکترونیک           RSS            ATOM
در حوزه شبیه سازی مدارهای الکتریکی، نرم افزار های بسیاری معرفی و به کارگرفته شده اند از این میان یکی از قوی ترین و پرکاربرد ترین نرم افزارها HSPICE است (این نرم افزار بیشتر توسط دانشجویان کارشناسی ارشد مورد استفاده قرار می گیرد). این برنامه که شامل کلیه قطعات چون مقاومت و خازن و سلف (با تزویج و بدون تزویج) و دیود و ترانزیستورهای JFET,MOSFET,BJT و بسیاری دیگرازقطعات حتی در حوزه فرکانس های بالاست قابلیت های زیادی برای تحلیل های پیچیده و با دقت بالا را دارد. بسیاری از تحلیل های DCوAC تحلیل نویز وtransient همچنین شبیه سازیها و بررسی شکل موج های خروجی حتی ترکیب شکل موج های خروجی یک مدارتوسط این نرم افزار به سادگی قابل انجام است اما توصیه من به شما این است که قبل از کار با این نرم افزار ابتدا تحلیل مدارات خود را در فضای برنامه هایی چون PSPICE و یا PROTEUS انجام دهید زیرا این برنامه ها دارای محیط های شماتیک اند و شما را با فضای واقعی کار با مدارات در محیط آزمایشگاه آشنا می کنند اما در HSPICE با پارامترهای کد شده هر یک از المانها کار می کنید وداشتن زمینه فکری مناسب شما را در تحلیل مدارهایتان در این فضا یاری می کند. بررسی اثر تغییرات اجزاء مدار و محاسبه حساسیت رفتار مدار نسبت به آن (شامل مقاومت ها، سلفها،خازن ها، دیودها و ترانزیستورها و ... )، در نظر گرفتن آثار غیر خطی المانها در رفتار مدار بهینه كردن مدار با توجه به موارد فوق بررسی رفتار مدار از نظر نویز و اعوجاج ها و همچنین از نظر تجزیه و تحلیل در حوزه فركانس و بدست آوردن طیف فركانسی بر مبنای تجزیه و تحلیل فوریه از جمله مواردی است که می توان به کمک نرم افزار Hspice انجام داد بدون اینكه نیاز به استفاده از دستگاه های گران قیمتی مانند Spectrum Analyzer و یا Noise Figure Meter داشته باشیم.پیش از این برخی مطالب آموزشی را در سابت قرار داده بودم که میتوانید از اینجا زیر دانلود کنید ولی از آنجایی که لازم است برخی مطالب به طور سریع آموزش داده شود در اینجا به طور سریع مطالب لازم را ببرسی میکنیم و شما با خواندن این مطلب hspice را یاد میگیرید.

تعیین مقادیر و متغیرها در hspice:

در اسپایس میتوان به متغییرها مقادیر متفاوتی از جمله اعداد اعشاری و یا مقادیر منفی را اختصاص داد.
همچنین میتوان برای هر متغییر یک واحد نیز در نظر گرفت که واحدهای زیر در hspice قابل پذیرش است:

 معرفی المانهای مدار در hspice:

در hspice برای هر المان یک تک کلمه استفاده میشود.برای مثال وقتی بخواهیم پایه های یک ترانزیستور را به سه گره وصل کنیم میباسیت نام ترانزیستور را با حرف M شروع کنیم. ﺍﺳﻢ  ﻫﺮ ﻋﻨﺼﺮ میﺗﻮﺍﻧﺪ ﺩﺍﺭﺍﻱ ۶ ۱ ﻛﺎﺭﺍﻛﺘﺮ ﻣﺨﺘﻠﻒ ﺑﺎﺷﺪ ﻭ ﺍﺯ ﺁﻥ 16 ﻛﺎﺭﺍﻛﺘﺮ ﺣﺮﻑ ﺍﻭﻝ ﺣﺘﻤﺎﹰ ﺑﺎﻳﺪ ﻣﻄﺎﺑﻖ ﺟﺪﻭﻝ زیر ﺍﻧﺘﺨﺎﺏ ﮔﺮﺩﺩ ﺑﻘﻴﻪ ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﺷﺎﻣﻞ ﺣﺮﻑ ﻭ ﻋﺪﺩ ﺑﺎﺷﻨﺪ ﻛﻪ ﺑﻄﻮﺭ ﺩﻟﺨﻮﺍﻩ ﺍﻧﺘﺨﺎﺏ ﻣﻲ ﮔﺮﺩﻧﺪ . ﺗﻔﺎﻭﺗﻲ ﺑﻴﻦ ﺣﺮﻭﻑ ﻛﻮﭼﻚ ﻭ ﺑﺰﺭﮒ ﺩﺭ ﺍﺳﻢ ﮔﺬﺍﺭﻱ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ.برای مثال اگر چند ترانزیستور داریم میتوان m1 وm2 ... به کار برد.

تعریف مدلهای جدید در hspice:

همواره نیاز است برخی مدلهای جدید ترانزیستور را بر اساس تکنولوژی جدید تعریف نماییم برای این کار hspice به ما اجازه داده است که از دستور .model استفاده کنیم.با این دستور میتوان بر اساس المانهایی که در جدول قبل داریم یک مدل جدید از همان المان را ایجاد کرد:
 
با توجه به فرت بالا میتوان المانهای مختلفی را تعریف کرد و MNAME در این فرمت میتواند هر نام دلخواه شما باشد.در فرمت بالا TYPE را میتوان از جدول زیر انتخاب کرد:
برای مثال پس از قرار دادن یک دیود در مدار میتوان یک مدل جدید برای دیود خود به شکل زیر تعریف کنید:
با این که برای یک ترانزیستور ماسفت مدل n به شکل زیر یک مدل جدید تعریف کرد همانطور که میبینید برای تعریف ترانزیستور ماسفت خواص بسیار زیادی را باید تعریف نمود:

تعریف منبع ولتاژ:

در همه ی پروژه ها برای شبیه سازی نیاز است یک منبع ولتاژ هم داشته باشیم و در hspice همه ی انواع منابع ولتاژ و جریان را میتوان با چند خط برنامه به مدار خود اضافه نمایید:
 که مقدار value میتواند هر مقدار dc یا ac را داشته باشد که در زیر مدلهای مختلف آن ذکر خواهد شد:
 مقدار  میتواند به شکلهای زیر هم باشد:

EXP - exponential waveform

PULSE - pulse waveform

PWL - piecewise linear waveform

SIN - sinusoidal waveform

که هر کدام به شکل زیر به کار میروند و دارای خروجی های زیر هستند و در بساری از پروژه های به کار می آیند:

ایجاد منبع به روش PWL:

در این روش میتوان یک سیگنال دلخواه با هر شکل پاره خطی را ایجاد کرد در واقع سیگنالهای تولید شده به شکل خطی هستند که محورx همان زمان و محور y هم اندازه ولتاژ یا جریان یه هر متغیر دلخواه است. این مدل سیگنالها در برخی تحلیلها لازم میشود. در شکل زیر قرمت و سیگنال تولید شده به روش pwl نشان داده شده است.
 
Units Default Value PWL parameter
second none Tn - time at corner
volt none Vn - voltage at corner
image14006

 تولید شکل موج پالس(PLUSE):

فرمت کلی این دستور به شکل زیر است:
که این مقدار به ترتیب بر اساس جدول زیر معنی های متفاوتی دارند:
PULSE parameter Default Value Units
V1 - initial voltage none volt
V2 - peak voltage none volt
Td - initial delay time 0 second
Tr - rise time Tstep second
Tf - fall time Tstep second
Pw - pulse width Tstop second
Period - pilse period Tstop second
 Pulse Waveform
 در این فرمت موج یک موج با انداره ی v1 تولید و به مدت نصف pw در همان حالت بافی میمیاند و سپس به v2 در زمان tr میرسد که tr همان تاخیر در بالا رقتن سیگنال و tf هم تاخیر در پایین آمدن سیگنال است.در ابتدای کار هم میتوان یک تاخیر کلی ایجاد کرد به انداره ی td .کل ای موج با تناوب pw تکرار خواهد شد.

تولید شکل موج سینوسی:

شکل کلی این دستور به فرمت زیر است:
 که بر اساس جدول زیر میتوان مقادیر را مشخص نمود:
Units Default Value SIN parameter
volt none Vo - offset voltage
volt none Va - peak amplitude of voltage
Hz 1 / Tstop Freq - frequency
second 0 Td - delay time
1 / second 0 Df - damping factor
degree 0 Phase - phase advance
Sinusoidal Waveform
در واقع ولتاژ سینوسی بر اساس فرمول زیر تولید میگردد:
 exponentially-damped sine wave described by this formula
که تمام پارامترهای این فرمول در جدول بالا توضیح داده شده است.
 توجه:
سیگنال سینوسی به شکل بالا فقط برای تحلیل transient به کار میرود و برای تحلیل small-signal باید از دستور دیگری به شکل زیر استفاده کرد که عبارات زمانی در آن نباشد:

 شکل موج نمایی (Exponential Waveform):

فرمت این دستور به شکل زیر است:
 که مقادیر آن بر اساس جدول زیر تعریف میشوند:
 
PULSE parameter Default Value Units
V1 - initial voltage none volt
V2 - peak voltage none volt
Td1 - rise time delay 0 second
T1 - rise time constant Tstep second
Td2 - fall time delay Td1+Tstep second
T2 -m fall time constant Tstop second
Exponential Waveform (EXP)
در جدول بالا میتوان مقادیر را برای مقدار نهایی و پیک در تابع نهایی مشخص کرد.

 شبیه سازی DC در HSPICE :

 در شبه سازی dc یا dc_swept همواره یک مقدار dc را رمپ میدهیم تا از یک مقدار اولیه به مقدار دلخواه برسد و این افزاریش یا کاهش را هر بار روی یک تایع تست میکنیم و یک نمودار خواهیم داشت با همین مقادیر تغییر داده شده.
فرمت کلی این دستور به شکل زیر است:

 مثال برای dc_swept و بدست آوردن wi یک ترانزیستور ماسفت:

در صورتی که بخواهیم یک تقویت کننده با چند ترانزیستور را طراحی کنیم که بر اساس خواسته ی کارفرما یک توان و جریان خاصی را مصرف کند و در خروجی سوینگ خاصی داشته باشد و گین خاصی را بر آورده کند اولین کاری که باید انجام بدهیم چیست؟در اینجا کلمه ی جریان مصرفی همه چیز را مشخص میکند و نکته اصلی در طراحی مدارات ترانزیستور است چرا که جریان کل مدار توان آنرا تایین میکند و همچنین مقاومت خروجی بر اساس جریان میتواند گین را تامین کند ولی سوینگ را خودمان باید با تغییر طراحی بهینه کنیم و به روش قرار دادن ترانزیستورها وابسته است.البته ولتاژ vdd سوینگ را مشخص میکند ولی این ولتاژ وابسته به تکنولوژی است و در هر تکنولوژِی هر چه ترانزیستورها ریزتر باشند ولتاژ vdd را میتوان کمتر در نظر گرفت و تا جایی که تکنولوژی به ما اجازه میدهد میتوانیم کاهش داشته باشیم.حال که مشخص شد جریان همه چیز را مشخص میکند باید جریانهایی که از هر شاخه قرار است عبور کند را خودمان به صورت ذهنی در نظر بگیریم و از آنجایی که کل جریان عبوری از هر شاخه تا پایان شاخه ثابت است باید بگوییم که کل ترانزیستوریهای یک شاخه جریان ثابتی خواهند داشت و در این حالت ترانزیستورها را جدا میکنیم و فرض میکنیم هر ترانزیستور به صورت تکی و تنها همان جریان را از خود عبور میدهد و wi تزانزیستور را بدست می آوریم که آن جریان را تامین میکند.
میخواهیم ترانزیستورهای شکل زیر را با 100 میکرو آمپر جریان طراحی کنیم(فعلاً سوینگ و توان و گین را بحث نمیکنیم):

200px-MOSFET Cascode
برای طراحی ابتدا ترانزستور ها را از هم جدا میکنیم و برای هر کدام  vg را رمپ میکنیم و پس از محاسبه ی vg میتوان wi را هم در رمپ دیگری حساب کرد.از آنجایی که برای عملکرد بهینه باید ترانزیستور در مرز اشباع باشد لذا بر اساس فرمول مرز اشباع یک خط رسم میکنیم و هر جا این خط محور x را قطع کند vg را نشان میدهد.برای این کار باید vg را رمپ کنیم تا به مقداری برسیم که عبارت vd=vg-vth برقرا باشد که همان مرز اشباع خواهد بود که در برنامه ی زیر همین کار را انجام داده ایم:
 m1
 
که در اینجا vg به دست آمده برابر با 0.71 است و این vg را در مرحله بعد مورد استفاده قرار میدهیم.
برای بدست آوردن wi هر ترانزیستور نیز کافی است که به صورت تکی آنرا در یک مدار در hspice ببندیم و با مشخص بودن vd و vs و قرار دادن vg از مرحله ی پیش مقدارwi را رمپ نماییم و هر بار مقدار جریان ترانزیستور را نگاه کنیم با توجه به مقدار جریان ترانزیستور هر گاه این جریان به مقدار مورد نظر رسید در واقع همان wi مورد نظر ما خواهد بود.حال در این مرحله مقدار wi مشخص شده است.برای مثال میخواهیم ترانزیستوری را در جریان 200 میکرو طراحی کنیم w این ترانزیستور به شکل زیر بدست می آید:
در برنامه ی بالا ابتدا نام برنامه سپس با دستور .protect از نمایش مطالب اضافی در خروجی برنامه جلو گیری کرده ایم و در خط5 ام برنامه option post  را باید معیین کنیم تا خروجی برنامه مشخص گردد که به معانی زیر است:
 البته option post یا post  با هم تفاوتی ندارند.در خط 6 و 7 ولتاژ گره های مختلف را تعیین میکنیم و در خط 8 ام عبارت .param wi=4.67u در واقع wi را به عنوان یک پارامتر تعیین میکند.و در خط بعد ترانزیستور را معرفی میکینم ولی w آنرا متغییر در نظر گرفته تا آنرا رمپ دهیم.حال در خظ بعد با عبارت .DC wi 1u 100u 0.1u طول ترانزیستور را رمپ میدهیم و پس از آن در عبارت .PROBE dc i1(M1) نمودار جریان m1 را رسم میکنم تا ببینم با تغییر w خروجی چگونه خواهد بود و هر جا این جریان 200 میکرو آمپر بود wi را همان در نظر میگیریم شبیه به نمودار زیر:
m11
که در اینجا w=4.67 خواهد بود.حال که w را حساب کردیم و در مرحله ی پیش هم vg را محاسبه نمودیم و در اینجا طراحی ترانزیستور به صورت تکی به پیایان رسیده است.
تک تک ترانزیستور ها را به صورت تکی به همین نحو طراحی میکنیم و دست آخر آنها را دو تا دوتا و پس از آن سه تا سه تا و... به هم متصل میکنیم.
نکته:در صورتی که پس از اتصال جریان درست نبود باید w ترانزیستورهای P-Channel را تغییر دهیم نه ترانزیستورهای نوع n-Channel را چون ضریب جریان برای نوع p کوچکتر از نوع n است و تاثیر کمتری بر تغییر حریان خواهد داشت.




نوع مطلب :
برچسب ها :
لینک های مرتبط :

یکشنبه 23 خرداد 1395
جمعه 17 شهریور 1396 12:51 ق.ظ
Your style is really unique compared to other people
I've read stuff from. Thanks for posting when you've got the opportunity, Guess I'll just bookmark this site.
جمعه 13 مرداد 1396 05:45 ب.ظ
Greetings from Ohio! I'm bored to death at work so I decided to check out your website on my iphone during lunch break.

I enjoy the knowledge you provide here and can't wait to take a look when I get home.
I'm surprised at how quick your blog loaded on my
cell phone .. I'm not even using WIFI, just 3G ..

Anyways, superb blog!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :