• 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. Issue with ideal multiplier in ahdlLib library in Caden...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 63
  • Views 15976
  • 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

Issue with ideal multiplier in ahdlLib library in Cadence

lahsivece
lahsivece over 12 years ago

Dear All,

I am using multiplier (provided in ahdlLib library)  to simulate the behaviour of mixer. One of the inputs (RF input to the mixer) is a sinusoid withh 100mV amplitude and frequency f_rf. The other input (LO input to the mixer ) is a square pulse with V_High =1  and V_low = 0 wityh frequency f_LO. 

Multiplier gain is set to 1.

I am using PSS analysis (shooting method , errpreset set to moderate) to analyze frequency tones at the multiplier output.

Ideally I expect that multiplier will generate a  frequency tone at IF frequency , f_IF= f_RF - f_LO with the peak amplitude given by

(2/pi)*  (V_RF =100mV) .

Since I am using an ideal multiplier , I expect RF signal to be present at IF output of multiplier with exactly same ampliude (multiplier gain is set to 1 ).

But , I am observing loss through multiplier . Observed RF amplitude at the RF frequency was supposed to be 100mV but is 60.6mV and I am observing same loss for IF frequency. 

To summarize : I am observing loss through ideal multiplier (gain is set to 1 ) when I try to use multiplier as a mixer . I am using PSS analysis shooting method to simulate the multiplier. 

Please advise .

With Best Regards,

Vishal   

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Vishal,

    Are you using vsource (or vsin) as inputs, or port? It behaves perfectly (with vsource) in my case - I actually get half the peak amplitude at each tone (I'm not sure why it it whould be 2/pi). It's a voltage-based system.

    Here's my netlist (easier than showing all the properties on the sources):

    // Generated for: spectre
    // Generated on: May 29 18:42:13 2013
    // Design library name: RFworkshop
    // Design cell name: checkmult
    // Design view name: schematic
    simulator lang=spectre
    global 0
    include "model/rfModels.scs"
    include "gpdk446.v10/models/nmos1.scs" section=nom
    include "gpdk446.v10/models/pmos1.scs" section=nom
    include "models/npnStd.scs"
    include "SpectreModels/RFmodels.scs"

    // Library name: RFworkshop
    // Cell name: checkmult
    // View name: schematic
    I0 (lo rf _net0) multiplier gain=1
    V0 (lo 0) vsource type=sine freq=1G ampl=1 fundname="LO"
    V1 (rf 0) vsource type=sine freq=900M ampl=1 fundname="RF"
    R0 (_net0 0) resistor r=1K
    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
    pss  pss  fund=100M  harms=20  errpreset=moderate  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
    ahdl_include "/export/home/apps/IC615_isr/tools/dfII/samples/artist/ahdlLib/multiplier/veriloga/veriloga.va"

    And attached is the picture of my results.

    Andrew.

    • RFpiccie.png
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • lahsivece
    lahsivece over 12 years ago

     Hi Andrew,

    Thanks for the quick reply. 

    I am using voltage sources as input . With two sinusoids as input, I am getting correct output. I made two silly mistakes while using multiplier. First was with vpulse source. I assigned v_high=1.2 when I should have assigned v_high=1.  I was calculating gain as 2/pi when it should have been 1/pi ( upconverted and downconverted product). pi comes into picture when digital pulse is expanded into fourier series.

    Regards,

    Vishal 

    • 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