VHDL自定义type的问题

[复制链接]
2678|1
 楼主| reset88 发表于 2008-5-3 17:55 | 显示全部楼层 |阅读模式
在库文件中定义了一个类型reg_index_t:<br />&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;reg_index_t&nbsp;is&nbsp;range&nbsp;0&nbsp;to&nbsp;31;&nbsp;然后在同一个库中定义了几个procedure,有的procedure定义了reg_index_t类型的信号,比如:&nbsp;<br /><br />procedure&nbsp;instr_decode&nbsp;(&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;instr&nbsp;:&nbsp;in&nbsp;std_logic_vector(&nbsp;0&nbsp;to&nbsp;31&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;op&nbsp;:&nbsp;out&nbsp;std_logic_vector(&nbsp;0&nbsp;to&nbsp;3&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;ra&nbsp;:&nbsp;out&nbsp;reg_index_t;<br />&nbsp;&nbsp;&nbsp;&nbsp;signal&nbsp;rb&nbsp;:&nbsp;out&nbsp;reg_index_t&nbsp;);&nbsp;<br /><br />用modelsim编译这个库文件的时候出现无数个错误,都和这个reg_index_t有关。一种错误是:&nbsp;<br />#&nbsp;**&nbsp;Error:&nbsp;E:/Design/Courses/ESE545/Src/mylib/mylib.vhd(247):&nbsp;Cannot&nbsp;resolve&nbsp;slice&nbsp;name&nbsp;as&nbsp;type&nbsp;work.mypack.reg_index_t.&nbsp;<br /><br />还有一种:&nbsp;<br />#&nbsp;**&nbsp;Error:&nbsp;E:/Design/Courses/ESE545/Src/mylib/mylib.vhd(283):&nbsp;Aggregate&nbsp;expression&nbsp;cannot&nbsp;be&nbsp;scalar&nbsp;type&nbsp;work.mypack.reg_index_t.&nbsp;<br /><br />对应的都是对这个类型的signal赋值语句:&nbsp;<br /><br />L247:&nbsp;ra&nbsp;&lt=&nbsp;instr(20&nbsp;to&nbsp;24);&nbsp;<br />L283:&nbsp;ra&nbsp;&lt=&nbsp;(&nbsp;others&nbsp;=&gt&nbsp;'0'&nbsp;);&nbsp;<br /><br />看不出这个类型的定义有什么问题,哪位达人指点一下吧。谢谢。
neil3w 发表于 2008-5-3 20:06 | 显示全部楼层

类型不匹配?

类型不匹配?。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部