Verilog 2001和Verilog2005 能够将memory转换成为vector型变量,综合工具可以选择synplify pro 9.6.2
module memory2vector( mem,vec);
parameter vectorsize = 4;
parameter arraysize = 3;
input [vectorsize-1:0] mem [arraysize-1:0]; // 输入端口input定位为存储器的形式是在Verilog2005标准中实现的
output[vectorsize*arraysize-1:0] vec; // 仅在Verilog2005标准中支持input,output 为memory型数据
genvar i,j; // genvar 和generate功能强大,可以配合for循环作一些规律性的赋值,
generate //而这仅是在Verilog2001标准中能够实现的,Verilog95无法完成
for(i=0;i<=arraysize-1;i= i+1)begin:array
for(j =0; j<= vectorsize-1;j= j+1) begin:vetor
assign vec[i*vectorsize+j] = mem[j];
end
end
endgenerate
endmodule
总结:写法花哨,synplify pro 、quartus可以综合,但ISE中不支持,具体原因可能是ISE不支持Verilog2005标准吧 |