[an error occurred while processing this directive]
|
Ну во первых в верилоге есть скорости нарастания, мощности, напряжения, и все такое. Для моделирования этих процессов есть расширение верилога - Verilog-A.
Во вторых - алгоритм есть штука сугубо последовательная. Могут работать несколько алгоритмов параллельно, но один алгоритм (в общем случае) не может описывать несколько параллельных процессов. Описание же на верилоге есть вещь абсолютно параллельная (схемы бывают и комбинаторные).
В третьих. В верилоге (который без "-A"), в отличие от языков программирования, есть некоторые зачатки описания аналоговых свойств системы. Это "drive strength", включая три штуки емкостных нагрузок (large, medium и small capacitive), типы wor/wand, trireg со своим decay_time, всякие там буфера tranif1, и т.п.
Вот Вам, кстати, пример описания резистора на верилоге... Это из "Passive Device Verilog Models For Board And System-Level Digital
Simulation", Clifford E. Cummings, Anthony M. Nady II
Там же проведены конкретные параллели между схематикой и верилог-моделями.
module r2 (p1, p2);
inout p1, p2;
parameter STRENGTH = "PULL";
reg en1, en2, en3;
tranif1 i1 (p1,p2,en1); // WIRE
rtranif1 i2 (p1,py,en2); rtran i3 (py,p2); // PULL
rtranif1 i4 (p1,px,en3); rtran i5 (px,pz); // WEAK
rtran i6 (pz,p2);
initial case (STRENGTH)
"WIRE" : {en1,en2,en3} = 3'b100;
"PULL" : {en1,en2,en3} = 3'b010;
"WEAK" : {en1,en2,en3} = 3'b001;
"OPEN" : {en1,en2,en3} = 3'b000;
default : begin
`ifdef NOMSG
`else
$display("%m: %s strength unknown, using PULL", STRENGTH);
`endif
{en1,en2,en3} = 3'b010;
end
endcase
endmodule
E-mail: info@telesys.ru