Nから2^Nのデコーダーを作成していて、いくつかのエラーに直面しています。私を助けてください。
Naddr-整数のアドレスビット数addr-アドレスビットstd_logic_vectorfbd-(整数、std_logic_vector)-2進数から10進数に変換する関数fpower-(整数)-2^Nを提供する関数
コード:
Architecture deco of Deco is   
begin  
process(addr, En)  
  variable a : integer;  
begin  
  a := fbd(Naddr, addr);  
  if(En = '1') then  
    q <= (a => '1', others => '0'); --- error1           
  elsif(En = '0') then  
    q <= (fpower(Naddr)-1 downto 0 => '0');  
  end if;  
end process;  
end deco;
私が得るエラーは次のとおりです。
1)エラー(10318):Deco.vhd(33)でのVHDL集約エラー:選択は一定でなければなりません(error1)
2)エラー:最上位のユーザー階層を詳しく説明できません