added tests for new verilog features

This commit is contained in:
Clifford Wolf 2014-06-07 12:18:00 +02:00
parent 744e518467
commit 3af7c69d1e
2 changed files with 38 additions and 7 deletions

15
tests/simple/arraycells.v Normal file
View File

@ -0,0 +1,15 @@
module test001(a, b, c, y);
input a;
input [31:0] b, c;
input [31:0] y;
aoi12 p [31:0] (a, b, c, y);
endmodule
module aoi12(a, b, c, y);
input a, b, c;
output y;
assign y = ~((a & b) | c);
endmodule

View File

@ -1,4 +1,5 @@
module test001(output [63:0] y); module test001(input [5:0] a, output [7:0] y, output [31:0] x);
function [7:0] mylog2; function [7:0] mylog2;
input [31:0] value; input [31:0] value;
begin begin
@ -10,11 +11,26 @@ module test001(output [63:0] y);
end end
endfunction endfunction
genvar i; function [31:0] myexp2;
generate input [7:0] value;
for (i = 0; i < 64; i = i+1) begin begin
localparam tmp = mylog2(i); myexp2 = 1;
assign y[i] = tmp; repeat (value)
myexp2 = myexp2 << 1;
end end
endgenerate endfunction
reg [7:0] y_table [63:0];
reg [31:0] x_table [63:0];
integer i;
initial begin
for (i = 0; i < 64; i = i+1) begin
y_table[i] <= mylog2(i);
x_table[i] <= myexp2(i);
end
end
assign y = y_table[a];
assign x = x_table[a];
endmodule endmodule