| module top | |
| ( | |
| input signed x, | |
| input signed y, | |
| input signed cin, | |
| output signed A, | |
| output signed cout, | |
| output signed B,C | |
| ); | |
| `ifndef BUG | |
| assign A = y >> x; | |
| assign cout = y + A >>> y; | |
| assign {B,C} = {cout,A} << 1; | |
| `else | |
| assign {cout,A} = cin - y * x; | |
| `endif | |
| endmodule |