我恨verilog,一门非常不通人性的语言。
1.怎么给wire型赋值
assign语句可以,但是assign语句有时会报错,这时就需要将output z修改为output reg z,百试百灵。数组同理。
2.always@ (a or b or aluc)
其中a or b or aluc是触发条件
3.initial
不需要条件,单次执行时代替always使用,但是有些场合不用always会报错
4.case()/endcase
相当于switch,值:begin 表达式; end
5.casex()、endcase
相当于case,涉及x态时用这个。
6.<=
!!超级大坑,是非阻塞赋值。即若令r<=3'b000;这个赋值会在整个always都结束以后才会执行。阻塞赋值=是立即执行的。
7.{a,b}
拼接,假设a为8位,b为32位,{a,b}相当于一个40位的,可以赋值也可以被赋值。