Verilog中如何同时等待电平敏感事件和边沿敏感事件?

In Verilog, how to wait for level-sensitive and edge-sensitive events simultaneously?

在Verilog中编写测试台时,在"task"中我需要等待这样的事件发生,即:而signal_a1'b1signal_bposedge。但是,不幸的是,我尝试了但没有找到好的解决方案:

@(tb_hready and posedge tb_hclk)        ;//(1)
wait(tb_hready) @(posedge tb_hclk)      ;//(2)
wait(tb_hready && posedge tb_hclk)      ;//(3)
if(tb_hready) @(posedge tb_hclk)        ;//(4)

(1)是语法错误;

(2) 语法不错,但是会先等tb_hready走高,然后再去posege即使tb_hready又低了; -- 这不是我想要的。

(3)是语法错误;

(4) 语法很好,但没有实现我想要的,似乎在这样的表达式中它没有 "wait" for tb_hready 到完全变高了。

我觉得这应该很容易,但我就是得不到我想要的东西,Google 也没什么帮助。有人有什么建议吗?谢谢~~

@(posedge tb_hclk iff tb_hready)