我想用两个数组制作一个数组。
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
有人可以帮忙吗?
祝你好运 阿德里安
答案 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这将是糟糕的设计。)