couragebo
Junior Member
![* *](https://designers-guide.org/forum/Templates/Forum/default/starblue.gif)
Offline
Posts: 18
|
I am using Spectre to create a VerilogA model.
I defined a port using a vector named "n1"; the size of this vector is NUM (constant), like below:
Code:`define NUM 200
module num_array(n1, n2);
input [1:`NUM] n1;
output n2;
electrical [1:`NUM] n1;
electrical n2;
The curious thing is that when NUM is big enough (>150), the compilation encounters always an error:
Internal error found in Spectre during SpectreHDL compile, during the generation of Artist DPLs.
However, when NUM is small (eg. 20), there is no problem.
Who can help to explain this?
I think there might be a conflict with laplace function or other analog function, because if I remove laplace function, there will be no error reporting.
The code is as below:
Code:`include "constants.vams"
`include "disciplines.vams"
`define NUM 200
module num_array(n1, n2);
input [1:`NUM] n1;
output n2;
electrical [1:`NUM] n1;
electrical n2;
integer i;
real in_var [1:`NUM];
real in_total;
analog begin
generate i (1,`NUM) begin
in_var[i] = V(n1[i]);
end
for (i=1; i<= `NUM; i=i+1) begin
in_total = in_var[i] + in_total;
end
V(n2) <+ laplace_zp(in_total,{-1,0},{-1/2n,0});
end
endmodule
The problem is I need to use a large vector size. so my question is: Is there a limitation for the vector size in presence of some analog functions?
Thanks for the help!
|