• 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. Spikes on my signal

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 125
  • Views 11120
  • 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

Spikes on my signal

Soly
Soly over 3 years ago

Hi

I was working on RF Receiver and i finished it but the output data has spikes on it due to using multiplexer at the end.

" The output was like (00 01 10 11) and i wanted to convert it to pam4 signal levels like (0 0.166 0.33 0.5)"

So while using the multiplexer and during edges transactions spikes are found due to fall and rising times...

Is there a way or circuit to remove those spikes.. 

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 3 years ago

    Dear Soly,

    Soly said:

    " The output was like (00 01 10 11) and i wanted to convert it to pam4 signal levels like (0 0.166 0.33 0.5)"

    I was trying to understand the waveform you included in your post given you indicated the output was generated from the binary code sequence of "00 01 10 11". From your coding, it appears the signal should undergo 3 rising edges as it transitions from a level of 00 to 01 (first transition), 01 to 10 (second transition), and then 10 to 11 (third rising transition), However, the sequence you provided in the waveform suggests there are two rising transitions and one falling transition. Is my understanding of your waveform correct?

    Soly said:

    So while using the multiplexer and during edges transactions spikes are found due to fall and rising times...

    Is there a way or circuit to remove those spikes

    There are a multitude of methods to eliminate the "spikes" as you refer to them associated with a transition depending on your needs or requirements. For example, a few follow:

    Without making any circuit or schematic changes, you might:

    1. Use the sample() Calculator function (Figure 1) to sample the output waveform from your multiplexer at some distance from the edge transitions. For example, if the binary code changes every Tclk seconds, sample the output waveform starting at Tclk/2 and every Tclk seconds. As shown in an annotated view of your waveform in Figure 2, this will sample the waveform in regions where it is stable.

    2. Use the strobeperiod option in your simulation to only save the waveform at points where the waveform is stable (i.e., set strobeperiod to Tclk with an offset of Tclk/2 from my Figure 2. The strobeperiod feature is an option for a Transient analysis under the Output tab of the Transient Analysis options GUI.

    If you want to make schematic changes to eliminate the "spikes", common ways to do this (without knowing the details of your multiplexer I cannot provide specific recommendations) include:

    1. Change your coding strategy from a binary encoder to a grey encoder. Only one individual bit of of a grey encoded signal undergoes a change in a state transition. In a binary encoded signal, multiple bits may change every state transition. In your two bit encoded signal, the transition from "01" to "10" results in a change to bit 0 (from 1->0) and a change in bit 1 (from 0->1). The two signals may have different propagation delays through your multiplexer and hence the switch will show an intermediate value resulting in your "spikes" at its outputs.

    2. Re-design your multiplexer to allow for a "break before make" operation to prevent any feedthrough due to unequal propagation delay times

    3. The "spikes" you refer to may be a result of feedthrough capacitances. Re-examine the layout of your multiplexer to locate the potential sources of feedback capacitances and modify it to minimize or eliminate them. Alternatively, to reduce the impact of the feedthrough capacitances, reduce the transition times of its inputs and internal nodes and consider increasing the capacitance of the output load to the multiiplexer.

    There are a few other thoughts I have, but without knowing any more details of your circuit and objective, I will limit my suggestions to these. I hope some of these provide some insight Soly!

    Shawn

    Figure 1

    Figure 2

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Soly
    Soly over 3 years ago in reply to ShawnLogan

    my signal is a random data so i cannot make it grey code.
    i dont have design problem its just i want to show my result as voltage not binary so i use the sample function and it works good.

    Unknown said:
    Use the sample() Calculator function (Figure 1) to sample the output waveform from your multiplexer at some distance from the edge transitions. For example, if the binary code changes every Tclk seconds, sample the output waveform starting at Tclk/2 and every Tclk seconds. As shown in an annotated view of your waveform in Figure 2, this will sample the waveform in regions where it is stable.

    but theres a small detail missing that now after sampling after the spikes ive got some transition time from one bit to the other as shown
    (the time between 2 samples) and i cant decrease it more than that as the spikes will return as show .
    is there a way or maybe another function i can apply after the "sample" function so it makes my signal as sharp as it was before using sample ? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to Soly

    It rather depends on what you are really doing with the output of this block - only you can answer whether having the circuit behave this way is OK or not. If you want to sample the output and have sharp transitions still (perhaps for visual appearance only), you could select the trace and do Right Mouse->Type->Sample Hold which would convert into a step type waveform. Otherwise if you really need it to be stepped for further calculations (which would be unusual if you'd sampled it), you could use the code in this post.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Soly
    Soly over 3 years ago in reply to Andrew Beckett

    Yes this worked for me i just wanted a way to show my data not anything else

    Thank you. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to Soly

    Dear Andrew,

    Thank you for "stepping in" in my absence from Soly's reply!

    Soly,

    You were in good hands with Andrew and I am happy to read he solved your problem...he does that a LOT!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to Soly

    Dear Andrew,

    Thank you for "stepping in" in my absence from Soly's reply!

    Soly,

    You were in good hands with Andrew and I am happy to read he solved your problem...he does that a LOT!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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