Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Concatenation (VHDL)如何在一个时钟中部分分配求和结果_Concatenation_Vhdl_Partial - Fatal编程技术网

Concatenation (VHDL)如何在一个时钟中部分分配求和结果

Concatenation (VHDL)如何在一个时钟中部分分配求和结果,concatenation,vhdl,partial,Concatenation,Vhdl,Partial,我试图在VHDL上实现这一点: a<=(b+c)/16; a使用ieee.numeric\u std并将a、b、c、dummy声明为无符号,而不是std\u logic\u vector。或者签名,如果这是应用程序所需要的。只需第一次尝试,并将a、b和c作为数字类型std\u logic\u vector没有数字意义,因此无法对其进行算术运算 要么让它们都是整数s,要么按照Brian的建议,使用ieee.numeric_std和有符号或无符号向量类型。遵循Martin和Brian的答案,

我试图在VHDL上实现这一点:

a<=(b+c)/16;

a使用
ieee.numeric\u std
并将a、b、c、dummy声明为
无符号
,而不是
std\u logic\u vector
。或者
签名
,如果这是应用程序所需要的。

只需第一次尝试,并将
a
b
c
作为数字类型
std\u logic\u vector
没有数字意义,因此无法对其进行算术运算


要么让它们都是
整数
s,要么按照Brian的建议,使用ieee.numeric_std
有符号
无符号
向量类型。

遵循Martin和Brian的答案,目的是强类型-区分标准逻辑向量,无符号和有符号是为了防止计算小于零时数学中有符号和无符号数字的意外混合。处理无符号数字(前导零)时,可以键入convert而不受惩罚-
(a&dummy)
signal b,c   : std_logic_vector(7 downto 0);
signal a     : std_logic_vector(8 downto 0);
signal dummy : std_logic_vector(3 downto 0);

(a & dummy) <= ("00000" & b) + ("00000" & 'c');