前言
其实几乎所有的EDA工具(这里只是指板级设计工具),都提供了仿真的功能,功能的完善程度取决于这个公司来头多大,例如cadence中的原理图工具,它收购了pspice之后进行了改进并集成到其中,可以进行仿真,同时有巨量的仿真库。
而国内常用的仿真软件multisim和proteus,虽然在课堂上都是用来仿真,但是其实他们都有配套的PCB工具,还有Tina软件同样包含各种工具,从数字逻辑仿真到模拟仿真到PCB绘制.
免费的Tina-TI使用比较多,仿真模型比完整版TI有些缺少,也没有其他更多的功能。 另外,ltspice是真就只能仿真,但是得益于ADI的支持,ADI产品基本都能仿真。
仿真的实现方法根据仿真目的和实际需求有很多方法,但是最早诞生于伯克利大学的spice程序则是应用非常广泛的一个(TODO:找资料来),spice对于电路使用网表描述,并根据网表和器件的模型进行方程的解算得到仿真结果,spice是开源的,因此市面上有很多产品都基于类似的设计。 下面要使用的ngspice就是基于spice3f5和其他spice仿真工具改进的开源spice仿真工具。
刚刚提到了网表,但是在这个时代,大多数情况下网表概念被弱化了,实际上网表就是用字符串来描述器件如何连接,毕竟一个文本文件在计算机早期时代是更容易输入到电脑上进行计算的(输入图形甚至可能做不到),当然在如今,网表依然是一个不错的描述工具,对于spice程序来说不算过时,大部分spice软件依然可以兼容其他软件导出的网表。(实际上微电子领域可能入门的时候更为熟悉网表操作)
为什么不用其他工具呢?
开源 NO.1
不想学了其他的了,为了方便直接画原理图。
实际上了解到KiCad的时候最开始我并不知道它可以仿真,直到听到一个国外上学的老哥说他们作业要求用这个来做我才知道这东西可以仿真,当时KiCad6还刚出,中文网都没有相关的教程。后来了解到实际上官方的教程还是比较多的(见下面参考链接)。包括ngspice的官网教程也是推荐使用KiCad.
下面给出几个相关度最高的链接。
参考链接
- SPICE Simulation | KiCad EDA –这个是KiCad官网介绍,很简单的介绍。
- Simulation examples for KiCad/Eeschema/ngspice - Schematic / Simulation (Ngspice) - KiCad.info Forums –这个是KiCad论坛中给出的仿真案例,包含了三十多个电路,覆盖非常全。
- KiCad Eeschema as GUI for ngspice, tutorial for setting up the simulation (sourceforge.io) – 这是nspice网站用KiCad做的入门教程,非常详细。
- ngspice tutorial for beginners (sourceforge.io) – 这是ngspice入门的第一个教程,值得看一下了解一下
Kicad中的仿真可以做什么
在KiCad中,当前的版本(6.0x),主要是模拟电路的仿真。
kicad已经更新了,在KiCad得到Net的捐赠后(KiCad Project Awarded NLnet Grant),kicad 在接受捐赠之后承诺要提高仿真的易用性,实际上计划表推到8.0之后了,而个人觉得7.0的仿真bug似乎更多,因此这里还是用6.0版本
同时,当前的内置功能比较简单,只能进行瞬态仿真、交流仿真、直流转换的图形显示,其他的仿真结果则需要自己导出网表后使用完整版ngspice进行仿真。
ngspice简述
使用完整的Ngspice仿真
导出的网表为xxx.cir 直接在命令行中输入ngspice xxx.cir即可执行,还有更多可选参数可以使用。
利用完整的ngspice和命令,可以进行更多仿真内容,例如蒙特卡洛仿真分析,噪声仿真。