You can only write to a signal from a single process. But you can write the the same variable multiple times from the same process, last write wins. So you can do
always_ff @(posedge clk)
begin
enable <= 0;
case(opcode)
READ_OP: Read(...);
WRITE_OP: Write(...);
endcase
Note that you must always use NBA <=
to assign to enable
inside your tasks (and use void functions instead of tasks if Read/Write do not consume time.