آموزش HSpice (قسمت 2): توصیف المانهای پایه و منابع مستقل
در قسمت اول آموزش HSpice، با کلیات این نرمافزار قدرتمند، ساختار فایل نتلیست و مفهوم گرهها آشنا شدیم. حالا زمان آن رسیده که یاد بگیریم چگونه اجزای اصلی یک مدار، یعنی المانهای پسیو (مقاومت، خازن، سلف) و منابع تغذیه مستقل را در نتلیست HSpice تعریف کنیم.
فهرست مطالب این دوره آموزشی:
- قسمت اول: HSpice چیست و چگونه شروع کنیم؟
- قسمت دوم: توصیف المانهای پایه و منابع مستقل (همین قسمت) – لینک قسمت دوم
- قسمت سوم: تحلیل DC (نقطه کار، جاروب DC) و دستورات وابسته
- قسمت چهارم: تحلیل گذرا (Transient) و منابع وابسته به زمان
- قسمت پنجم: تحلیل AC (پاسخ فرکانسی) و معرفی دستورات پیشرفتهتر
قسمت دوم: تعریف المانها و منابع
پیشوندها و واحدها در HSpice
قبل از تعریف المانها، بهتر است با پیشوندهای رایج برای بیان مقادیر بزرگ و کوچک در HSpice آشنا شویم. این پیشوندها که به حروف بزرگ و کوچک حساس نیستند، به ما کمک میکنند تا مقادیر را به صورت خوانا و کوتاه بنویسیم.
پیشوند | ضریب | معنی | پیشوند | ضریب | معنی |
---|---|---|---|---|---|
T | $10^{12}$ | ترا | f | $10^{-15}$ | فمتو |
G | $10^{9}$ | گیگا | p | $10^{-12}$ | پیکو |
MEG | $10^{6}$ | مگا | n | $10^{-9}$ | نانو |
k | $10^{3}$ | کیلو | u | $10^{-6}$ | میکرو |
m | $10^{-3}$ | میلی |
مثال: 10k
یعنی 10 کیلو اهم ($10 \times 10^3 \Omega$)، 10uF
یعنی 10 میکروفاراد ($10 \times 10^{-6} F$)، 5nS
یعنی 5 نانوثانیه ($5 \times 10^{-9} s$). HSpice واحدها (مثل اهم، فاراد، هانری، ولت، آمپر) را بر اساس نوع المان تشخیص میدهد.
توصیف المانهای پسیو (R, L, C)
المانهای پسیو پایه، بلوکهای سازنده بسیاری از مدارها هستند. فرمت کلی تعریف آنها در HSpice معمولاً به صورت ElementName Node1 Node2 Value
است.
1. مقاومت (Resistor)
نام مقاومتها باید با حرف R
شروع شود.
فرمت: R<name> <Node+> <Node-> <Value>
R<name>
: نام یکتا برای مقاومت (مثلاًR1
,Rload
).<Node+>
: گرهای که سر مثبت مقاومت به آن وصل است.<Node->
: گرهای که سر منفی مقاومت به آن وصل است. (جهت جریان قراردادی از Node+ به Node- است).<Value>
: مقدار مقاومت بر حسب اهم ($\Omega$).
* Examples of Resistors
R_INPUT IN MID 10k $ 10 kilo-Ohm resistor
R_FEEDBACK OUT MID 1MEG $ 1 Mega-Ohm resistor
R_GND MID 0 50 $ 50 Ohm resistor to ground
2. خازن (Capacitor)
نام خازنها باید با حرف C
شروع شود.
فرمت: C<name> <Node+> <Node-> <Value> [IC=<InitialVoltage>]
C<name>
: نام یکتا برای خازن (مثلاًC1
,Cfilter
).<Node+>
: گره پایانه مثبت.<Node->
: گره پایانه منفی.<Value>
: مقدار ظرفیت خازن بر حسب فاراد (F).[IC=<InitialVoltage>]
: (اختیاری) ولتاژ اولیه خازن بر حسب ولت. این مقدار عمدتاً در تحلیل گذرا (.TRAN
) استفاده میشود و به HSpice میگوید شبیهسازی را با چه ولتاژی روی خازن شروع کند. اگر مشخص نشود، معمولاً صفر یا مقدار محاسبه شده در تحلیل DC اولیه در نظر گرفته میشود.
* Examples of Capacitors
C_COUPLING IN AMP_IN 1uF $ 1 micro-Farad coupling capacitor
C_LOAD OUT 0 10p $ 10 pico-Farad load capacitor
C_MEM N1 N2 5nF IC=1.8V $ 5 nano-Farad with initial voltage of 1.8V
3. سلف (Inductor)
نام سلفها باید با حرف L
شروع شود.
فرمت: L<name> <Node+> <Node-> <Value> [IC=<InitialCurrent>]
L<name>
: نام یکتا برای سلف (مثلاًL1
,Lchoke
).<Node+>
: گره پایانه مثبت.<Node->
: گره پایانه منفی (جهت جریان قراردادی از Node+ به Node- است).<Value>
: مقدار اندوکتانس سلف بر حسب هانری (H).[IC=<InitialCurrent>]
: (اختیاری) جریان اولیه سلف بر حسب آمپر. مانند خازن، این مقدار عمدتاً در تحلیل گذرا کاربرد دارد.
* Examples of Inductors
L_FILTER IN MID 10mH $ 10 milli-Henry filter inductor
L_ANTENNA ANT 0 1uH $ 1 micro-Henry antenna inductor
L_COIL P1 P2 50nH IC=5mA $ 50 nano-Henry with initial current of 5mA
توصیف منابع مستقل (Independent Sources)
منابع مستقل، ولتاژ یا جریانی را تولید میکنند که به سایر ولتاژها و جریانهای مدار وابسته نیست. نام منابع ولتاژ مستقل با V
و منابع جریان مستقل با I
شروع میشود.
1. منبع ولتاژ/جریان DC
این منابع یک مقدار ثابت ولتاژ یا جریان را فراهم میکنند.
فرمت ولتاژ: V<name> <N+> <N-> [DC] <Value>
فرمت جریان: I<name> <N+> <N-> [DC] <Value>
<N+>
: گره مثبت منبع.<N->
: گره منفی منبع.[DC]
: (اختیاری) مشخص میکند که مقدار بعدی، مقدار DC است. اگر هیچ نوع منبع دیگری (مثل AC یا PULSE) تعریف نشود، HSpice مقدار را به طور پیشفرض DC در نظر میگیرد.<Value>
: مقدار ولتاژ بر حسب ولت (V) یا جریان بر حسب آمپر (A). برای منبع جریان، جهت قراردادی جریان از N+ به N- در *خارج* از منبع است (یعنی جریان از N+ خارج و به N- وارد میشود).
* Examples of DC Sources
Vdd PwrNode 0 3.3 $ 3.3V DC Voltage source (DC keyword omitted)
Vref Ref 0 DC 1.2V $ 1.2V DC Voltage reference
Ibias BiasPoint 0 DC 10uA $ 10 micro-Ampere DC current source pulling from BiasPoint to ground
Isink 0 DrainNode DC 1m $ 1 milli-Ampere DC current source sinking current from DrainNode
2. منبع ولتاژ/جریان AC (برای تحلیل AC)
این منابع *فقط* در تحلیل حوزه فرکانس (.AC
) کاربرد دارند و برای مشخص کردن منبع سیگنال کوچک ورودی به مدار استفاده میشوند.
فرمت ولتاژ: V<name> <N+> <N-> AC <Magnitude> [<Phase_Degrees>]
فرمت جریان: I<name> <N+> <N-> AC <Magnitude> [<Phase_Degrees>]
AC
: کلمه کلیدی که مشخص میکند این تعریف برای تحلیل AC است.<Magnitude>
: دامنه سیگنال AC (پیک، نه RMS).[<Phase_Degrees>]
: (اختیاری) فاز سیگنال بر حسب درجه. پیشفرض 0 درجه است.
* Examples of AC Sources (Used with .AC analysis)
Vac_in InputNode 0 AC 1 $ AC voltage source with 1V magnitude, 0 phase (default)
Vdiff_p IN_P 0 AC 0.5 0 $ Part of a differential signal: 0.5V magnitude, 0 phase
Vdiff_n IN_N 0 AC 0.5 180 $ Other part of differential signal: 0.5V magnitude, 180 phase
Iac_sig SigNode 0 AC 1u 90 $ AC current source: 1uA magnitude, 90 degrees phase
نکته مهم: تعریف AC به تنهایی باعث نمیشود که منبع در تحلیل گذرا (حوزه زمان) موج سینوسی تولید کند. این تعریف فقط برای تحلیل AC است.
3. منابع گذرا (وابسته به زمان)
این منابع برای تحلیل در حوزه زمان (.TRAN
) استفاده میشوند و شکل موجهای مختلفی را تولید میکنند.
الف) منبع پالسی (PULSE)
برای تولید موجهای مربعی یا پالسهای تکرارشونده.
فرمت: V|I<name> <N+> <N-> PULSE(<V1> <V2> <Td> <Tr> <Tf> <Pw> <Per>)
PULSE
: کلمه کلیدی برای تعریف منبع پالسی.<V1>
: مقدار اولیه ولتاژ/جریان.<V2>
: مقدار پالس ولتاژ/جریان.<Td>
: زمان تاخیر اولیه (Delay Time) قبل از شروع اولین پالس.<Tr>
: زمان صعود (Rise Time) پالس از V1 به V2.<Tf>
: زمان نزول (Fall Time) پالس از V2 به V1.<Pw>
: پهنای پالس (Pulse Width) در مقدار V2.<Per>
: دوره تناوب (Period) کل پالس (شامل زمانهای صعود، نزول، پهنا و زمان ماندن در V1).
* Example of a PULSE voltage source (e.g., a clock signal)
* V1=0V, V2=1.8V, Delay=1ns, Rise=0.1ns, Fall=0.1ns, Width=4.8ns, Period=10ns
Vclk ClkIn 0 PULSE(0 1.8 1n 0.1n 0.1n 4.8n 10n)
[تصویر نمودار شکل موج PULSE با پارامترهای مشخص شده در اینجا قرار گیرد]
نکته: اگر مقادیر Tr, Tf, Pw, Per داده نشوند، HSpice مقادیر پیشفرض (معمولاً TSTEP یا TSTOP تحلیل گذرا) را در نظر میگیرد که معمولاً مطلوب نیست.
ب) منبع خطی تکهای (PWL – Piece-Wise Linear)
برای تعریف شکل موجهای دلخواه با وصل کردن نقاط با خط مستقیم.
فرمت: V|I<name> <N+> <N-> PWL(<T1> <V1> [<T2> <V2> <T3> <V3> ...])
PWL
: کلمه کلیدی برای تعریف منبع PWL.(<Ti> <Vi>)
: زوجهای زمان-مقدار (Time-Value pairs) که نقاط شکست شکل موج را تعریف میکنند. HSpice بین این نقاط به صورت خطی درونیابی میکند.- اختیاری: میتوان از پارامتر
R=<repeat_count> TD=<time_delay>
برای تکرار بخشی از موج استفاده کرد.
* Example of a PWL voltage source (e.g., an arbitrary waveform)
* Goes from 0V at 0s to 1V at 5ns, stays at 1V until 10ns, then ramps down to -1V at 15ns
V_arb ArbNode 0 PWL(0 0 5n 1 10n 1 15n -1)
[تصویر نمودار شکل موج PWL با نقاط مشخص شده در اینجا قرار گیرد]
ج) منبع سینوسی (SIN)
برای تولید موج سینوسی در تحلیل گذرا.
فرمت: V|I<name> <N+> <N-> SIN(<Vo> <Va> <Freq> [<Td> <Alpha> <Theta>])
SIN
: کلمه کلیدی برای تعریف منبع سینوسی.<Vo>
: مقدار آفست DC (Offset Voltage/Current).<Va>
: دامنه (Amplitude) موج سینوسی (پیک).<Freq>
: فرکانس موج بر حسب هرتز (Hz).[<Td>]
: (اختیاری) زمان تاخیر اولیه (Delay Time). پیشفرض 0 است.[<Alpha>]
: (اختیاری) ضریب میرایی (Damping Factor). اگر غیر صفر باشد، موج به صورت نمایی میرا میشود ($e^{-\alpha(t-Td)}$). پیشفرض 0 است.[<Theta>]
: (اختیاری) فاز اولیه بر حسب درجه. پیشفرض 0 است.
* Example of a SIN voltage source (e.g., an audio signal)
* Offset=0V, Amplitude=0.5V, Freq=1kHz, Delay=0, Damping=0, Phase=0
V_audio AudioIn 0 SIN(0 0.5 1k) $ Td, Alpha, Theta defaulted to 0
* Example of a damped SIN wave starting after 5us with 90 degree phase
V_damped DampNode 0 SIN(1 2 10k 5u 1e4 90)
4. منابع ترکیبی (Mixed Sources)
گاهی لازم است یک منبع هم مقدار DC داشته باشد، هم به عنوان ورودی تحلیل AC عمل کند و هم در تحلیل گذرا شکل موج خاصی داشته باشد. میتوان این تعاریف را در یک خط ترکیب کرد.
* Example of a Mixed Source
* DC value=2.5V, AC magnitude=1V (0 phase), Transient=Sine(offset=2.5, amp=0.1, freq=1MHz)
Vin_complex IN 0 DC 2.5 AC 1 SIN(2.5 0.1 1MEG)
در مثال بالا، HSpice مقدار DC را برای نقطه کار، مقدار AC را برای تحلیل .AC
و شکل موج SIN را برای تحلیل .TRAN
استفاده خواهد کرد.
مثال کاربردی: مدار RLC سری با منبع پالسی
بیایید با استفاده از المانها و منبعی که یاد گرفتیم، یک مدار RLC سری ساده را تعریف کرده و تحلیل گذرا برای آن درخواست کنیم.
* RLC Series Circuit Example
* Components
Vin 1 0 PULSE(0 5 1n 0.1n 0.1n 10n 20n) * Input Pulse Voltage Source
R1 1 2 10 * 10 Ohm Resistor
L1 2 3 1uH * 1 micro-Henry Inductor
C1 3 0 100pF * 100 pico-Farad Capacitor (Output Voltage across C1)
* Analysis Command
* Perform Transient analysis from 0 to 60ns, with steps of 0.1ns
.TRAN 0.1n 60n
* Options
.OPTION POST * Enable waveform viewing
* End of Netlist
.END
توضیح کد مثال RLC:
- خط 3 (Vin): یک منبع ولتاژ پالسی به نام
Vin
بین گره1
و زمین (0
) تعریف شده است. پالس از 0 ولت به 5 ولت میرود، تاخیر اولیه 1 نانوثانیه دارد، زمان صعود و نزول هر کدام 0.1 نانوثانیه، پهنای پالس 10 نانوثانیه و دوره تناوب 20 نانوثانیه است. - خط 4 (R1): مقاومت 10 اهمی به نام
R1
بین گره1
و گره2
قرار دارد. - خط 5 (L1): سلف 1 میکروهانری به نام
L1
بین گره2
و گره3
قرار دارد. - خط 6 (C1): خازن 100 پیکوفارادی به نام
C1
بین گره3
و زمین (0
) قرار دارد. ولتاژ خروجی مدار (ولتاژ دو سر خازن) در گره3
قابل مشاهده است. - خط 10 (.TRAN): دستور تحلیل گذرا. به HSpice میگوید که رفتار مدار را در حوزه زمان از 0 ثانیه تا 60 نانوثانیه شبیهسازی کند و نتایج را در گامهای حداکثر 0.1 نانوثانیه ذخیره نماید.
- خط 13 (.OPTION POST): مانند مثال قبل، امکان ذخیره نتایج برای نمایشگر شکل موج را فراهم میکند.
- خط 16 (.END): پایان نتلیست.
با اجرای این نتلیست، میتوانیم شکل موج ولتاژ در گرههای 1، 2 و 3 (به خصوص ولتاژ خروجی روی خازن در گره 3) و همچنین جریان عبوری از المانها را در بازه زمانی 0 تا 60 نانوثانیه مشاهده کنیم و ببینیم مدار RLC چگونه به پالس ورودی پاسخ میدهد (احتمالاً نوسان میراشوندهای را خواهیم دید).
جمعبندی و گام بعدی
در این قسمت یاد گرفتیم که چگونه المانهای پایهای R، L و C را در نتلیست HSpice تعریف کنیم و با پیشوندهای رایج برای مقادیر آنها آشنا شدیم. همچنین نحوه تعریف منابع ولتاژ و جریان مستقل DC، AC و انواع مهم منابع گذرا (PULSE، PWL، SIN) را بررسی کردیم.
در قسمت سوم، وارد دنیای تحلیل DC خواهیم شد و با دستورات .OP
(نقطه کار) و .DC
(جاروب DC) و کاربردهای آنها برای یافتن بایاس مدار و مشخصههای انتقالی آشنا میشویم.
همراه آکادمی 100 بمانید!
درس قبلی: قسمت اول: مقدمه و اصول اولیه شبیهسازی
درس بعدی: قسمت سوم: تحلیل DC (نقطه کار، جاروب DC)
آیا برای شبیهسازی مدار خود با HSpice نیاز به کمک دارید؟
تیم آکادمی 100 آماده انجام پروژههای شبیهسازی شما با نرمافزار HSpice در سطوح مختلف میباشد. برای مشاوره و ثبت سفارش، از طریق لینک زیر با ما در تماس باشید: