转换和调整矢量大小

时间:2017-06-23 14:58:18

标签: vector type-conversion vhdl

我有以下代码(简化):

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;

我收到一条错误消息“&#39;调整大小&#39;无法与子程序匹配。为什么呢?

1 个答案:

答案 0 :(得分:0)

我想我发现了问题。我使用了这两个图书馆:

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

虽然两者对无符号具有相同的实现,如下所示:

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

删除概要库后,错误消息消失。虽然我在这里理解了这个问题,但上面的错误信息让我看错了方向。

谢谢!