آناتومی نت لیست در hspice
در ادامه ی این سری نوشته ها می خواهیم کار با hspice را شروع کنیم. هدف هم تحلیل مدار ساده ی زوج تفاضلی BJT مقابل است.
قبل از هر کاری لازم است برای پروژه ی شبیه سازی خود netlist تهیه کنیم. netlist در واقع لیست تمام عناصر و گره های مدار است که طبق دستور العمل به خصوصی نوشته می شود. آن چه در این نوشته قصد بررسی آن را داریم ساختار کلی یک netlist استاندارد است با توضیح مختصری راجع به المان های مداری که می توانیم در netlist تعریف کنیم.
نکته ی اول در نوشتن یک نت لیست استاندراد این است که دقت کنیم نت لیست لزوما باید با دستور END پایان پذیرد. در غیر این صورت شبیه سازی انجام نخواهد شد.
مورد دیگری که بی توجهی به آن باعث اشکال در شبیه سازی می شود نوشتن دستور در خط اول نت لیست است. خط اول نت لیست برای ذخیره ی عنوان پروژه در نظر گرفته شده و به همین خاطر نباید از آن برای نوشتن دستور یا تعریف المان های مدار استفاده کرد.
در ادامه نت لیست مربوط به مدار زوج تفاضلی مطرح شده را مشاهده و بررسی خواهیم کرد.
C++ |
copy code |
?
01 | Simple BTJ Differential Pair Simulation |
02 | |
03 | Rc1 supply c_q1 1k |
04 | Rc2 supply c_q2 1k |
05 | |
06 | Q1 c_q1 b_q1 e_q1 t2n2222a |
07 | Q2 c_q2 b_q2 e_q1 t2n2222a |
08 | |
09 | Iee e_q1 0 2m |
10 | Vcc supply 0 10 |
11 | vin1 b_q1 0 0 |
12 | vin2 b_q2 0 0 |
13 | |
14 | .MODEL t2n2222a NPN |
15 | + ISS=0. XTF= 1. NS = 1.00000 |
16 | + CJS=0. VJS= 0.50000 PTF= 0. |
17 | + MJS=0. EG = 1.10000 AF = 1. |
18 | + ITF=0.50000 VTF= 1.00000 |
19 | + BR =40.00000 IS = 1.6339e-14 VAF=103.40529 |
20 | + VAR=17.77498 IKF= 1.00000 |
21 | + NE =1.31919 IKR= 1.00000 ISC= 3.6856e-13 |
22 | + NC =1.10024 IRB= 4.3646e-05 NF = 1.00531 |
23 | + NR =1.00688 RBM= 1.0000e-02 RB =71.82988 |
24 | + RC =0.42753 RE = 3.0503e-03 MJE= 0.32339 |
25 | + MJC=0.34700 VJE= 0.67373 VJC= 0.47372 |
26 | + TF =9.693e-10 TR =380.00e-9 CJE= 2.6734e-11 |
27 | + CJC=1.4040e-11 FC = 0.95000 XCJC=0.94518 |
28 | |
29 | .op |
30 | .end |
همانطور که گفتیم خط اول عنوان پروژه است. در ادامه ی نت لیست هم باید عناصر مداری را تعریف کنیم. در اینجا ما اول مقاومت ها را تعریف کرده ایم و بعد به سراغ ترانزیستورها رفتیم، در آخر هم منابع ولتاژ و جریان را تعریف شده اند. ولی رعایت این توالی ضروری نیست و به بیان دیگر ترتین تعریف عناصر کاملا اختیاری است.
نکته ای که حتما به آن دقت کرده اید سطرهای خالی موجود در نت لیست است. hspice در هنگام شبیه سازی خطوط خالی را نادیده می گیرد. پس ما می توانیم بدون نگرانی از خطوط خالی برای جداکردن قسمت های مختلف نت لیست استفاده کنیم. به علاوه فضاهای خالی بین پارامترهای مختلف هر دستور هم مقدار اختیاری دارند. یعنی ما لزوما باید یک فضای خالی یا space بین پارامترهای مختلف دستور داشته باشیم ولی پهنای آن برای hspice مهم نیست و این به ما اجازه می دهد نت لیست خود را با استفاده از spcace و tab به صورت مرتب بنویسیم.
مورد بعدی در مورد شکل دستورات است. دستورات hspice اعم از تعریف عناصر، تعریف مدل ها و همچنین دستورات شبیه سازی همه باید در یک خط نوشته شوند. البته اگر بنا به دلایلی دستور ما بیشتر از یک خط باشد می توانیم ادامه ی آن را در خط بعدی بنویسیم، به شرط آن که در ابتدای خط از + استفاده کنیم. برای روشن تر شدن موضوع دستور 14 خطی بین خطوط 14 تا 27 مثال بالا را ببینید.
در مورد دستورات شبیه سازی مثل op یا end هم همانطور که می بینیم باید از یک نقطه در اول دستور استفاده کنیم.