2017-06-23 6 views
0

をリサイズ:変換私は(簡体字)のコード下記たベクトル

library IEEE; 
use IEEE.std_logic_1164.all; 
use IEEE.numeric_std.all; 
use ieee.std_logic_arith.all; 

entity foo is 
end entity; 

architecture fum of foo is 

    signal slv16 : STD_LOGIC_VECTOR(15 DOWNTO 0); 
    signal slv5 : STD_LOGIC_VECTOR(7 DOWNTO 0);  

begin 

    slv16 <= std_logic_vector(resize(unsigned(slv5), slv16'length)); 

end architecture; 

私は「リサイズ」がサブプログラムに一致させることができないというエラーメッセージが表示されます。どうして?

+0

私は分かりません。私はそれに何も間違いはないと思う。私は3つの異なるシミュレータで試してみました。彼らはそれもOKだと思っています:https://www.edaplayground.com/x/pRr。何のシミュレータを使っていますか? –

+0

エラーメッセージ全体と、ツールを示す警告が表示されます。 'resize [unsigned、natural return unsigned]は、パッケージnumeric_stdで宣言されています。 – user1155120

+0

GHDL( 'ghdl -a --std = 08 -ieee = standard')またはメンター・グラフィックスのModelsim(' vcom -2008')ではエラーはありません。 –

答えて

0

私は問題を見つけたと思います。

type UNSIGNED is array (NATURAL range <>) of STD_LOGIC; 

をエラーメッセージがなくなっている概要ライブラリを削除した後、次のように両方が符号なしに同じimplemenationを持っていながら、

USE ieee.numeric_std.all; 
USE ieee.std_logic_arith.all; 

:私はこの2 libraiesを使用しました。私はここでの問題を理解していますが、上記のエラーメッセージは私に見て間違った方向を与えました。

ありがとうございます!

+0

あなたの質問のコードは 'USE ieee.std_logic_arith.all;';これを表示するには編集することをお勧めします。エラーメッセージは、VHDLでは、同じサブプログラムに対して複数の定義がある場合、すべてが無視され、競合を警告するためです。 –

+0

ok - これは、このような場合にすべてのlibsが無視されたときに、なぜこのようなエラーメッセージが表示されるのかを説明しています。 – Norick

関連する問題