31 lines
656 B
Coq
31 lines
656 B
Coq
|
|
// The basic example is from 1364-2005
|
||
|
|
module top;
|
||
|
|
reg pass;
|
||
|
|
reg [3:0] a;
|
||
|
|
reg [5:0] b;
|
||
|
|
reg [15:0] c;
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
pass = 1'b1;
|
||
|
|
|
||
|
|
a = 4'hF;
|
||
|
|
b = 6'hA;
|
||
|
|
|
||
|
|
// Self-determined context so the width is the same as a (4 bits).
|
||
|
|
c = { a**b };
|
||
|
|
if (c !== 16'h0001) begin
|
||
|
|
$display("FAILED self-determined power, expected 0001, got %h", c);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
|
||
|
|
// The width is determined by a and c so use 16 bits here.
|
||
|
|
c = a**b;
|
||
|
|
if (c !== 16'hac61) begin
|
||
|
|
$display("FAILED context-determined power, expected ac61, got %h", c);
|
||
|
|
pass = 1'b0;
|
||
|
|
end
|
||
|
|
|
||
|
|
if (pass) $display("PASSED");
|
||
|
|
end
|
||
|
|
endmodule
|