看过了你的问题,发现你的程序有问题。问题在verilog中4条语句是同时并行执行的, 根据你的设计要求,~sel和sel_&a两条语句明显是有先后顺序的。 先要对sel取反,然后其结果在参与和a的与运算。修改下吧 not u1(sel_,sel);#1 and u2(a1,a,sel_); and u3(b1,b,sel);#2 or u4(out1,a1,b1);