H
Hubble
Guest
Hi all,
I used Modelsim 6.0c for a testbench and am now supposed to switch to
Modelsim 6.2a. My testbench consides a file reader module, which is
able to include other files. For this, I am using a procedure "scan"
which has a string parameter.
The body of scan readas the scafile line by line. If a line contains
"INC filename", scan calls inc_command which calls scan recursively and
includes the file.
AFAIK, this is a common technique. However, on Modulsim 6.2a ("vcom
-93"), the compiler crashes saying "segmentation fault". It seems to
read everything, pauses before the end and then faults leaving a _lock
file. Modelsim 6.0c did run perfectly. I tried "-O0" with no luck.
The outline of the module is as follows:
Scanfile_P: process
procedure scan(filename: string) is
file scanfile: text is filename;
variable args: tbs_dynarray; -- argument list
...
procedure inc_command(...)
begin
...
scan(f); -- recursion
...
end;
begin
if (...) then
writecommand(...);
elsif (...) then
inc_command(...);
end if;
end;
begin
scan(G_SCANFILE); -- G_SCANFILE is a generic
end -- Scanfile_P;
Hubble.
I used Modelsim 6.0c for a testbench and am now supposed to switch to
Modelsim 6.2a. My testbench consides a file reader module, which is
able to include other files. For this, I am using a procedure "scan"
which has a string parameter.
The body of scan readas the scafile line by line. If a line contains
"INC filename", scan calls inc_command which calls scan recursively and
includes the file.
AFAIK, this is a common technique. However, on Modulsim 6.2a ("vcom
-93"), the compiler crashes saying "segmentation fault". It seems to
read everything, pauses before the end and then faults leaving a _lock
file. Modelsim 6.0c did run perfectly. I tried "-O0" with no luck.
The outline of the module is as follows:
Scanfile_P: process
procedure scan(filename: string) is
file scanfile: text is filename;
variable args: tbs_dynarray; -- argument list
...
procedure inc_command(...)
begin
...
scan(f); -- recursion
...
end;
begin
if (...) then
writecommand(...);
elsif (...) then
inc_command(...);
end if;
end;
begin
scan(G_SCANFILE); -- G_SCANFILE is a generic
end -- Scanfile_P;
Hubble.