Manualen säger mig inte mycket, och inte farbror Google heller (Får bara träffar på Verilog istället).
Så min fråga är helt enkelt, kan detta funka?
Kod: Markera allt
module and(a,b,out);
input a,b;
output out;
voltage a,b,out;
parameter vh = 1.2, %Logic high
vl = 0, %Logic low
vth = 0.6, %Threshold voltage
td = 0, %Delay
tr = 0, %Risetime
th = 0; %Falltime
integer astate, bstate, outstate;
real vout;
analog
begin
@(initial_step)
begin
astate = 0;
bstate = 0;
outstate = 0;
end
begin
@(cross(V(a) - vth))
begin
astate = V(a) > vth;
outstate = astate && bstate;
if(outstate)
vout = vh;
else
vout = vl;
end
@(cross(V(b) - vth))
begin
bstate = V(b) > vth;
outstate = astate && bstate;
if(outstate)
vout = vh;
else
vout = vl;
end
end
V(out) <+ transition(vout,td,tr,tf);
end
endmodule
