请问关于renge和array的问题

[复制链接]
2061|2
 楼主| worrior_1 发表于 2009-3-5 18:17 | 显示全部楼层 |阅读模式
ge, se, ic, logic, ST
<br />这是程序的源代码<br />library&nbsp;IEEE;<br />use&nbsp;IEEE.std_logic_1164.all;<br />use&nbsp;IEEE.std_logic_unsigned.all;<br />ENTITY&nbsp;General_decoder&nbsp;is<br />generic(sel_size:integer:=3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out_size:integer:=8);<br />&nbsp;&nbsp;port(sel:in&nbsp;std_logic_vector(sel_size-1&nbsp;downto&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en:in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y:out&nbsp;std_logic_vector(out_size-1&nbsp;downto&nbsp;0));<br />end&nbsp;General_decoder;<br />ARCHITECTURE&nbsp;rtl&nbsp;of&nbsp;General_decoder&nbsp;is<br />begin<br />&nbsp;&nbsp;process(sel,en)<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y&lt=(others=&gt'1');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>for&nbsp;i&nbsp;in&nbsp;y'range&nbsp;loop</b><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(en='1'and(conv_integer(sel))=i)then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y(i)&lt='0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;loop;<br />&nbsp;&nbsp;&nbsp;end&nbsp;process;<br />&nbsp;&nbsp;end&nbsp;rtl;<br />请看我加黑那一行,那个for&nbsp;&nbsp;&nbsp;loop循环语句&nbsp;里面的&quot;i&quot;上面没有定义,为什么程序里面还能用?而且y那里为什么用range?还加上了一个&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;这是为什么?他为什么不用array?程序上面定义的y是从高到低,那应该用array才对啊?但是即使是这样程序反而还能编译通过,后来我试验改成array也可以编译通过,但是你把那个&nbsp;'&nbsp;&nbsp;去掉了他就编译通不过了,这是为什么?
 楼主| worrior_1 发表于 2009-3-5 21:31 | 显示全部楼层

请问关于renge和array的问题

这句话为什么不能这样写?<br />for&nbsp;i&nbsp;in&nbsp;y&nbsp;loop?这样写编译通不过,难道是因为上面的y总线输出了7个信号么?
 楼主| worrior_1 发表于 2009-3-7 16:14 | 显示全部楼层

请问关于renge和array的问题

饿,我还有一点不明白,i&nbsp;前面没有定义怎么能直接拿来用呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

49

帖子

0

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