| module top | |
| ( | |
| input x, | |
| input y, | |
| input cin, | |
| output reg A, | |
| output cout | |
| ); | |
| parameter WIDTH = 1; | |
| wire o; | |
| `ifndef BUG | |
| //always @(posedge cin) | |
| // A <= o; | |
| assign cout = cin ? y : x; | |
| //middle u_mid (x,y,o); | |
| `else | |
| assign {cout,A} = cin - y * x; | |
| `endif | |
| endmodule | |
| module middle | |
| ( | |
| input x, | |
| input y, | |
| output o | |
| ); | |
| assign o = x + y; | |
| endmodule |