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