top.v 375 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
module top
(
 input x,
 input y,
 input cin,

 output reg A,
 output reg cout,
 output reg B,C
 );
 
 reg ASSERT = 1;
 
 initial begin
    begin
        A = 0;
        cout = 0;
    end
 end

`ifndef BUG
assign    A =  y + cin;
assign    cout =  y + A;
    always @*
    assert(ASSERT);
assign {B,C} =  {cout,A} <<< 1;
`else
assign {cout,A} =  cin - y * x;
`endif

endmodule