The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 29th, 2024, 7:34pm
Pages: 1
Send Topic Print
AMS simulation results (Read 10180 times)
mtp3
Junior Member
**
Offline



Posts: 20

AMS simulation results
May 13th, 2012, 5:54am
 
Hi!

I am trying to simulate a design with DFFs using AMS in ADE. The design components are picked form the standard cell library that we are using. The problem I am facing is that when I perform an electrical simulation on the design everything works fine as desired but when I switch to the functional view of the blocks the circuit output is X. I tried to debug this issue and it comes to the fact the outputs of DFFs in the design are always at X. I am resetting the DFFs initially before the circuit starts operating but still no success.

My question is there a special way to setup simulations of design involving DFFs or is there something wrong with my setup.
Back to top
 
 
View Profile   IP Logged
boe
Community Fellow
*****
Offline



Posts: 615

Re: AMS simulation results
Reply #1 - May 14th, 2012, 3:23am
 
Hi Mtp3,

You give very little information, so we have to guess: I assume you use analog stimuli. Right?

A few ideas to check: Do you use the right connect modules? Did you check Clock and Reset inside the functionals? Do they go X at any time?

- B O E
Back to top
 
 
View Profile   IP Logged
mtp3
Junior Member
**
Offline



Posts: 20

Re: AMS simulation results
Reply #2 - May 14th, 2012, 7:54am
 
Hi!

Yes I am using the analog stimuli as for the connect modules are concerned I just modified them so that the Vsupp=1.2 instead of 1.8 as default and have faster tr and tf=10ps (instead of 0.2ns) . Apart from that    if the simulation works for my own code of a DFF it should work for the other one too (so I am guessing that the connect modules are OK). As for the functional description is concerned its very very messy as it has descriptions of all the standard cells(that we got from our vendor) I am looking in to it but its very helpful I must say.

So I just thought maybe someone else saw the same issue.  :-?
Back to top
 
 
View Profile   IP Logged
boe
Community Fellow
*****
Offline



Posts: 615

Re: AMS simulation results
Reply #3 - May 14th, 2012, 11:42am
 
mtp3,
I understand you use 1.2 V supply and 1.2 V connect modules (CM) with 10 ps rise time. Your own description of a FF works with your stimulus and the same CMs. Right?

Do your stimuli meet the timing constraints of the library FFs (setup time, hold time, pulse widths, etc)?

Are the rise/fall times of your stimulus compatible with those of the CMs?

- B O E
Back to top
 
 
View Profile   IP Logged
mtp3
Junior Member
**
Offline



Posts: 20

Re: AMS simulation results
Reply #4 - May 15th, 2012, 1:07am
 
Yes I am using 1.2V supply with 10ps rise and fall times. Yes I think the stimuli should meet the requirements as I have specified it to be so. Here is a code for the DFF I am talking about and I don't see any issue why it shouldn't work

`define DFF_CP_R_Q_R 0.1
`define DFF_CP_R_Q_F 0.1
`define DFF_D_CP_HOLD_posedge_posedge 0.01
`define DFF_D_CP_HOLD_negedge_posedge 0.01
`define DFF_D_CP_SETUP_posedge_posedge 0.01
`define DFF_D_CP_SETUP_negedge_posedge 0.01
`define DFF_CP_PWL 0.01
`define DFF_CP_PWH 0.01

module DFF (Q, D, CP);

     output Q;
     input D;
     input CP;

`ifdef functional
     reg  NOTIFIER;
     GP_U_FD_P_NOTI   U1 (IQ, D, CP , NOTIFIER) ;
     buf   #1 U2 (Q, IQ) ;

`else
     reg  NOTIFIER;
     GP_U_FD_P_NOTI   U1 (IQ, dD, dCP , NOTIFIER) ;
     buf   #1 U2 (Q, IQ) ;


     specify

            (posedge CP => (Q +: D)) = (`DFF_CP_R_Q_R,`DFF_CP_R_Q_F);

           $setuphold(posedge CP, posedge D, `DFF_D_CP_SETUP_posedge_posedge, `DFF_D_CP_HOLD_posedge_posedge , NOTIFIER,, , dCP, dD);
           $setuphold(posedge CP, negedge D, `DFF_D_CP_SETUP_negedge_posedge, `DFF_D_CP_HOLD_negedge_posedge , NOTIFIER,, , dCP, dD);
           $width(negedge CP, `DFF_CP_PWL ,0, NOTIFIER);
           $width(posedge CP, `DFF_CP_PWH ,0, NOTIFIER);

     endspecify

