always<\/b> block. It will only be sensitive to the signals passed into the function or task. Here is an example that illustrates the behaviour:<\/p>\n\n\n\nmodule test;\n logic a, b, c, always_d, always_comb_d;\n\n function logic my_func(input logic m_c);\n my_func = a | b | m_c;\n endfunction\n\n always @*\n always_d = my_func(c);\n\n always_comb\n always_comb_d = my_func(c);\n\n initial begin\n $monitor(\"@%0t: a = %d, b = %d, c = %d, always_d = %d, always_com_d = %d\", $time, a, b, c, always_d, always_comb_d);\n end\n \n initial begin\n a = 0;\n b = 0;\n c = 0;\n #10 a = 1;\n #10 b = 1;\n #10 c = 1;\n end\nendmodule\n<\/pre>\n\n\n\nWhen the code is executed, it gives the following output. Notice that change on a, b<\/i> does not trigger the always @*<\/b> block to be reevaluated, but change on c<\/i> does.<\/p>\n\n\n\n@0: a = 0, b = 0, c = 0, always_d = 0, always_com_d = 0\n@10: a = 1, b = 0, c = 0, always_d = 0, always_com_d = 1\n@20: a = 1, b = 1, c = 0, always_d = 0, always_com_d = 1\n@30: a = 1, b = 1, c = 1, always_d = 1, always_com_d = 1<\/pre>\n\n\n\n