wire a,b,c;
always @ (a or b) //当a和b有变化时,触发加法器操作
c = a + b;
上面这个例子实现了一个加法器,如果需要实现一个数据选择器,可以书写如下:
例5:always选择器。
wire a,b,c;
wire ena;
always @ (a or b or ena) //当a、b和ena有变化时,进行下列操作
if(ena == 1’b0) c = b;
else c = a;
如果想实现一个比较复杂的组合逻辑电路,例如:
例6:always8选1选择器。
wire a0,a1,a2,a3,a4,a5,a6,a7,b;
wire [2:0] addr;
always @ (a0 or a1 or a2 or a3 or a4 or a5 or a6 or a7 or addr) begin
case(addr) //使用case语句实现8选1数据选择器
3’d0: b = a0; //只有当a0~a7以及addr有变化时,才触发case的操作
3’d1: b = a1;
3’d2: b = a2;
3’d3: b = a3;
3’d4: b = a4;
3’d5: b = a5;
3’d6: b = a6;
3’d7: b = a7;
endcase
end