The accepted answer to this question notes that "every reg variable can only be assigned to in at most one always statement". It's clear that in a lot of cases assigning a reg to multiple always blocks is meaningless. However, it's seems that there could be hardware-meaning instances of a reg in different always blocks.
For example, what if a same reg is assigned to always @(posedge clk1), always @(posedge clk2) where clk1, clk2 never beat of the same time? There would be no race-condition.
Why is there a "hard rule" concerning regs in different always blocks?
always @(posedge clk or negedge clk)or justalways @clkwould make sense. Even so, I'm not sure if any tools will synthesize those -- I have always explicitly instantiated the library block instead. – The Photon Apr 10 '12 at 15:36