Function VHDL:在函数的变量声明区域中无法识别类型

Function VHDL:在函数的变量声明区域中无法识别类型,function,vhdl,subtype,Function,Vhdl,Subtype,我正在尝试编写一个函数,从csv文件读取数据,并将数据格式化为固定点,以便可以使用它初始化ROM内容 该函数包含在一个包中。包体看起来像: -- Package Body Section package body file_io_pkg is impure function f_init_rom_fixed ( fname : string ; path : string; fsize : integer; int_size : intege

我正在尝试编写一个函数,从csv文件读取数据,并将数据格式化为固定点,以便可以使用它初始化ROM内容

该函数包含在一个包中。包体看起来像:

-- Package Body Section
package body file_io_pkg is 


impure function f_init_rom_fixed 
   ( fname : string ;
     path  : string;   
     fsize : integer; 
     int_size : integer;
     dec_size : integer  ) return t_sfixed_vec is 

variable v_csv_file    : csv_file_reader; 
variable v_read_sfixed : t_s16 ;
variable v_sfixed_vec  : t_sfixed_vec;

begin

   v_csv_file.initialize(path&fname);
   v_csv_file.readline;

   l_read:
      for i in 0 to fsize - 1 loop
         v_read_sfixed  := signed(to_sfixed(v_csv_file.read_real, int_size ,- dec_size);   
         v_sfixed_vec(i):= v_read_sfixed; 
      end loop l_read; 

   return v_sfixed_vec;  

end function ;

end package body file_io_pkg;  
在详细阐述时,我发现以下错误:

Error : 'csv_file_reader' is not declared (VHDL-1241) : C:/FPGA/test_prj/hdl/file_io_pkg.vhd(54) 
但是csv文件读取器是csv文件读取器pk()中定义的类型

此程序包已编译,并在我的程序包的library部分导入

library work;
use work.csv_file_reader_pkg.all;
所以我真的不明白为什么我会出现这个错误,有什么提示吗


提前感谢

csv\u文件读取器
未声明,但
csv\u文件读取器类型
已声明。用
csv\u file\u reader\u type
替换
csv\u file\u reader\u reader\u应该可以修复此错误。

请提供包含包文件和包体文件的设计文件的全部内容,包括包声明之前的上下文子句以及不属于VHDL语言的任何依赖项(Jasinski软件包源代码)。工作的库声明已经隐式提供,第二次和后续出现没有任何效果。虽然无法复制问题,但缺少多个类型声明,类型名称是错误的(应该是
变量v_csv_file:csv_file_reader_type;
,一个印刷错误)。您缺少一个右括号,应该是
v_read_sfixed:=已签名(to_sfixed(v_csv_file.read_real,int_size,-dec_size))
此语句中可能隐藏着另一个错误。将类型转换为带符号的类型似乎是一个错误。通过对
t_s16
t_sfixed_vec
的类型标记声明以及缺少的包声明进行假设,这些假设可能不准确告诉你错误在包体中的位置。函数f_init_rom_中可能还有更多错误。下一票是否意味着这没有解决你的错误?你能提供更多详细信息吗?