Types 中缀运算符没有可行的条目“+&引用;。如何理解数据类型要求/转换?

Types 中缀运算符没有可行的条目“+&引用;。如何理解数据类型要求/转换?,types,vhdl,Types,Vhdl,我仍然无法理解VHDL中的数据类型。有谁有好的资源可以让我了解更多?我的主要问题是理解什么是数据类型。例如,将“0”连接到std_逻辑数据类型时,数据类型是什么?它是保持标准逻辑还是现在是标准逻辑向量?在ieee数字标准中查找“+”运算符时,我看到它采用2种无符号数据类型,并应输出一种无符号数据类型。不确定将一种数据类型转换为另一种数据类型的最佳方式是什么。这是否取决于您使用的软件包?我是否应该执行“未签名('0'&A)”???我对这些关于错误数据类型的错误感到非常沮丧。。。任何帮助都将不胜感激

我仍然无法理解VHDL中的数据类型。有谁有好的资源可以让我了解更多?我的主要问题是理解什么是数据类型。例如,将“0”连接到std_逻辑数据类型时,数据类型是什么?它是保持标准逻辑还是现在是标准逻辑向量?在ieee数字标准中查找“+”运算符时,我看到它采用2种无符号数据类型,并应输出一种无符号数据类型。不确定将一种数据类型转换为另一种数据类型的最佳方式是什么。这是否取决于您使用的软件包?我是否应该执行“未签名('0'&A)”???我对这些关于错误数据类型的错误感到非常沮丧。。。任何帮助都将不胜感激。我想学习如何解释数据类型以及运算符/函数想要/需要什么:

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

entity FullAdd is port (
    A, B, Cin : in std_logic;
    Sum, Cout : out std_logic);

end FullAdd;

architecture arch_FullAdd of FullAdd is
signal input : unsigned(1 downto 0);
begin
    input <= ('0' &  A) + ('0' & B) + Cin;
    sum <= input(0);
    Cout <= input(1);
end architecture arch_FullAdd;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体FullAdd是端口(
A、 Cin:标准逻辑中;
求和,Cout:out标准逻辑);
结束全加;
FullAdd的架构arch_FullAdd是
信号输入:无符号(1到0);
开始

有没有人有好的资源让我可以了解更多?IEEE标准1076-2008。“。将“0”连接到std_逻辑数据类型时,数据类型是什么?它是保持为std_逻辑还是现在是std_逻辑向量?”9.2.5添加运算符。这将是
unsigned'('0'&A)
一个限定表达式(9.3.5),同时还有包std\u logic\u unsigned而不是numeric\u std在-2008中将std\u logic\u向量处理为unsigned<代码>'0'&A
与软件包std_logic_1164 numeric_std的use子句不明确,两者都使
&
可用(12.5重载解析的上下文)。Omar,冒着让一些人不安的风险:如果你需要学习一些HDL语言,我建议你从System Verilog开始。你的打字能力不强。VHDL过去在Verilog上提供的许多优点现在已经包括在内。此外,我看到,系统Verilog在适应新的语言结构方面比VHDL发展得更快。