Hi All,
I have seen somewhere like this
function abc
fork
#100 $display(“System Verilog”);
join_none
so is it allowed to have delay and why ? and another question from where can I get such information about System Verilog?
Thanks
Hi All,
I have seen somewhere like this
function abc
fork
#100 $display(“System Verilog”);
join_none
so is it allowed to have delay and why ? and another question from where can I get such information about System Verilog?
Thanks
In reply to milinraijada:
Hi All,
I have seen somewhere like this
function abc
fork
#100 $display(“System Verilog”);
join_none
so is it allowed to have delay and why ? and another question from where can I get such information about System Verilog?
Thanks
If you want dealys, you need to call a task
function int f(bit a);
#1; // ILLEGAL!!!!
return !a;
endfunction
Function 'f' has illegal use of delay or synchronization
The uses can be wait, delay, clocking block assign, fork-join and other task
calls with delays
For info on SystemVerilog (spelled as ONE word), go to
http://standards.ieee.org/getieee/1800/download/1800-2012.pdf
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
In reply to milinraijada:
This is explained in section 13.4.4 Background processes spawned by function calls of the IEEE 1800-2012 LRM. See Get your free copy of the IEEE 1800-2023 SystemVerilog LRM - Verification Horizons to get a free copy.
The motivation for this feature was to allow a class constructor (which is a function) to start a thread. In most methodologies, like the UVM, you would never use this feature.
In reply to ben@SystemVerilog.us:
I’ve used fork join_none block ,please see that also and then reply
*In reply to milinraijada:*Have you read section 13.4.4?
In reply to milinraijada:
Sometimes, when in doubt, see what tools give you as a result
But, another point, a function is something that happens in zero time, has no delays or current processes. Tasks will do this.
KISS is a good philosophy!
:)
Ben Cohen SystemVerilog.us
In reply to dave_59:
Yes , I’ve read and got the answer as clearly mention in spec you can use fork join_none in function
Thanks
Milin