Verilog - Race Conditions

Race Conditions

The order of execution isn't always guaranteed within Verilog. This can best be illustrated by a classic example. Consider the code snippet below:

initial a = 0; initial b = a; initial begin #1; $display("Value a=%b Value of b=%b",a,b); end

What will be printed out for the values of a and b? Depending on the order of execution of the initial blocks, it could be zero and zero, or alternately zero and some other arbitrary uninitialized value. The $display statement will always execute after both assignment blocks have completed, due to the #1 delay.

Read more about this topic:  Verilog

Famous quotes containing the words race and/or conditions:

    “The brutalities of progress are called revolutions. When they are over we realize this: that the human race has been roughly handled, but that it has advanced.”
    —Victor Hugo (1802–1885)

    “Purity is not imposed upon us as though it were a kind of punishment, it is one of those mysterious but obvious conditions of that supernatural knowledge of ourselves in the Divine, which we speak of as faith. Impurity does not destroy this knowledge, it slays our need for it.”
    —Georges Bernanos (1888–1948)