|
问题是由于Verilog中的reg声明和电线声明之间的区别。
4 e/ r7 I3 u1 q9 }2 a" g! b) N7 q- p X
如果您有类型reg的声明,如下所示:8 [+ V7 y) E$ b- v# f9 u) o
" X! m" V4 d, W9 x8 l7 kreg my_signal = initial_value;
) c, L( `. y8 F2 D2 y& @: ^; M% `1 o( L) ?1 J1 J0 e' C
这被视为初始条件。7 P/ t, W/ r) `' x! ^3 ~
) m* R5 W% m4 y3 `- x; |. W但是,如果您的语句如下所示:
7 b/ W2 F& Y4 Z, ?3 x
) R5 ?) D; U. Gwire my_signal = initial_value;
- n. i! |' L5 w0 U+ N& u+ l% k4 q' h/ ^ e( R& b+ z- c6 C
这被视为连续的赋值语句而不是初始条件。
6 m8 D+ J; Z' i* e2 z, I. l
1 u( H. \/ W6 [' ^因此,如果my_signal有另一个assign语句,您将获得多驱动的严重警告。
" f2 y& ~, A8 C% c; ^+ m! F& R# D6 B, d9 R6 D: a9 U0 } ? v
解决方案是修改您的RTL。 |
|