if statement
This is equivalent to using a continuous assignment with a conditional operator: assign out = (condition) ? x : y; However, the procedural if statement provides a new way to make mistakes. The circuit is combinational only if out is always assigned a value.
Always if - HDLBits (01xz.net)
1 // synthesis verilog_input_version verilog_2001 2 module top_module( 3 input a, 4 input b, 5 input sel_b1, 6 input sel_b2, 7 output wire out_assign, 8 output reg out_always ); 9 always @(*)begin 10 if(sel_b1&&sel_b2) begin 11 out_always<=b; 12 end 13 else begin 14 out_always<=a; 15 end 16 end //很奇怪,康华光书上并没有写end,是因为书上的例子只有always这一个模块吧 17 18 assign out_assign=(sel_b1&&sel_b2)?b:a; 19 20 endmodule
再写:
不知道为什么当时很喜欢在组合里面用非阻塞……写的有点丑

浙公网安备 33010602011771号