• 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. Problem with Hidden states in Verilog A while running PSS...

Stats

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

Problem with Hidden states in Verilog A while running PSS/PAC...

JRAM
JRAM over 8 years ago

Dear All,

I wrote a code in Verilog A  to generate four different clocks clk1, clk2, clk3 and clk4 from clk, as shown below. These clocks are used for switching in the filter.  While doing PSS/PAC analysis for plotting the magnitude response of filter, its giving an error shown below, Could anybody please tell how can I avoid this. I am a beginner in Verilog A, the code is also posted for the reference.

Regards,

Jayaram 

ERROR In Running PSS/PAC...

Error found by spectre during periodic steady state analysis `pss'.
    ERROR (SPCRTRF-15177): PSS analysis doesn't support behavioral module components with hidden states found in component 'JYR_CLKgen_VerA'.  Skipped.
        
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 18: Hidden state variable: count
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout1
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout2
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout3
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout4

Analysis `pss' was terminated prematurely due to an error.

 

CODE:

`include "constants.h"
`include "disciplines.h"

module JYR_CLKgen_VerA(vclk, vclk1, vclk2, vclk3, vclk4);
input vclk;
output vclk1, vclk2, vclk3, vclk4;
electrical vclk, vclk1, vclk2, vclk3, vclk4;
parameter real vtrans_clk=0.9;
parameter real voh=1.8;
parameter real vol=0.0;

parameter real tdel = 0 from [0:inf);
parameter real trise = 0.1n from [0:inf);
parameter real tfall = 0.1n  from [0:inf);

 integer count;
  real vout1, vout2, vout3, vout4;

   analog begin

       @(initial_step) begin
            count = 0;
             end
    @ (cross(V(vclk) - vtrans_clk, 1.0)) begin
         
     if (count == 0) begin
        vout1 = voh;
            vout2 = vol;
         vout3 = vol;
        vout4 = vol;
         end
  else if (count <= 7) begin
            vout1 =vol;
            vout2 = voh;
         vout3 = vol;
        vout4 = vol;
      end
  else if (count <= 20) begin
            vout1 = vol;
            vout2 = vol;
         vout3 = voh;
        vout4 = vol;
      end
  else if (count <= 31) begin
            vout1 = vol;
            vout2 = vol;
         vout3 = vol;
        vout4 = voh;
      end
 if (count<=31)
     count = count+1;
else count = 0;
      end
    V(vclk1) <+ transition(vout1,tdel,trise,tfall);
    V(vclk2) <+ transition(vout2,tdel,trise,tfall);
    V(vclk3) <+ transition(vout3,tdel,trise,tfall);
    V(vclk4) <+ transition(vout4,tdel,trise,tfall);
   end
endmodule

 

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    This is not entirely trivial to avoid because of the fact that you are storing state in the count and vout1->4 variables. I'd advise you to look at this page:

    In particular the Hidden state in SpectreRF application note. I posted the link to the page rather than the document directly so you could also easily find the Verilog-A models that Ken Kundert uses in his app note.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • JRAM
    JRAM over 8 years ago
    Thanks for the reply Andrew, I'll go through the document and Models...

    Regards,
    Jayaram
    • 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