• 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. Custom IC Design
  3. How to use a current controlled voltage source (ccvs)?

Stats

  • Locked Locked
  • Replies 14
  • Subscribers 125
  • Views 27153
  • 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

How to use a current controlled voltage source (ccvs)?

SamiSattar
SamiSattar over 5 years ago

Hi, 

    I am using isource (as a double exponential current injection), I want to integrate its waveform to extract the charge (q) value. However, the calculator does not integrate this curve. 

Hence, now I want to use CCVS so I can convert this current to voltage. I have attached the screenshot for reference. 

Thanks.

  • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago

    Dear SamiSatter,

    SamiSattar said:
    am using isource (as a double exponential current injection), I want to integrate its waveform to extract the charge (q) value. However, the calculator does not integrate this curve. 

    What is the expression you are using the Calculator and what is the error? I've used the integration function many times on a current probe without an error. I don't think you need to convert the current to a voltage. You might try adding a current probe in series with your current source, save a terminal of the current probe as a current in your transient simulation and using the calculator to integrate the terminal current. The terminal current, if your current probe is named "iprobe_in" the positive terminal current will have a signal name "/iprobe_in/PLUS".

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to ShawnLogan

    I completely agree with Shawn. The integration functions in the calculator don't care whether the data is voltage or current, so there's absolutely no need to use a ccvs to handle this.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SamiSattar
    SamiSattar over 5 years ago in reply to ShawnLogan

    Thank you for your prompt guide. I followed the procedure as mentioned above, however it still does not work as a screenshot attached for reference. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to SamiSattar

     Dear SamiSattar,  

     Thank you for uploading the expression, calculator output and schematic! I studied your graphic, and it appears as I highlight in Figure 1 that there is a wire that passes through your current source. Is this an illusion due to the resolution or is this a possibility? If so, it will clearly lead to an unexpected result.  

     Shawn  

     Figure 1  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SamiSattar
    SamiSattar over 5 years ago in reply to ShawnLogan

    Hi Shawn, 

                   Yes, it is an illusion. I don't have a short circuit wire across the current source.

    SamiSattar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to SamiSattar

    You appear to be running IC5141, so a rather old version of the software. Have you tried plotting i("IPRB2:in" ?result "tran-tran") in the calculator? If that doesn't work, the integration is not going to work either. 

    I would expect that you can ask to save the current through the pin of the current source itself, and then I would expect you can plot IT("/I65/PLUS") or i("I65:sink" ?result "tran"). It might also be an issue with saving the results data into sst2 format. Can you please post the spectre log file, and also what you get when you type: getVersion(t) in the CIW?

    Thanks,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SamiSattar
    SamiSattar over 5 years ago in reply to Andrew Beckett

    Thanks for your response. Yes, I have tried to plot in the calculator but still, it does not work as a screenshot attached. 

    getVersion(t) > gives an error  >> Badly placed ()'s.

    I am new to this forum, I could not attach the CDS.log file as I tried a few times. Therefore, I copied few lines as a reference.

    \o Program: @(#)$CDS: icfb.exe version 5.1.0 11/22/2011 01:38 (cicln04) $
    \o Hierarchy: /nfs/sw_cmc/x86_64.EL7/tools/cadence.2011a/IC_51.41.151_lnx86/tools.lnx86/dfII/
    \o Sub version: sub-version 5.10.41.500.6.151 (32-bit addresses)

    ...

    \o *Error* Trying to plot expression <IT("/I63/PLUS"
    \o "/disk/nobackup/SINGLE_VS_PARALLEL_TIAPA_Rad/spectre/schematic")>, which does not evaluate to an object that can be plotted, like waveform or parametric wave. Please refer to the Wavescan User Guide to see what all types of objects can be plotted in Wavescan. Expression which evaluates to only those type(s) of objects can be
    \o plotted.

    SamiSattar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to SamiSattar

    Dear SamiSattar,

    SamiSattar said:
    I am new to this forum, I could not attach the CDS.log file as I tried a few times. Therefore, I copied few lines as a reference.

    I understand! I believe the file Andrew is referring to is the spectre.out file. I would also like to see your input netlist. Both should be small enough files to include. The spectre.out file is found in your psf directory and the input.scs file is in your netlist directory. From the log file you include, the netlist and psf directories should be located at:

    /disk/nobackup/SINGLE_VS_PARALLEL_TIAPA_Rad/spectre/schematic

    under the schematic directory.

    I also noticed you are using a very old version of the Cadence tools as I had not seen that calculator and wavescan tool GUI in many years. With the input.scs file and spectre.out file, I think some good insights into your issue will be evident.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to ShawnLogan

    SamiSattar,

    You typed the getVersion(t) in the terminal window, not the CIW. Nevermind - the log file tells me the version you're using.

    Please try typing in the CIW window - highlighted below - the following commands (after your simulation):

    selectResult("tran")

    outputs()

    outputs(?map nil)

    and showing what the results are.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SamiSattar
    SamiSattar over 5 years ago in reply to Andrew Beckett

    Hi Andrew, 

                    I have typed the commands as mentioned above in ClW and the results are shown below in the screenshots for your reference. 

    Thanks

    SamiSattar

    • 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