通过观察可知,在a、b同时为0或1时,state的值改变
state的值可以改变q的输出,1为ab的同或,0为异或
利用assign q=进行输出
module top_module (
input clk,
input a,
input b,
output q,
output state );
always@(posedge clk)
if(a&b)state<=1'b1;
else if(!(a|b))state<=1'b0;
assign q= state?!(a^b):a^b;
endmodule