• 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. overlaping due to transition function verilogA

Stats

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

overlaping due to transition function verilogA

BaaB
BaaB over 7 years ago

I have 3 ideal interleaving clock signals (zero rise and fall time, no delay) that have no overlaping.
However, after passing through the transition function in verilogA, they overlap each other at rise and fall time durations.
Does anyone have any idea to solve this problem by changing the verilogA code?

y1, y2, y3:  3 ideal interleaving clock signals

V(S4) <+ transition(y1,tdelay,trf);
V(S5) <+ transition(y2,tdelay,trf);
V(S6) <+ transition(y3,tdelay,trf);

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    I think you'll need to describe how you're creating y1,y2 and y3. Ideally a picture of the waveforms (y1,y2,y3 and S4,S5,S6) would help.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 7 years ago in reply to Andrew Beckett

    Here is y1, y2, y3 waveforms. Of I pass them through the transition function as above with tdelay =0 and trf = 1p then they will create rise and fall time overlaping each other.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Saloni Chhabra
    Saloni Chhabra over 7 years ago in reply to BaaB

    As already asked for, can you share waveforms for S4, S5 and S6 also?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 7 years ago in reply to Saloni Chhabra

    Because it is not available now. I will send it later. However, from these signals it is easy to see how S4, S5, S6 can be overlaped when passing through the transition function.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to BaaB

    Well, you either need to arrange the input data to transition to have at least 1ps gap between the edges so that they don't overlap after the transition, or another possibility would be to have:

    V(S4) <+ transition(y1,tdelay1,trf);
    V(S5) <+ transition(y2,tdelay2,trf);
    V(S6) <+ transition(y3,tdelay3,trf);

    (i.e. separate delay variables for each transition), and then set each of tdelay1, tdelay2, tdelay3 to be (at least) 1ps when y1, y2, y3 (respective) goes from 0 to 1, and for these variables to be 0 (so no delay) when each goes from 1 to 0. This will introduce a 1ps delay on the rising edges, which means it would avoid the falling edge of the other signals.

    I did think about putting together an example, but I think the explanation above should be clear enough, and any example Saloni or I create wouldn't necessarily match how you're generating y1, y2, y3 anyway. Oh, why not - here's the code (it only took me 5 minutes):

    `include "disciplines.vams"
    module nonoverlap (s4,s5,s6);
    output s4,s5,s6;
    electrical s4,s5,s6;
    
    parameter real clock=50p;
    parameter real trf=1p;
    real tdelay1=0;
    real tdelay2=0;
    real tdelay3=0;
    integer y1,y2,y3;
    integer cycle;
    
    analog begin
        @(timer(0,clock)) begin
    	cycle=cycle+1;
    	if(cycle%3==0) begin
    	    y1=1;
    	    tdelay1=trf;
    	end
    	else begin
    	    y1=0;
    	    tdelay1=0;
    	end
    	if(cycle%3==1) begin
    	    y2=1;
    	    tdelay2=trf;
    	end
    	else begin
    	    y2=0;
    	    tdelay2=0;
    	end
    	if(cycle%3==2) begin
    	    y3=1;
    	    tdelay3=trf;
    	end
    	else begin
    	    y3=0;
    	    tdelay3=0;
    	end
        end
    
        V(s4) <+ transition(y1,tdelay1,trf);
        V(s5) <+ transition(y2,tdelay2,trf);
        V(s6) <+ transition(y3,tdelay3,trf);
    end
    
    endmodule

    Here's the graph - note I increased the rise/fall time to make it a bit more obvious:

    Regards,

    Andrew.

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

    Here's a more concise version of the model above, just because I thought it was a bit verbose. Essentially does the same thing though:

    `include "disciplines.vams"
    module nonoverlap (s4,s5,s6);
    output s4,s5,s6;
    electrical s4,s5,s6;
    
    parameter real clock=50p;
    parameter real trf=1p;
    real tdelay1=0;
    real tdelay2=0;
    real tdelay3=0;
    integer y1,y2,y3;
    integer cycle;
    
    analog begin
        @(timer(0,clock)) begin
    	cycle=cycle+1;
    	tdelay1=trf*(cycle%3==0);
    	y1=(cycle%3==0);
    	tdelay2=trf*(cycle%3==1);
    	y2=(cycle%3==1);
    	tdelay3=trf*(cycle%3==2);
    	y3=(cycle%3==2);
        end
    
        V(s4) <+ transition(y1,tdelay1,trf);
        V(s5) <+ transition(y2,tdelay2,trf);
        V(s6) <+ transition(y3,tdelay3,trf);
    end
    
    endmodule

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 7 years ago in reply to Andrew Beckett

    Thank you very much. Actually my signals y1, y2, y3 are fixed and appear randomly but they are always interleving each other never overlap. So I had idea to reduce the width of them by the sum of rise and fall time so no overlaping happens after passing through transition function.

    • 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