`endif

endmodule // DFF

`endcelldefine
`celldefine
`ifdef functional
  `timescale 1ns / 1ns
  `delay_mode_unit
`else
  `timescale 1ns / 1ps
  `delay_mode_path
`endif


Back to top
 
 
View Profile   IP Logged
boe
Community Fellow
*****
Offline



Posts: 615

Re: AMS simulation results
Reply #5 - May 15th, 2012, 2:58am
 
Mtp3,mtp3 wrote on May 15th, 2012, 1:07am:
... Code:
`ifdef functional
   `timescale 1ns / 1ns
   `delay_mode_unit
...
`endif 


1 ns Time resolution and unit delay mode? IMO not a good choice considering the parameters (Vdd, tr/f) you use.

- B O E
Back to top
 
 
View Profile   IP Logged
mtp3
Junior Member
**
Offline



Posts: 20

Re: AMS simulation results
Reply #6 - May 15th, 2012, 3:14am
 
Could you please suggest with these delay settings what should the values of tr and tf for the connect files be?

Also I would like to mention that
Vthi 0.666
Vtlo 0.333
Tr0.2n
Back to top
 
« Last Edit: May 15th, 2012, 9:42am by mtp3 »  
View Profile   IP Logged
boe
Community Fellow
*****
Offline



Posts: 615

Re: AMS simulation results
Reply #7 - May 15th, 2012, 11:48am
 
mtp3 wrote on May 15th, 2012, 3:14am:
Could you please suggest with these delay settings what should the values of tr and tf for the connect files be?

Also I would like to mention that
Vthi 0.666
Vtlo 0.333
Tr0.2n

Tr = 0.2 ns? Before you said it was 10 ps.

What are your stimuli? If you use a time resolution of 1 ns and unit-delay model, you should not go beyond 100 MHz or so (depending on path length) with your FF model. I'd assume you want to go much faster if you use CMs with tr/f=10 ps...

Note that 1 ns resolution means events are either separated by at least 1 ns or occur at the same time.

- B O E
Back to top
 
 
View Profile   IP Logged
mtp3
Junior Member
**
Offline



Posts: 20

Re: AMS simulation results
Reply #8 - May 15th, 2012, 12:11pm
 
Many thanks for the reply BOE i'm much obliged. Sorry about the hiccup I copied theses parameters from the original file and not the modified one. (0.2n was the original Tr).

The stimuli are currently vpulse as clk(operating@ 1G) and same as reset for initial 100ns and a vdc for data.

Sorry for my ignorance but how did you come up with 100MHz for 1ns. Since the time scale defined in the model file is 1ns/1ns, Should I modify the model file and redefine the the time scale to something more appropriate like 1p (that would be like 100GHz if I am right from your above suggestion 1/10 of time step).
Back to top
 
« Last Edit: May 15th, 2012, 2:54pm by mtp3 »  
View Profile   IP Logged
boe
Community Fellow
*****
Offline



Posts: 615

Re: AMS simulation results
Reply #9 - May 16th, 2012, 9:30am
 
Mtp3,
In unit delay mode every delay is one time unit, in your case 1 ns. The FF contains a UDP and a buffer, so you have already 2 ns. Plus 1 ns setup time and you have a max. toggle rate of 333 MHz. Add a bit of margin you end up at around 100 MHz.

- B O E
Back to top
 
 
View Profile   IP Logged
mtp3
Junior Member
**
Offline



Posts: 20

Re: AMS simulation results
Reply #10 - May 16th, 2012, 10:59am
 
Yeps got that. Just for the sake of checking a designs functionality how can I turn of these timing checks using -notimingcheck if I use ADE to perform ams simulations?
Back to top
 
 
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.