![](https://habrastorage.org/getpro/habr/post_images/4db/83b/0ff/4db83b0ffb894726173680d6e3206469.png)
Qucsã¯ããªãŒãã³ãœãŒã¹ã®ã¯ãã¹ãã©ãããã©ãŒã ïŒLinuxãWindowsãMacOS-XïŒé»ååè·¯ã·ãã¥ã¬ãŒã¿ã§ãã 圌ã«ã€ããŠãHabréã«é¢ããç§ã®ä»¥åã®èšäºãæããŠãã ããïŒ
- Qucs-é»ååè·¯ã·ãã¥ã¬ãŒã·ã§ã³çšã®ãªãŒãã³ãœãŒã¹CAD habrahabr.ru/post/248005
- Qucsãããžã§ã¯ããã¥ãŒã¹ïŒãªãªãŒã¹0.0.19ã®æºåhabrahabr.ru/post/259193
- Qucsãããžã§ã¯ããã¥ãŒã¹ïŒSPICEã®åè·¯ã¢ããªã³ã°ããµããŒããããªãªãŒã¹ã®åè£ãå©çšå¯èœã§ãhabrahabr.ru/post/263555
çŸåšãQucsã®2ã€ã®ããŒãžã§ã³ã䞊è¡ããŠãªãªãŒã¹ãããæºåäžã§ãã
- Qucs-éåžžã®æ©èœã»ãããæã€ã¢ã»ã³ããªã Qucsatorã·ãã¥ã¬ãŒã·ã§ã³ãšã³ãžã³ã®ã¿ã䜿çšãããŸãã
- QucsS-SPICEïŒ Ngspice ã XYCE ã SpiceOpusãšã³ãžã³ããµããŒããããŠããŸãïŒãããã©ã«ãã®ã¢ããªã³ã°ãšã³ãžã³ãšããŠäœ¿çšããæ©èœãåããã¢ã»ã³ããªã ã¢ã»ã³ããªããŒã¿ã«ã¯ãããŒãžã§ã³çªå·ã®åŸã«æåãSããå«ãŸããŸãã ãšã³ãžãã¢ã«ãšã£ãŠæ倧ã®é¢å¿äºã¯Ngspiceã§ãã
Qucsã®æ¬¡ã®ãªãªãŒã¹ã¯åã³ç¡æéã«å»¶æãããŸãããSPICEããµããŒãããQucs-0.0.19S-RC6ãªãªãŒã¹ã®åè£ããªãªãŒã¹ãããŸããã ãã®ãªãªãŒã¹åè£ã¯ã以åã®ãªãªãŒã¹åè£ãšã¯å€§ããç°ãªããŸãã 2ã€ã®ãã©ãããã©ãŒã ïŒWindowsããã³LinuxïŒã®ããã±ãŒãžãããããããŠã³ããŒãããŸãïŒ github.com/ra3xdh/qucs/releases/tag/0.0.19S-rc6
ã«ããã®äžã§ããã®ãªãªãŒã¹åè£ã®é©æ°ã«ã€ããŠéç¥ãããŸãã
èšçœ®
Linux
Linuxã®ã€ã³ã¹ããŒã«æé ã¯å€æŽãããŠããŸããã ãœãŒã¹ã³ãŒãããããã±ãŒãžãåéããå¿ èŠããããŸãã éçºè ã«ã¯ã³ã³ãã€ã©ãšQt4ãå¿ èŠã§ãã QucsãšQucsatorã·ãã¥ã¬ãŒã·ã§ã³ãšã³ãžã³ãåå¥ã«æ§ç¯ããå¿ èŠããããŸãã
tar xvfz qucs-0.0.19S-rc6.tar.gz cd qucs-0.0.19S-rc6 cd qucs ./configure make make install cd ../qucs-core ./configure make make install
ãã®å Žåããã¹ãŠã/ usr / localã«ã€ã³ã¹ããŒã«ããã以åã®ããŒãžã§ã³ã®Qucsãæ¢ã«ããã«ã€ã³ã¹ããŒã«ãããŠããå ŽåãäžæžããããŸãã QucsSãå¥ã®ãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ããã«ã¯ãconfigureã³ãã³ããå€æŽããå¿ èŠããããŸãã
./configure --prefix=/some_qucs_location/
SPICEã®ã¿ââãå¿ èŠãªå Žåã¯ãQucsã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ãæ§ç¯ã§ããŸãã
tar xvfz qucs-0.0.19S-rc6.tar.gz cd qucs-0.0.19S-rc6/qucs ./configure --prefix=/some-qucs-location/ make make install
Ngspiceã¯ãããã±ãŒãžãããŒãžã£ãŒã䜿çšããŠã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ããã¯ãã¹ãŠã®ææ°ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãããŸãã
QucsSã¯æåã®èµ·åæã«ãããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒãæå®ããããã«æ±ããŸãã
çª
Windowsã®å Žåããã€ããªã€ã³ã¹ããŒã©ãŒãããŠã³ããŒãããå¿ èŠããããŸãã QucsSãšãšãã«ãç¹å¥ãªNgspiceã¢ã»ã³ããªã䜿çšããããšããå§ãããŸããããã¯ãªãªãŒã¹ããŒãžãããããŠã³ããŒãã§ããŸãã ãããžã§ã¯ããåäœããå ¬åŒãµã€ãããããŠã³ããŒããããNgspiceã¢ã»ã³ããªã¯ã次ã®ããã«ãã°ãæžã蟌ãããšãèš±å¯ããŸããã ç¡å¹ã§ãªãGUIããããŸãã
æ°æ©èœQucs-0.0.19S-RC6ã®æŠèŠ
ãã°ã®ä¿®æ£ãšããããããžã§ã¯ãã®ã³ãŒãããŒã¹ãšã®åæã«å ããŠãQucsSã«ã¯å€ãã®éåžžã«éèŠãªæ°æ©èœãå«ãŸããŠããŸãã
ããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒãèšå®ãã
SPICEã·ãã¥ã¬ãŒã¿ãŒã䜿çšããŠã·ãã¥ã¬ãŒã·ã§ã³ãéå§ããæé ãå€æŽãããŸããã ããã§ããŠãŒã¶ãŒãã·ãã¥ã¬ãŒã·ã§ã³ãåŒã³åºããã³ã«å®è¡ãããããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒãå²ãåœãŠãããšãã§ããŸãïŒããšãã°ãF2ãæŒããŠïŒã SPICEã§ã·ãã¥ã¬ãŒãããç¹å¥ãªã¡ãã¥ãŒé ç®ã䜿çšããå¿ èŠã¯ãªããªããŸããã SPICEãšã³ãžã³ã®1ã€ãéžæãããŠããå Žåãããã°ã©ã ãæ©èœããããã«Qucsatorãšã³ãžã³ãšå®å šã€ã³ã¹ããŒã«ã¯äžèŠã«ãªããŸãã
ããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒã¯ãããã°ã©ã ã®æåã®èµ·åæã«å²ãåœãŠãããã¡ã€ã³ã¡ãã¥ãŒã§ã ã·ãã¥ã¬ãŒã·ã§ã³ã->ãããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒãéžæããéžæããŠå²ãåœãŠãããšãã§ããŸãã SPICEãšã³ãžã³ã®1ã€ãéžæãããŠããå Žåãäºææ§ã®ãªãã³ã³ããŒãã³ããšã©ã€ãã©ãªã¯è¡šç€ºãããŸããã ããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒã®ã€ã³ã¹ããŒã«ãã€ã¢ãã°ã¯æ¬¡ã®ããã«ãªããŸãã
![](https://habrastorage.org/files/864/a31/8e2/864a318e2b6b40248bd927ffd2191f3b.png)
ãŠã£ã³ããŠäžéšã®ããããããŠã³ãªã¹ãã§ããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒãéžæããå¿ èŠããããŸãã WindowsãŠãŒã¶ãŒã¯ãã·ãã¥ã¬ãŒã¿ãŒå®è¡å¯èœãã¡ã€ã«ãžã®æ£ãããã¹ãæå®ããå¿ èŠããããŸãã
Ngspiceã䜿çšããåäœç¹ã®èšç®
SPICEãšã³ãžã³ã®ïŒF8ãæŒããŠïŒçŽæµã®åäœç¹ã®èšç®ãå®è£ ããŸããã Ngspiceãããã©ã«ãã®ã·ãã¥ã¬ãŒã¿ãŒãšããŠå²ãåœãŠãããŠããå Žåãåäœç¹ãèšç®ãããŸãã èšç®çµæã¯æ¬¡ã®ããã«ãªããŸãã
![](https://habrastorage.org/files/af1/3cf/bd6/af13cfbd6b2249c4a966dd85ed6ad82d.png)
æ°ããXPSPICEã¢ããã°ãããã¯ã»ãã
XSPICEã³ã³ããŒãã³ãã¯ãç¹å¥ãªXanalogueã©ã€ãã©ãªã«ç§»åãããŸãã XSPICEã§ã¯ããããã¯ã¬ãã«ã§åè·¯ãã¢ãã«åããã³ã³ããŒãã³ãã䜿çšã§ããŸãã æ°ããã©ã€ãã©ãªã«ã¯ãã¢ã³ããå ç®åšãä¹ç®åšãé€ç®åšãç©ååšããªããã¿ãŒãªã©ã®ã¢ãã«ãå«ãŸããŠããŸãã ãããã¯æ¬¡ã®ããã«ãªããŸãã
![](https://habrastorage.org/files/85b/52d/7b9/85b52d7b929c48a6a87a3d432ebeb174.png)
SPICEãã£ã¬ã¯ãã£ã.MODELããã³.INCLUDE
SPICEäºæã®åå°äœã³ã³ããŒãã³ãã®ã»ããã«å ããŠãåè·¯ã«.MODELããã³.INCLUDEãã£ã¬ã¯ãã£ããé 眮ããæ©èœãè¿œå ãããåè·¯å ã®åå°äœã³ã³ããŒãã³ãã®å€æŽãããŠããªãã©ã€ãã©ãªã®äœ¿çšãå¯èœã«ãªããŸãã .INCLUDEãã£ã¬ã¯ãã£ãã䜿çšãããšãã©ã€ãã©ãªãåç §ã§ããŸãã.MODELãã£ã¬ã¯ãã£ãã䜿çšãããšãSPICEã¢ãã«ã1è¡ãã€ã³ããŒããŠãåè·¯ã«åã蟌ãããšãã§ããŸãã é»çå¹æãã©ã³ãžã¹ã¿ãããµãŒåè·¯ã¯ããã®æ什ã®äœ¿çšæ³ã瀺ããŠããŸãã
![](https://habrastorage.org/files/2e0/574/472/2e057447252c4613a2ce5705a111aa1a.png)
ãã©ã³ã¹ã¢ãã«ãšã³ã¢ã¢ãã«
匷ç£æ§ã³ã¢ãåãããã©ã³ã¹ãšã³ã€ã«ãã·ãã¥ã¬ãŒãããã³ã³ããŒãã³ããè¿œå ããŸããã ãã©ã³ã¹ãã©ãŒããŒãå«ããã©ã³ã¹ãã©ãŒããŒã©ã€ãã©ãªãšãã³ã¢ã¢ãã«ïŒäž»ã«ã¹ããŒã«ã³ã¢ïŒãå«ãã³ã¢ã©ã€ãã©ãªããããŸãã ãã®æ©èœã¯ãNgspiceãä»ããŠã®ã¿äœ¿çšã§ããŸãã ãã®å³ã¯ãVLFãã¥ãŒãïŒ6P6Sã©ã³ãïŒã®ã¹ããŒã ã瀺ããŠããŸããããã¯ããã©ã³ã¹ã®æ°ããã©ã€ãã©ãªã¢ãã«ãšSPICEã¢ãã«ã®äœ¿çšã瀺ããŠããŸãã
![](https://habrastorage.org/files/af4/8b4/be7/af48b4be76f34050876802301c402662.png)
IcoupleïŒå·»ç·ïŒã³ã³ããŒãã³ããšCoreïŒã³ã¢ïŒã³ã³ããŒãã³ãã®çµã¿åããã䜿çšããŠãç¬èªã®ãã©ã³ã¹ãã©ãŒããŒãäœæã§ããŸãã Kã«ãããªã³ã°ã³ã³ããŒãã³ãã䜿çšããŠçæ³çãªãã©ã³ã¹ãäœæã§ããŸã
![](https://habrastorage.org/files/a47/292/697/a4729269701e406fa773132fc933cb21.png)
ã«ã¹ã¿ã SPICEã³ã³ããŒãã³ãã®äœæ
2ã€ã®ã³ã³ããŒãã³ããSPICEæ±çšããã€ã¹ããšãXSPICEæ±çšããã€ã¹ããè¿œå ãããŸããã SPICEã§å²ãåœãŠãããŠãããã³ã®æ°ãšæåã®ã¿ãç¥ã£ãŠãæ°ããéæšæºã³ã³ããŒãã³ããäœæã§ããŸãã ããã¯ãã³ã³ããŒãã³ããæ¢ã«ãšã³ãžã³ã«è¿œå ãããŠãããã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãé ãå Žåã«äŸ¿å©ã§ãã ããã¯ãåãªãªãŒã¹ã§æ°ããã³ã³ããŒãã³ããè¿œå ãããXYCEã·ãã¥ã¬ãŒã¿ãŒã«ç¹ã«åœãŠã¯ãŸããŸãã æ·»ä»ã®å³ã§ã¯ãéåžžã®é»çå¹æãã©ã³ãžã¹ã¿ãéæšæºã³ã³ããŒãã³ããšããŠå®£èšãããŠããŸãã é»çå¹æãã©ã³ãžã¹ã¿ã¢ãã«ã¯ã.MODELãã£ã¬ã¯ãã£ãã䜿çšããŠæ¥ç¶ãããŸãã
![](https://habrastorage.org/files/896/80e/f65/89680ef6570446e48bdabd01ff504c74.png)
XSPICE CodeModelã®ãµããŒã
XSPICE CodeModelã¢ããã°ã¢ãã«èšè¿°èšèªïŒ1991幎以æ¥ç¥ãããŠããïŒã®ãµããŒããè¿œå ãããŸããã æ°ããã¢ãã«ãäœæããåã³ã³ãã€ã«ããã«ããããNgspiceã¢ããªã³ã°ãšã³ãžã³ã«æ¥ç¶ã§ããŸãã NgspiceãšXSPICEã®ããã¥ã¢ã«ã§CodeModelã¢ãã«ã®æ§æã®è©³çŽ°ãèªãããšãã§ããŸãã ãXSPICEæ±çšããã€ã¹ãã³ã³ããŒãã³ãïŒUGOã³ã³ããŒãã³ãïŒãšãXSPICE CodeModelãïŒã¢ãã«ãœãŒã¹ã³ãŒãïŒã®çµã¿åããã䜿çšããŠãCodeModelã¢ãã«ãæ¥ç¶ã§ããŸãã å³ã§ã¯ããã®ãããªã¢ãã«ã®äœ¿çšäŸãèŠãããšãã§ããŸãã
![](https://habrastorage.org/files/eaa/6ac/a0f/eaa6aca0fafa4f87b0e51f5504cc0084.png)
CodeModelã¢ãã«ã¯ãcfunc.modïŒã¢ãã«ã®å®è£ ïŒãšifspec.ifsïŒã€ã³ã¿ãŒãã§ã€ã¹ã®èª¬æïŒã®ãã¢ã®ãã¡ã€ã«ã§æ§æãããŠããŸãã ã¢ã³ãã¢ãã«ã®ãœãŒã¹ã³ãŒãïŒcfunc.modãã¡ã€ã«ïŒCodeModelã¯æ¬¡ã®ãšããã§ãã
void cm_gain(ARGS) Mif_Complex_t ac_gain; if(ANALYSIS != MIF_AC) { OUTPUT(out) = PARAM(out_offset) + PARAM(gain) * ( INPUT(in) + PARAM(in_offset)); PARTIAL(out,in) = PARAM(gain); } else { ac_gain.real = PARAM(gain); ac_gain.imag= 0.0; AC_GAIN(out,in) = ac_gain; } }
å€æŽãããŠããªãã©ã€ãã©ãªãSPICEã¢ãã«ã«æ¥ç¶ãã
ç¹å¥ãªã³ã³ããŒãã³ããSPICEã©ã€ãã©ãªããã€ã¹ããè¿œå ãããŸãããããã«ãããå€æŽããã³äºææ§ã¬ã€ã€ãŒãªãã§SPICEã©ã€ãã©ãªã䜿çšã§ããŸãã ã³ã³ããŒãã³ãã§äœ¿çšå¯èœãªæåãã¿ãŒã³ã®ããããã䜿çšã§ããŸãã ãããŸã§ã®ãšããã3ãŸãã¯5ãã³ã®ãªãã¢ã³ãçšã®ãã³ãã¬ãŒãã®ã¿ãå©çšå¯èœã§ãã ã©ã€ãã©ãªãžã®ãã¹ãã³ã³ããŒãã³ãã®ååãã·ã³ãã«ãã³ãã¬ãŒããããã³å¿ èŠã«å¿ããŠã³ã³ããŒãã³ãã®ãã©ã¡ãŒã¿ãŒã瀺ãã ãã§ååã§ãã ãã®å³ã¯ããã®æ¹æ³ã§ãªãã¢ã³ããæ¥ç¶ããæ¹æ³ã瀺ããŠããŸãã ãã®ããã»ã¹ãèªååããäºå®ã§ãã å°æ¥ãSPICEã©ã€ãã©ãªã¯ãã€ãã£ãQucsã©ã€ãã©ãªãšãšãã«ã©ã€ãã©ãªãããŒãžã£ã«è¡šç€ºããããããã®ã³ã³ããŒãã³ãã¯ã¹ããŒãã«æ¿å ¥ã§ããããã«ãªããŸãã PCAD Library Executiveãšåæ§ã«ãã·ã³ãã«ãšã·ã³ãã«ã®ã©ã€ãã©ãªãè¿œå ããããšãèšç»ãããŠããŸãã
![](https://habrastorage.org/files/ff3/c27/d82/ff3c27d82fc3475d80988e770faa51a3.png)
ãããã«
QucsSãããžã§ã¯ããã©ã®çšåºŠæ£ç¢ºã«çºå±ãããã¯äžæã§ãã çŸåšãQucsãšQucsSã¯ãŸã£ããç°ãªããŸãã ããŸããŸãªãªãã·ã§ã³ãæ€èšããŠããŸãã ãããããQucsãšQucsSã¯ä»å¹Žçµåããã§ãããã ããããQucsSãä»å¹Žã¯å¥ã®ååã®ç¬ç«ãããããžã§ã¯ããšããŠéžã°ããããšã¯é€å€ãããŠããŸããã