• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. RF Design
  3. S-parameters from a RF Circuit - Circulator created from...

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 63
  • Views 6387
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

S-parameters from a RF Circuit - Circulator created from LC resonators

EduardoGS
EduardoGS over 8 years ago

Hello everyone.

I am trying to simulate, for my undergraduate thesis, a new RF circulator that was published by Nature Physics on article called "Magnetic-free non-reciprocity and isolation based on parametrically modulated coupled-resonator loops".

My doubt is how to create a setup that understands one RF signal (sweep from 140MHz to 200Mhz) modulated by a signal with fixed frequency (15Mhz) and that has phase 120º  difference between each one. After this, my goal is to plot S parameters and see the transmission from  port 1 to ports 2 and 3. My curent setup use QPSS and QPSP, but the results are not good.

I have the article and I can send to you to read and understand better the problem if you wish.

Best regards.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Maybe you'd be willing to post the netlist (input.scs)? That way we can see the circuit and the analysis statements (being able to see the test bench plus analysis statements at least would make understanding what the problem is much simpler). At the moment there's far too much guesswork - even if I'd been able to see the paper (which I don't think I need to), there's a lot of potential for having made a mistake in the setup which that wouldn't reveal.

    Also "the results are not good" is not very precise!

    If you can't reveal the entire circuit (which would be best, as there's a chance of being able to check it out in Spectre that way), being able to see the part of the netlist for the test bench and analysis statements would be next best.

    Thanks,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • EduardoGS
    EduardoGS over 8 years ago

    Dear Andrew,

    Follow a link to my dropbox it contains: the files "input.scs" and spectre.out", the pdf's article and some figures it were captured from my results. These figures shows how my simulation it is wrong.

    www.dropbox.com/.../AAA-ENlKpXe4vQeTFwyAETiWa

    Best regards,

    Eduardo. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Eduardo,

    It's not entirely obvious what you're expecting, but I would recommend doing the following:

    1. Turn on harmonic balance on the form (rather than shooting)
    2. Remove the tstab - I doubt you need it
    3. Remove the 1pF cmin - I doubt you need that (and that's pretty large too for a capacitance from every node to ground which is there as a convergence aid).

    Not sure what your Diode_Model looks like, but having done this with a simple diode model, I don't get such lumpy results. It's not obvious to me if you're really trying to find the s-parmeters between ports 1 and 2 or 3 with no frequency translation (i.e input and output frequencies are 140M->200MHz).

    I didn't read the paper. I'm not sure whether you had the rights to effectively re-publish it in your dropbox.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • EduardoGS
    EduardoGS over 8 years ago
    Andrew,

    Sorry about the article. I read the "right and permissions" and I discovered that is illegal. Therefore, I removed from my dropbox.

    About the simulation, my goal is: see the power to flow from port 1 to 2 or port 2 to 3 or port 3 to 1, but not in the reverse direction. Beyond that the results need to show the non-reciprocity, e.g., S11 = -20dB, S31 = -20dB and S21 = 0 dB when the frequency is 170MHz (with BW = 10Mhz), the RF signal is inserted at port 1 and Vdc=1.99V.

    The varactor (SMV1237 - the same used on article) was made following the spice model. ( Follow the link: www.skyworksinc.com/.../Varactor_SPICE_Model_AN_200315C.pdf ). I made the simulations for to validate this model and my results are compatible with the one showed on spice model and with the description on article (C = 30pF when Vdc = 3V). The Diode_Model represents the diode used on varactor model designed. The "diode.scs" (represents Diode_Model) and "input_varactor.scs" (from varactor's testbench) were added on dropbox.

    The figures on the folder contains the results of two situations. First one represents the case when no modulation signal was inserted. The article results shows that S21 are equal to S31 in that case described above. This means that without signal modulation this device behaves as power divider and not as a circulator. The second situation represents the case with the signal modulation and on this case, the device behaves as a circulator. The article reports that Vm = 0.6V (modulation signal voltage) and has no information about the RF signal. It also reports that Vdc = 1.99V (DC voltage inserted on ports 4 to 6 on the device). The Vdc is a frequency adjust. This means that if Vdc >= 1.73V and Vdc =< 4.50V the resonance zone is from 160Mhz to 210MHz. When Vdc=1.99 the device resonance zone is 170MHz.

    On article besides the simulation it is contains the experimental setup. In this case, the signals RF and Modulation are generated by VNA (RF from 140MHz to 200Mhz) and Waveform generator (for 15MHz signal). The modulation signal is passes through a Power Divider and then by a Phase Shifter (because the three modulation signals need to have 120º on phase each other) and finally by a Diplexer. The low-pass ports of three diplexers receives the Modulation signals and the high-pass ports receives the VNA. Then the output of diplexer is connected at ports 1 to 3 of device.

    I will change the setup with your specification as soon as possible and reports here.

    Best regards,
    Eduardo.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • EduardoGS
    EduardoGS over 8 years ago

    The link for to buy the article and to see some important informations, like the results graphics: www.nature.com/.../nphys3134.html

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • EduardoGS
    EduardoGS over 8 years ago

    I was simulated again with your specifications. The results were the same, but the time of simulation was reduced.

    Here the input.scs:

    // Generated for: spectre
    // Generated on: Sep 26 22:40:41 2016
    // Design library name: TCC2
    // Design cell name: circulador_1_TB
    // Design view name: schematic
    simulator lang=spectre
    global 0
    parameters Fm=15.00000M Vm=600m C1=300p Cc=5.6p Cdcb=10u L1=270n L2=27n \
        Lc=1u Lrfc=2.7u Vdc=1.99 Frf=170M
    include "/usr/local/IC614/tsmc13/tsmc13rf/../models/tsmc13rf.scs"
    include "/home/eslam/TCC2/diode.scs"

    // Library name: TCC2
    // Cell name: varactor_SMV1237
    // View name: schematic
    subckt varactor_SMV1237 P_anode P_cathode
        D0 (net010 P_cathode) Diode_Model area=1
        R0 (net07 net010) resistor r=130.00m
        C0 (net07 P_cathode) capacitor c=9p
        L0 (P_anode net07) inductor l=1.7n
    ends varactor_SMV1237
    // End of subcircuit definition.

    // Library name: TCC2
    // Cell name: circulador_1
    // View name: schematic
    subckt circulador_1 Porta1 Porta2 Porta3 Porta4 Porta5 Porta6
        L14 (net30 Porta6) inductor l=Lrfc
        L13 (net33 0) inductor l=L1
        L12 (net27 Porta3) inductor l=Lc
        L11 (net27 net32) inductor l=L2
        L10 (net36 net27) inductor l=L2
        L9 (net24 Porta5) inductor l=Lrfc
        L8 (net34 0) inductor l=L1
        L7 (net21 Porta2) inductor l=Lc
        L6 (net21 net35) inductor l=L2
        L5 (net38 net21) inductor l=L2
        L4 (net18 Porta4) inductor l=Lrfc
        L3 (net15 Porta1) inductor l=Lc
        L2 (net31 net15) inductor l=L2
        L1 (net15 net39) inductor l=L2
        L0 (net37 0) inductor l=L1
        C11 (net30 net31) capacitor c=C1
        C10 (net30 net33) capacitor c=Cdcb
        C9 (net32 net30) capacitor c=C1
        C8 (net27 Porta3) capacitor c=Cc
        C7 (net24 net36) capacitor c=C1
        C6 (net24 net34) capacitor c=Cdcb
        C5 (net35 net24) capacitor c=C1
        C4 (net21 Porta2) capacitor c=Cc
        C3 (net15 Porta1) capacitor c=Cc
        C2 (net18 net37) capacitor c=Cdcb
        C1 (net18 net38) capacitor c=C1
        C0 (net39 net18) capacitor c=C1
        I7 (0 net30) varactor_SMV1237
        I4 (0 net24) varactor_SMV1237
        I0 (0 net18) varactor_SMV1237
    ends circulador_1
    // End of subcircuit definition.

    // Library name: TCC2
    // Cell name: circulador_1_TB
    // View name: schematic
    I4 (RF1 RF2 RF3 Vbias Vbias Vbias) circulador_1
    V0 (Vbias 0) vsource dc=Vdc type=dc
    PORT2 (RF3 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=120 \
            fundname="Modulation"
    PORT0 (RF1 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=0 freq2=Frf \
            dbm2=-101 sinephase2=0 fundname="Modulation" fundname2="RF"
    PORT1 (RF2 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=-120 \
            fundname="Modulation"
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
        tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
        digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
        checklimitdest=psf
    qpss  qpss  flexbalance=yes  oversample=[1  1]  funds=["Modulation"
    +     "RF"]  maxharms=[3  3]  errpreset=conservative  annotate=status
    qpsp  qpsp  sweeptype=absolute  start=140M  stop=200M
    +     portharmsvec=[0  0  0  0  0  0]  ports=[PORT0  PORT1  PORT2]
    +     donoise=no  annotate=status
    modelParameter info what=models where=rawfile
    element info what=inst where=rawfile
    outputParameter info what=output where=rawfile
    designParamVals info what=parameters where=rawfile
    primitives info what=primitives where=rawfile
    subckts info what=subckts  where=rawfile
    saveOptions options save=allpub

    Here is the result graphic with S11, S21 and S31:

    This result shows that circulator is not working as it should. The signal inserted on port 1 is returning on all range frequency and the port 2 is not receiving the signal (less than -10dB on all frequency range). Also the port 3 is receiving almost the same signal that port 2.

    Regards,

    Eduardo.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Hi Eduardo,

    Not sure what simulator version you are using, but my curves are nothing like that lumpy - although the magnitude is similar. I didn't have your diode model so I just created a default diode mode:

    model Diode_Model diode

    Anyway, a couple of points:

    1. First of all, there's no need to have a large signal second frequency on PORT0 (the Frf frequency) unless you're trying to investigate the effect on the s-parameters of having a large signal blocker at the same frequency. If I turn this frequency off, and just do a single tone harmonic-balance pss (or hb analysis) followed by psp (or hbsp), I get the same results, even more quickly.
    2. However, the fact that you have this large signal is useful in this case. If you check the voltage at RF1 (the input) in dB, and compare it with that at RF2 and RF3, you'll see that there is appreciable attenuation (hard to directly compare with s21, s31) - but if that's not what you're expecting, it means  you have a circuit problem. I suspect you could reproduce this with a transient simulation too.

    So you'll need to debug your circuit if it's not behaving as you expect. I don't think it's a simulator setup issue... perhaps you should talk with your supervisor/tutor?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • EduardoGS
    EduardoGS over 8 years ago

    Hi Andrew,

    I am using the Virtuoso® version IC6.1.4. Indeed using the PSS and PSP with a single tone the results are the same. If you see the article results graphic (free on official publisher's website: www.nature.com/.../nphys3134.html) they are very different and compatible with the ferrite circulator's theory. I will try to make a transient simulation too.

    The diode model that was used on varactor SMV1237:

    model Diode_Model  diode is=1.00e-14 rs=0 n=1 tt=0 cj0=66.16e-12 m=5.3 vj=10 eg=1.11 xti=3 kf=0 af=1 fc=0.5 ibv=1e-3 isr=0 nr=2 ikf=0 nbv=1 ibvl=0 nbvl=1 tbv1=0 tnom=27 ffe=1

    I will talk with my professor tomorrow. We were using ADS® software in recent months, but the results were wrong too. Any news I will post here. Thanks for all suggestions.

    Regards,

    Eduardo.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • EduardoGS
    EduardoGS over 8 years ago

    Hi,

    I did the simulation QPSS and QPSP replacing the varactor for a capacitor. On article have an information that says when VDC = 3V, the varactor has a capacitance 30pF. Then the results were better, but its still not correct. I think it the varactor model is wrong, but the manufacturer offers only that spice model.

    • Input.scs:

    // Generated for: spectre
    // Generated on: Sep 27 09:57:10 2016
    // Design library name: TCC2
    // Design cell name: circulador_2_TB
    // Design view name: schematic
    simulator lang=spectre
    global 0
    parameters C1=300p C2=30p Cc=5.6p Cdcb=10u Fm=15M Frf=170M L1=270n L2=27n \
    Lc=1u Lrfc=2.7u phi=120 Vdc=3.00 Vm=0.6
    include "/usr/local/IC614/tsmc13/tsmc13rf/../models/tsmc13rf.scs"

    // Library name: TCC2
    // Cell name: circulador_2
    // View name: schematic
    subckt circulador_2 Porta1 Porta2 Porta3 Porta4 Porta5 Porta6
    L14 (net30 Porta6) inductor l=Lrfc
    L13 (net33 0) inductor l=L1
    L12 (net27 Porta3) inductor l=Lc
    L11 (net27 net32) inductor l=L2
    L10 (net36 net27) inductor l=L2
    L9 (net24 Porta5) inductor l=Lrfc
    L8 (net34 0) inductor l=L1
    L7 (net21 Porta2) inductor l=Lc
    L6 (net21 net35) inductor l=L2
    L5 (net38 net21) inductor l=L2
    L4 (net18 Porta4) inductor l=Lrfc
    L3 (net15 Porta1) inductor l=Lc
    L2 (net31 net15) inductor l=L2
    L1 (net15 net39) inductor l=L2
    L0 (net37 0) inductor l=L1
    C11 (net30 net31) capacitor c=C1
    C12 (net18 0) capacitor c=C2
    C10 (net30 net33) capacitor c=Cdcb
    C9 (net32 net30) capacitor c=C1
    C8 (net27 Porta3) capacitor c=Cc
    C7 (net24 net36) capacitor c=C1
    C13 (net24 0) capacitor c=C2
    C6 (net24 net34) capacitor c=Cdcb
    C5 (net35 net24) capacitor c=C1
    C4 (net21 Porta2) capacitor c=Cc
    C14 (net30 0) capacitor c=C2
    C3 (net15 Porta1) capacitor c=Cc
    C2 (net18 net37) capacitor c=Cdcb
    C1 (net18 net38) capacitor c=C1
    C0 (net39 net18) capacitor c=C1
    ends circulador_2
    // End of subcircuit definition.

    // Library name: TCC2
    // Cell name: circulador_2_TB
    // View name: schematic
    I0 (net2 net3 net4 net1 net1 net1) circulador_2
    V0 (net1 0) vsource dc=Vdc type=dc
    PORT1 (net3 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=1*phi \
    freq2=Frf dbm2=0 sinephase2=0 fundname="Modulation" fundname2="RF"
    PORT2 (net4 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=-1*phi \
    freq2=Frf dbm2=0 sinephase2=0 fundname="Modulation" fundname2="RF"
    PORT0 (net2 0) port r=50 type=sine freq=Fm ampl=Vm sinephase=0*phi \
    freq2=Frf dbm2=0 sinephase2=0 fundname="Modulation" fundname2="RF"
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf
    qpss qpss flexbalance=yes oversample=[1 1] funds=["Modulation"
    + "RF"] maxharms=[3 3] errpreset=conservative annotate=status
    qpsp qpsp start=140M stop=300M portharmsvec=[0 0 0 0 0 0]
    + ports=[PORT0 PORT1 PORT2] annotate=status
    modelParameter info what=models where=rawfile
    element info what=inst where=rawfile
    outputParameter info what=output where=rawfile
    designParamVals info what=parameters where=rawfile
    primitives info what=primitives where=rawfile
    subckts info what=subckts where=rawfile
    saveOptions options save=allpub]

     

    • Results:

    At one frequency range, the S11 is lower than S21 and S31, but the device is behaving like a power divider (S21 = S31) and not like a circulator.

    Regards,

    Eduardo.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Eduardo,

    If I used the diode model you gave, I get a similar response to your earlier posts. With the change of the varactor to a capacitor, you now have a completely passive network - it's even more unlikely that this is anything other than a circuit problem (all your components are ideal). I'll leave this for you to debug the design problem with your professor.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information