59 lines
1.1 KiB
Coq
59 lines
1.1 KiB
Coq
|
|
module top;
|
||
|
|
reg pass;
|
||
|
|
real in;
|
||
|
|
wreal out1, out2, outa;
|
||
|
|
wreal ca1 = 2.25;
|
||
|
|
wreal ca2;
|
||
|
|
|
||
|
|
assign ca2 = 4.5;
|
||
|
|
|
||
|
|
sub1 dut1(out1, in);
|
||
|
|
sub2 dut2(out2, in);
|
||
|
|
suba duta(outa, in);
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
pass = 1'b1;
|
||
|
|
in = 1.0;
|
||
|
|
#1;
|
||
|
|
if (out1 != 1.0) begin
|
||
|
|
$display("FAILED: expected out1 to be 1.0, got %f", out1);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
if (out2 != 1.0) begin
|
||
|
|
$display("FAILED: expected out2 to be 1.0, got %f", out2);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
if (outa != 1.0) begin
|
||
|
|
$display("FAILED: expected outa to be 1.0, got %f", outa);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
if (ca1 != 2.25) begin
|
||
|
|
$display("FAILED: expected ca1 to be 2.25, got %f", ca1);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
if (ca2 != 4.5) begin
|
||
|
|
$display("FAILED: expected ca1 to be 4.5, got %f", ca2);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (pass) $display("PASSED");
|
||
|
|
end
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module sub1(out, in);
|
||
|
|
output out;
|
||
|
|
input in;
|
||
|
|
wreal out, in;
|
||
|
|
assign out = in;
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module sub2(out, in);
|
||
|
|
output wreal out;
|
||
|
|
input wreal in;
|
||
|
|
assign out = in;
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module suba(output wreal out, input wreal in);
|
||
|
|
assign out = in;
|
||
|
|
endmodule
|