Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to generate Gaussian pulse in cadence spectre?

Status
Not open for further replies.

rficdesigner

Member level 2
Joined
Jun 17, 2008
Messages
52
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Location
Korea
Activity points
1,592
Hello everyone,

Do you know the way to generate the Gausian pulse in cadence spectre?

Pls share for me, Thanks alot.
 

Hi, rficdesigner.
For tran analysis you can use verilog-A module


module gauss(out);
output out;
electrical out;
parameter real a=1 from (0:inf);
parameter real b=10n from [0:inf);
parameter real c=5n from (0:inf);

analog begin
V(out)<+a*exp(-pow($abstime-b,2)/2.0/pow(c,2));

end
endmodule


The result shown below

Regards, pavel.
 
  • Like
Reactions: Moossa

    Moossa

    Points: 2
    Helpful Answer Positive Rating
Thanks you, pavel_adameyko

I have no experience on Verilog A.

I want to generate Gaussian pulse in Cadence Virtuoso Analog Design Environment.

I mean by adding components from build-in libraries to the Schematic file.

Do you know how to build a component that functions as the code you given ?

Waiting for your suggestions, thanks again.
 

It would be much more complex (I do not like the word "impossible"!) than the clever solution Pavel suggested.
 

I agree with JoannesPaulus - really don't know how to realize such circuit using standard components.
To create verilogA module just do
File->New->Cellview. In window choose Tool->VerilogA-Editor and type the name of module. The text editor window would appear where you can write the code. After completing just save and close text editor. The syntax will be checked and if it 's ok a window will appear to create symbol view of module. That's all.

Also you can use vpwlf component - but in this case you should write Gaussian function to file - don't think this method is simpler.

Regards, pavel.
 
  • Like
Reactions: Moossa

    rficdesigner

    Points: 2
    Helpful Answer Positive Rating

    Moossa

    Points: 2
    Helpful Answer Positive Rating
Hi Pavel,
What changes should I make to the above lines to generate a differential Gaussian pulse?
Thanks
 

It is quite simple, you just need to split the positive and negative halves:
Code:
module gauss(p,n);
output p,n;
electrical p,n;
parameter real a=1 from (0:inf);
parameter real b=10n from [0:inf);
parameter real c=5n from (0:inf);
parameter real d=0;

analog begin
V(p)<+d+0.5*a*exp(-pow($abstime-b,2)/2.0/pow(c,2));
V(n)<+d-0.5*a*exp(-pow($abstime-b,2)/2.0/pow(c,2));
end
endmodule
You need to experiment for yourself, if you are interested in the basic concepts...
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top