M
Mohammed khader
Guest
Hi Vhdl Folks,
For the Process 'Read_HexFile_L' while simulating I got the
follwing error for the first time
KERNEL: Error: E8060 : Stack Overflow
# Fatal error occurred during simulation.
When I simulated next time after re comilation I got the another
error as
# KERNEL: Error: E8017 : Unknown error in kernel process module.
# Fatal error occurred during simulation.
Later it worked well when I used an intermediate variable to pass
the std_Logic_vector to the WRITE function as follows...
std_result:=CONV_STD_LOGIC_VECTOR(integer_result,SINCOS_WORD_LENGTH);
WRITE(SinCos_Vhd,std_result);
According to me CONV_STD_LOGIC_VECTOR is a function and can be used
in any expression or as parameter .But it did'nt work..
Please Help me in understanding this.....
Read_HexFile_Lrocess
file SinCos_Str: Text open read_mode is Hex_File;
type Std_File_Type is file of Std_Logic_Vector;
file SinCos_Vhd: Std_File_Type open write_mode is StdVec_File;
variable Ptr: Line;
variable ch:Character;
variable found:boolean:=false;
variable integer_result:Integer;
variable std_result:std_logic_vector(SINCOS_WORD_LENGTH-1 downto 0);
variable line_read:Natural:=0;
begin
ReadLine_L: while(not ENDFILE(SinCos_Str))loop
READLINE(SinCos_Str,Ptr);
found:=false;
Check_Start_L:for i in Ptr'range loop
READ(Ptr,ch);
if(ch = '$')then
found:=true;
exit Check_Start_L;
end if;
end loop Check_Start_L ;
if(found=true)then
READHEX(Ptr,integer_result);
WRITE(SinCos_Vhd,CONV_STD_LOGIC_VECTOR(integer_result,SINCOS_WORD_LENGTH));
line_read:=line_read+1;
end if;
end loop ReadLIne_L;
wait; -- Wait forever...
end process Read_HexFile_L;
Regards,
Mohammed Khader.
For the Process 'Read_HexFile_L' while simulating I got the
follwing error for the first time
KERNEL: Error: E8060 : Stack Overflow
# Fatal error occurred during simulation.
When I simulated next time after re comilation I got the another
error as
# KERNEL: Error: E8017 : Unknown error in kernel process module.
# Fatal error occurred during simulation.
Later it worked well when I used an intermediate variable to pass
the std_Logic_vector to the WRITE function as follows...
std_result:=CONV_STD_LOGIC_VECTOR(integer_result,SINCOS_WORD_LENGTH);
WRITE(SinCos_Vhd,std_result);
According to me CONV_STD_LOGIC_VECTOR is a function and can be used
in any expression or as parameter .But it did'nt work..
Please Help me in understanding this.....
Read_HexFile_Lrocess
file SinCos_Str: Text open read_mode is Hex_File;
type Std_File_Type is file of Std_Logic_Vector;
file SinCos_Vhd: Std_File_Type open write_mode is StdVec_File;
variable Ptr: Line;
variable ch:Character;
variable found:boolean:=false;
variable integer_result:Integer;
variable std_result:std_logic_vector(SINCOS_WORD_LENGTH-1 downto 0);
variable line_read:Natural:=0;
begin
ReadLine_L: while(not ENDFILE(SinCos_Str))loop
READLINE(SinCos_Str,Ptr);
found:=false;
Check_Start_L:for i in Ptr'range loop
READ(Ptr,ch);
if(ch = '$')then
found:=true;
exit Check_Start_L;
end if;
end loop Check_Start_L ;
if(found=true)then
READHEX(Ptr,integer_result);
WRITE(SinCos_Vhd,CONV_STD_LOGIC_VECTOR(integer_result,SINCOS_WORD_LENGTH));
line_read:=line_read+1;
end if;
end loop ReadLIne_L;
wait; -- Wait forever...
end process Read_HexFile_L;
Regards,
Mohammed Khader.