The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 17th, 2024, 12:23pm
Pages: 1
Send Topic Print
Issues in Modelling an INV output having 10mVp-p as its VSS (Read 2143 times)
kumar.g
Community Member
***
Offline



Posts: 51
Frankfurt, Germany
Issues in Modelling an INV output having 10mVp-p as its VSS
Jul 05th, 2010, 2:28am
 
Hallo All,

       I am designing a current starved INV which has an output high(VDD) and low (VSS). VDD = 1.8V, VSS = 200m+ 10mVp-p, 1GHZ. I wrote the following piece of code but it gives me an error saying "contribution statement  encountered inside an analog event"

Assume Td_p,Td_n = 1p

    @(cross(V(Vin)-(V(V_swing)/2),+1)) begin
           V(V_ph) =  V(Vss);
   end        
   @(cross(V(Vin)-(V(V_swing)/2),-1)) begin
       V(V_ph)  =  V(Vdd);
   end        
       V(Vout) <+ transition(V(V_ph),0,Td_p,Td_n);
   end    

But the code works if I change V_ph as a real  variable. But I dont see the 1Ghz 10mVp-p sinusoid on 200m(dc) VSS. Instead it is a constant 200m low and 1.8 V high. Can someone help me with this.
Back to top
 
 
View Profile kumar.g write2rammy   IP Logged
Marq Kole
Senior Member
****
Offline

Hmmm. That's
weird...

Posts: 122
Eindhoven, The Netherlands
Re:  Issues in Modelling an INV output having 10mVp-p as its VSS
Reply #1 - Jul 5th, 2010, 4:30am
 
As the error says, the problem is with the contribution statement inside an event: that's not allowed. Instead, you should assign to a variable inside the event and contribute the variable value outside the event. In your case you can do without the contribution and use the variable value directly in the transition function:

Code:
@(cross(V(Vin)-(V(V_swing)/2),+1)) begin
  V_ph_value = V(Vss);
end
@(cross(V(Vin)-(V(V_swing)/2),-1)) begin
  V_ph_value  =  V(Vdd);
end
V(Vout) <+ transition(V_ph_value, 0, Td_p, Td_n); 



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



Posts: 615

Re:  Issues in Modelling an INV output having 10mVp-p as its VSS
Reply #2 - Jul 5th, 2010, 11:08am
 
kumar,

Note that Code:
V(Vout) <+ ... 

places a voltage source between node 0 (global simulator ground: 0 V) and node Vout. If you want the source between VSS and Vout, you have to use Code:
V(Vout, VSS) <+ ... 

BOE
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.