在库文件中定义了一个类型reg_index_t:<br /> type reg_index_t is range 0 to 31; 然后在同一个库中定义了几个procedure,有的procedure定义了reg_index_t类型的信号,比如: <br /><br />procedure instr_decode ( <br /> signal instr : in std_logic_vector( 0 to 31 );<br /> signal op : out std_logic_vector( 0 to 3 );<br /> signal ra : out reg_index_t;<br /> signal rb : out reg_index_t ); <br /><br />用modelsim编译这个库文件的时候出现无数个错误,都和这个reg_index_t有关。一种错误是: <br /># ** Error: E:/Design/Courses/ESE545/Src/mylib/mylib.vhd(247): Cannot resolve slice name as type work.mypack.reg_index_t. <br /><br />还有一种: <br /># ** Error: E:/Design/Courses/ESE545/Src/mylib/mylib.vhd(283): Aggregate expression cannot be scalar type work.mypack.reg_index_t. <br /><br />对应的都是对这个类型的signal赋值语句: <br /><br />L247: ra <= instr(20 to 24); <br />L283: ra <= ( others => '0' ); <br /><br />看不出这个类型的定义有什么问题,哪位达人指点一下吧。谢谢。 |
|