SPICE 仿真的话,关键还是单核的主频和效率。
这些年俺一直不敢买 AMD 的原因是 SPICE 仿真。(以前) AMD 的 CPU 比 INTEL 的慢很多,Phenom 9600 quad CORE 比 笔记本的 core 2 duo T5500 还慢 。
考虑到单核性能的提升,相比五年内的CPU,其实也远远没有达到 100%。 飞一样的速度提升, 除非来自至少半个数量级的单核性能提升, 不然还是得要失望。
至于工作站的选择, 其实 http://SPEC.ORG 的网站上是有个列表的, 只不过不是 “推荐”, 而是十分客观的列表而已。
SPECviewperf 2020
[benchmark info] [published results] [download benchmark]
https://www.spec.org/gwpg/gpc.data/viewperf2020/summary.html
基本上也可以看到, 堆显卡和核心, 如果钱不是问题。
NVIDIA RTX A6000 在 亚麻孙 上是有货的。
希望各位有机会动手测一下下面的简单测试。
在自己原有的电脑上跑跑看, 有多快。
再到实体店跑跑。
当年也是傻乎乎地玩这些测试:
https://benchmarks.ul.com/legacy-benchmarks
** 截图中的 “Simulation Speed: 699.13 μS/S” 就是俺在乎的 “仿真速度”。
俺需要说明的是, 俺不为厂家站队, 只为自己的银子站队。
俺也是 Cyrix 486-66, PENTIUM 60, PENTIUM 120, Cyrix M2, Pentium Pro, K6-2-266, Celeron 300A, Athlon SLOT A, Pentiium III, AMD Phenom, Core 2 Duo, i7 6/7/8 一路走来,
不会成为牌子的死忠。
AMD 的东西好, 就买 AMD 的。 硬屌的东西好,就买硬屌的。大家都是逼出来的, 家里大都没有矿。。。。。。
LTspice 是免费的, 大家不必要为了测试去购买庞大的 Cadence PSPICE, 甚至不必要用学生版。
LTspice 的完整版就是免费的。
下载点:
另外, 大家可能对免费的东西有点误解。
LTspice 不是单线程的。
别误解它, 冤枉它了。
24 核心的电脑, 也能利用 20 个核心。
** 截图中的 “Simulation Speed: 699.13 μS/S” 就是俺最在乎的仿真速度。
Direct Newton iteration for .op point succeeded. N-Period=1 Fourier components of V(afout) DC component:0.000771316 Harmonic Frequency Fourier Normalized Phase Normalized Number [Hz] Component Component [degree] Phase [deg] 1 9.200e+1 1.797e+0 1.000e+0 1.47° 0.00° 2 1.840e+2 2.247e-5 1.251e-5 113.79° 112.32° 3 2.760e+2 1.916e-5 1.066e-5 -106.92° -108.39° 4 3.680e+2 1.457e-5 8.105e-6 36.52° 35.05° 5 4.600e+2 1.168e-5 6.501e-6 -179.62° -181.09° 6 5.520e+2 9.739e-6 5.419e-6 -35.71° -37.19° 7 6.440e+2 8.346e-6 4.644e-6 108.24° 106.77° 8 7.360e+2 7.303e-6 4.064e-6 -107.79° -109.26° 9 8.280e+2 6.491e-6 3.612e-6 36.19° 34.71° Total Harmonic Distortion: 0.002141%(0.002387%) Date: Wed Jul 1 04:22:43 2020 Total elapsed time: 409.990 seconds.
Total elapsed time: 409.990 seconds.
这电路并非俺首创,大家尽管拿去用(跑测试)就是
"10块人民币做个纯甲类耳放" 的仿真模型。 请把以下的仿真模型内容用 TXT 编辑器存成
maiwenxue1969.ASC 就可以用 LTspice 打开了。
** 截图中的 “Simulation Speed: 699.13 μS/S” 就是俺最在乎的仿真速度。
################################################################
Version 4 SHEET 1 1220 680 WIRE -336 -320 -400 -320 WIRE -272 -320 -336 -320 WIRE -240 -320 -272 -320 WIRE -80 -320 -160 -320 WIRE 608 -320 -80 -320 WIRE 704 -320 608 -320 WIRE 784 -320 704 -320 WIRE 784 -288 784 -320 WIRE 704 -272 704 -320 WIRE 608 -256 608 -320 WIRE -400 -240 -400 -320 WIRE -272 -240 -272 -320 WIRE -80 -240 -80 -320 WIRE 544 -208 304 -208 WIRE 704 -176 704 -208 WIRE 784 -176 784 -208 WIRE 784 -176 704 -176 WIRE 784 -144 784 -176 WIRE -80 -128 -80 -160 WIRE 144 -128 -80 -128 WIRE 304 -128 304 -208 WIRE 304 -128 224 -128 WIRE -400 -112 -400 -176 WIRE -272 -112 -272 -176 WIRE -80 -80 -80 -128 WIRE 608 -80 608 -160 WIRE -336 16 -336 -320 WIRE -80 16 -80 -16 WIRE 272 16 -80 16 WIRE 48 80 -80 80 WIRE 112 80 48 80 WIRE 272 80 272 16 WIRE 272 80 192 80 WIRE 608 80 608 0 WIRE 608 80 272 80 WIRE 608 112 608 80 WIRE 768 112 608 112 WIRE 976 112 832 112 WIRE 1104 112 976 112 WIRE -80 144 -80 80 WIRE 1104 144 1104 112 WIRE 304 160 304 -128 WIRE 304 160 192 160 WIRE 192 176 192 160 WIRE -496 192 -640 192 WIRE -336 192 -336 96 WIRE -336 192 -432 192 WIRE -288 192 -336 192 WIRE -144 192 -208 192 WIRE 48 192 48 80 WIRE 608 208 608 112 WIRE -640 240 -640 192 WIRE 304 240 304 160 WIRE 544 256 368 256 WIRE 1104 256 1104 224 WIRE -80 288 -80 240 WIRE 192 288 192 240 WIRE 192 288 -80 288 WIRE 240 288 192 288 WIRE -336 304 -336 192 WIRE -80 336 -80 288 WIRE 48 352 48 272 WIRE 304 384 304 336 WIRE 368 384 368 256 WIRE 368 384 304 384 WIRE 608 384 608 304 WIRE -640 400 -640 320 WIRE 304 416 304 384 WIRE 1104 464 1104 336 WIRE -336 560 -336 384 WIRE -80 560 -80 416 WIRE -80 560 -336 560 WIRE 48 560 48 416 WIRE 48 560 -80 560 WIRE 304 560 304 496 WIRE 304 560 48 560 WIRE 608 560 608 464 WIRE 608 560 304 560 WIRE 608 624 608 560 FLAG 608 624 0 FLAG 1104 464 0 FLAG -272 -112 0 FLAG 784 -144 0 FLAG -640 400 0 FLAG -400 -112 0 FLAG 976 112 AFout FLAG -640 192 AFin SYMBOL pnp -144 240 M180 SYMATTR InstName Q1 SYMATTR Value BC556B SYMBOL res -96 320 R0 SYMATTR InstName R1 SYMATTR Value 33K SYMBOL res -304 208 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R2 SYMATTR Value 1000 SYMBOL res -352 0 R0 SYMATTR InstName R3 SYMATTR Value 100K SYMBOL res -352 288 R0 SYMATTR InstName R4 SYMATTR Value 100K SYMBOL res -144 -336 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R5 SYMATTR Value 33K SYMBOL res 208 64 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R6 SYMATTR Value 600 SYMBOL res -96 -256 R0 SYMATTR InstName R7 SYMATTR Value 600 SYMBOL res 128 -112 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R8 SYMATTR Value 2000 SYMBOL res 592 -96 R0 SYMATTR InstName R9 SYMATTR Value 1 SYMBOL res 592 368 R0 SYMATTR InstName R10 SYMATTR Value 1 SYMBOL res 1088 240 R0 SYMATTR InstName R11 SYMATTR Value 510 SYMBOL res 288 400 R0 SYMATTR InstName R12 SYMATTR Value 8K SYMBOL npn 240 240 R0 WINDOW 3 -51 118 Left 2 SYMATTR InstName Q2 SYMATTR Value 2N2222 SYMBOL npn 544 -256 R0 WINDOW 3 -95 81 Left 2 SYMATTR InstName Q3 SYMATTR Value 2N2222 SYMBOL npn 544 208 R0 WINDOW 3 -50 126 Left 2 SYMATTR InstName Q4 SYMATTR Value 2N2222 SYMBOL cap -288 -240 R0 SYMATTR InstName C1 SYMATTR Value 220e-6 SYMBOL cap 32 352 R0 SYMATTR InstName C2 SYMATTR Value 470e-6 SYMBOL cap -96 -80 R0 SYMATTR InstName C3 SYMATTR Value 470e-6 SYMBOL cap 832 96 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 SYMATTR Value 330e-6 SYMBOL res 32 176 R0 SYMATTR InstName R13 SYMATTR Value 300 SYMBOL cap -432 176 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 2 SYMATTR InstName C5 SYMATTR Value 4.7e-6 SYMBOL voltage 784 -304 R0 WINDOW 123 0 0 Left 0 WINDOW 39 51 54 Left 0 SYMATTR SpiceLine Rser=0.05 SYMATTR InstName V1 SYMATTR Value 7.5 SYMBOL cap 688 -272 R0 WINDOW 3 -12 115 Left 2 SYMATTR InstName C6 SYMATTR Value 1000e-6 SYMBOL voltage -640 224 R0 WINDOW 123 24 132 Left 0 WINDOW 39 0 0 Left 0 SYMATTR Value2 AC 1 0 SYMATTR InstName V2 SYMATTR Value SINE(0 0.6 92) SYMBOL zener -384 -176 R180 WINDOW 0 24 72 Left 0 WINDOW 3 24 0 Left 2 SYMATTR InstName D2 SYMATTR Value BZX84C6V2L SYMBOL cap 176 176 R0 SYMATTR InstName C7 SYMATTR Value 100p SYMBOL ind 1088 128 R0 WINDOW 3 -74 57 Left 2 SYMATTR InstName L1 SYMATTR Value 38e-3 TEXT 368 160 Left 2 !.tran 0 0.3 0 1e-8 TEXT 72 -248 Left 2 !.options plotwinsize=0 TEXT 40 -216 Left 2 !.options numdgt=15 TEXT 352 -56 Left 2 !.four 92 9 v(afout) TEXT 352 32 Left 2 !;ac oct 10000 10 1e5
请把以上的仿真模型内容用 TXT 编辑器
存成 maiwenxue1969.ASC 就可以用 LTspice 打开了。
如果您打算用其他 SPICE 软件来验证或者测试,
网表在这里(需要修改一下)
* 1969.asc Q1 N012 N009 N007 0 BC556B R1 N012 0 33K R2 N008 N009 1000 R3 N001 N008 100K R4 N008 0 100K R5 N002 N001 33K R6 N006 N007 600 R7 N002 N004 600 R8 N004 N003 2000 R9 N005 N006 1 R10 N014 0 1 R11 N011 0 510 R12 N010 0 8K Q2 N003 N012 N010 0 2N2222 Q3 N002 N003 N005 0 2N2222 Q4 N006 N010 N014 0 2N2222 C1 N001 0 220e-6 C2 N013 0 470e-6 C3 N004 N006 470e-6 C4 AFout N006 330e-6 R13 N007 N013 300 C5 N008 AFin 4.7e-6 V1 N002 0 7.5 Rser=0.05 C6 N002 0 1000e-6 V2 AFin 0 SINE(0 0.6 92) AC 1 0 D2 0 N001 BZX84C6V2L C7 N003 N012 100p L1 AFout N011 38e-3 .model D D .lib standard.dio .model NPN NPN .model PNP PNP .lib standard.bjt .tran 0 0.3 0 1e-8 .options plotwinsize=0 .options numdgt=15 .four 92 9 v(afout) ;ac oct 10000 10 1e5 .backanno .end
(WINE)i7 7700 每秒钟仿真 600~750 μS , 也就是不到 1mS. 俺很希望找到一个 CPU 每秒钟的仿真速度超过 3mS 的,但是俺认识的人都劝俺, 这辈子死心了罢。
# cpuinfo Python Version: 3.7.7.final.0 (64 bit) Cpuinfo Version: (5, 0, 0) Vendor ID: GenuineIntel Hardware Raw: Brand: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz Hz Advertised: 3.6000 GHz Hz Actual: 4.0962 GHz Hz Advertised Raw: (3600000000, 0) Hz Actual Raw: (4096240000, 0) Arch: X86_64 Bits: 64 Count: 8 Raw Arch String: x86_64 L1 Data Cache Size: 128 KiB L1 Instruction Cache Size: 128 KiB L2 Cache Size: 1 MiB L2 Cache Line Size: L2 Cache Associativity: L3 Cache Size: 8192 KB Stepping: 9 Model: 158 Family: 6
** 截图中的 “Simulation Speed: 699.13 μS/S” 就是俺最在乎的仿真速度。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
换了台电脑,也是 i7 7700 的, 快了一点点,1070 μS/S.
都是在 WINE 下面跑。
[root@mama ~]# cpuinfo Python Version: 3.8.3.final.0 (64 bit) Cpuinfo Version: (5, 0, 0) Vendor ID: GenuineIntel Hardware Raw: Brand: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz Hz Advertised: 3.6000 GHz Hz Actual: 4.0149 GHz Hz Advertised Raw: (3600000000, 0) Hz Actual Raw: (4014899000, 0) Arch: X86_64 Bits: 64 Count: 8 Raw Arch String: x86_64 L1 Data Cache Size: 128 KiB L1 Instruction Cache Size: 128 KiB L2 Cache Size: 1 MiB L2 Cache Line Size: L2 Cache Associativity: L3 Cache Size: 8192 KB Stepping: 9 Model: 158 Family: 6
LTspice 不是单线程的。
下载点:
补充说明:
fast SPICE 和 SPICE 不是一回事。
对数字电路来说,fast SPICE用表格模型(tablemodel)来代替复杂的方程模型是个绝妙的选择。通过简化 fast SPICE 可以比传统的 SPICE 快几十到上百倍,但这是以牺牲精度换来的。 fast SPICE 的精度在SPICE的 5-10% 之内。
如果要降低精度, 把上面例子中的 “TEXT 368 160 Left 2 !.tran 0 0.3 0 1e-8 ”
修改成 “TEXT 368 160 Left 2 !.tran 0 0.3 0 1e-6 ”
您也能看到仿真速度提高两个数量级。
这只是精度换速度, 不是真的快了。
也许您常用的软件恰好是过程相关的。
就像生孩子一样, 一个人要十月怀胎,
一亿个人怀胎, 同样要十月。
不可能一个生鼻子, 一个生眼睛, 一个生手脚躯干
...... 最后组装成一个人