top.v 489 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
module top
(
 input x,
 input y,
 input cin,

 output reg A,
 output cout
 );
 parameter X = 1;
 wire o;

13 14 15 16 17
 initial A = 0;
 initial cout = 0;



18 19 20 21
`ifndef BUG
always @(posedge cin)
	A <= o;

22
assign cout =  cin? y : x;
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

middle u_mid (.x(x),.o(o));
u_rtl inst_u_rtl (.x(x),.o(o));
`else
assign {cout,A} =  cin - y * x;
`endif

endmodule

module middle
(
	input x,
	input y,
	output o
);

assign o = x + y;
endmodule

module u_rtl
(
	input x,
	input y,
	output o
);

assign o = x + y;
endmodule