[verilog hdl] 总是说我这句话出问题,但是不知道问题在哪里?请大神指教~~谢谢

always @((posedge clk) or tran_state or tx_init or i2)
2025-01-05 06:15:57
推荐回答(2个)
回答1:

这样写敏感列表不对吧?时序逻辑最好用边沿触发,组合逻辑最好用电平触发。这个规则是一定要遵从的,不然写出的硬件综合后就太糟了。
边沿触发信号和电平触发信号如果写在同一个敏感列表中,DC综合器是会报错的,没办法综合。不过早期的modelsim不会报错,不知道现在的会不会报错。早期我写成always @(posedge clk or tran_state or tx_init or i2)过,没有报错,但是用DC综合的时候一定会报错的。

回答2:

always @(posedge clk)
或者
always @(tran_state or tx_init or i2)

两者不能混着写。
前者是时序逻辑的写法,后者是组合逻辑的写法。