这是程序的源代码 library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; ENTITY General_decoder is generic(sel_size:integer:=3; out_size:integer:=8); port(sel:in std_logic_vector(sel_size-1 downto 0); en:in std_logic; Y:out std_logic_vector(out_size-1 downto 0)); end General_decoder; ARCHITECTURE rtl of General_decoder is begin process(sel,en) begin Y<=(others=>'1'); for i in y'range loop if(en='1'and(conv_integer(sel))=i)then y(i)<='0'; end if; end loop; end process; end rtl; 请看我加黑那一行,那个for loop循环语句 里面的"i"上面没有定义,为什么程序里面还能用?而且y那里为什么用range?还加上了一个 ' 这是为什么?他为什么不用array?程序上面定义的y是从高到低,那应该用array才对啊?但是即使是这样程序反而还能编译通过,后来我试验改成array也可以编译通过,但是你把那个 ' 去掉了他就编译通不过了,这是为什么? |