| module top | |
| ( | |
| input x, | |
| input y, | |
| input cin, | |
| output A, | |
| output cout | |
| ); | |
| wire A1,cout1; | |
| // initial begin | |
| // A = 0; | |
| // cout = 0; | |
| // end | |
| `ifndef BUG | |
| assign A1 = ~y + &cin; | |
| assign cout1 = cin ? |y : ^A; | |
| assign A = A1|y~&cin~^A1; | |
| assign cout = cout1&cin~|y; | |
| `else | |
| assign {cout,A} = 1'bZ; | |
| `endif | |
| endmodule |