I am trying to create a near ideal voltage buffer using the components of analogLib. I have tried using vcvs and other controlled sources. All these perform the function correctly but always have sharp frequency spikes and dips in the input and output impedances. I can understand if the spikes are insignificant but some of these come to around 90% of the maximum impedance value so when placed in actual circuits it affects the performance at these frequency notches. I have tried using feedback Rs and Cs but they don't seem to help.
Attached below is one example of vcvs under 2port SP analysis where Z11 is shown.
The port settings are:
Port1: Resistance=50ohm; SourceType=Sine; PortNum=1
Port2: Resistance=50ohm; SourceType=DC; PortNum=2
Simulator: SpectreSP Analysis: 10M 10GHz ; Single-Ended
Wondered if anyone could recommend a solution.
That looks like a numerical artefact given the size of the impedances. Can you do two things (to make it easier for a lazy person like me to test):
Please find output below .
Cadence (R) Virtuoso (R) Spectre (R) Circuit SimulatorVersion 184.108.40.206.isr11 64bit -- 14 Aug 2014Copyright (C) 1989-2014 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence, Virtuoso and Spectre are registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective holders.Includes RSA BSAFE(R) Cryptographic or Security Protocol Software from RSA Security, Inc.
input.scs file is attached. (The attachment window does not accept .scs files so renamed to .doc. The file itself is unchanged)
Please let me know if you need anything else.
I ran with spectre version 220.127.116.110.isr8 (I changed R0 and R1 back to 1M too - after trying with 100K as you provided it and getting a similar shaped curve). I get:
I plotted using zpm('sp 1 1) which is the same function that the Z11 button in the Direct Plot form uses (in IC617 at least; I suspect it's been that way since at least some point in IC615).
So all looks OK with the world using this version, at least... I can only imagine it was a numerical problem that's now been resolved (unfortunately I'm sat in an airport so can't really check the older spectre version you're using).
Can you try a newer spectre version?