to solve differential equations in verilog-a?

243 views
Skip to first unread message

lij...@gmail.com

unread,
Jul 26, 2008, 3:12:18 AM7/26/08
to
Hi,
Now I'm using verilog-a to do some research on modeling kinematic
structures. We all know that ddt or idt is accepted in verilog-a, such
like the following sentences:
Pos(v)<+ddt(x);

But if Fdrv is from a source outside my module and i want to output
the x in the following differential equation, how can i?

a*x''+b*x'+cx=Fdrv

i've written these codes,
.......(includings)
module test(Fdrv,x);
inout Fdrv,x;
kinematic Fdrv,x;
kinematic v; //temp. var. to hold ddt(x)
parameter real a=xxx, b=xxx, c=xxx; // assume a,b,c are
properly defined
analog begin
Pos(v)<+ddt(x);
F(Fdrv)<+a*ddt(Pos(v))
+b*Pos(v)
+c*Pos(x);
end
endmodule

if i input x to module test, i will get proper output of Fdrv, but
if i want to input Fdrv and get the
proper value of x, which means i want to solve this differential
equation, it never works.
How can i solve this problem? thank you very very much....

Message has been deleted

Riad KACED

unread,
Jul 29, 2008, 3:26:51 PM7/29/08
to
Hi,

I'm not gonna answer your question since my Verilog-A is very average.
But there is a forum where you are most likely to find answers for
these kind of questions:
http://www.designers-guide.org/Forum/YaBB.pl?board=behavioral

That said, many people in this forum are fit enough to answer you
indeed. The only thing is how to catch these very busy guys ?!

Good luck anyway !
Riad.

Mike Meng

unread,
Jun 6, 2020, 8:56:44 PM6/6/20
to
very old thread, just encounter the same situation... This is probably done by V(x)<+-a/c*DDT(DDT(x))-b/c*DDT(x)+V(Fdrv)/c.

It is better to use integrator idt to specify initial boundary condition.
Reply all
Reply to author
Forward
0 new messages