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;
input [31:0] value;
begin
@ -10,11 +11,26 @@ module test001(output [63:0] y);
end
endfunction
genvar i;
generate
for (i = 0; i < 64; i = i+1) begin
localparam tmp = mylog2(i);
assign y[i] = tmp;
function [31:0] myexp2;
input [7:0] value;
begin
myexp2 = 1;
repeat (value)
myexp2 = myexp2 << 1;
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