联合两个阵列

时间:2016-02-05 13:40:41

标签: vhdl

我想用两个数组制作一个数组。

TYPE        character_string IS array (0 TO 15) of unsigned (7 DOWNTO 0); 
TYPE        full_string IS array (0 TO 31) of unsigned (7 DOWNTO 0); 
SIGNAL  lcd_oben, lcd_unten             : character_string; 
SIGNAL  lcd_data                                : full_string;

我想把两个较小的阵列放在大的阵列中。 像这样:

lcd_data    <= lcd_oben & lcd_unten;

但是这给出了错误:

Error (10327): VHDL error at seqdec.vhd(55): can't determine definition of operator ""&"" -- found 0 possible definitions

有人可以帮忙吗?

祝你好运 阿德里安

1 个答案:

答案 0 :(得分:3)

您已将这些声明为完全不相关的数组类型,因此您已告知编译器在没有类型转换的情况下不要将它们混合在一起。

我不认为这真的是你想做的事。

创建两个数组类型,无约束数组的子类型,如array(<>) of unsigned(7 downto 0)。然后它们不是完全独立的类型,并且应该有一个预定义的&运算符。

TYPE        LCD_string IS array (natural range <>) of unsigned (7 DOWNTO 0); 
SUBTYPE     character_string IS LCD_String (0 TO 15);
SUBTYPE     full_string IS LCD_String (0 TO 31);

(或者您可以编写自己的&函数来执行必要的转换; IMO这将是糟糕的设计。)