VHDL中的无符号文字
如何在赋值中使用无符号文字 看看这个例子:VHDL中的无符号文字,vhdl,Vhdl,如何在赋值中使用无符号文字 看看这个例子: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.numeric_std.all; entity myTest is Port ( clk : in STD_LOGIC ); end myTest; architecture Behavioral of myTest is signal testSignal : unsigned (31 downto 0); begin
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity myTest is
Port ( clk : in STD_LOGIC );
end myTest;
architecture Behavioral of myTest is
signal testSignal : unsigned (31 downto 0);
begin
process (clk) is
begin
if (rising_edge (clk)) then
-- this compiles fine:
testSignal <= testSignal + 1;
-- this causes an error. Why?
testSignal <= 1;
end if;
end process;
end Behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
使用ieee.numeric_std.all;
实体myTest是
端口(时钟:在标准逻辑中);
结束我的测试;
myTest的架构是
信号测试信号:无符号(31到0);
开始
过程(clk)是
开始
如果(上升沿(clk)),则
--这很好:
testSignalieee中的+
运算符重载。对于无符号的和整数的而言,numeric_std
,这就是第一行工作的原因;但是,赋值不是(也不能是),而且由于1
是一个整数文本,因此不能将其直接赋值给无符号的
(这是一个向量);它必须先转换。标准方法是:
testSignal <= to_unsigned(1, testSignal'length);
testSignal在ieee中,+
运算符被重载。对于无符号
和整数
,数字std
,这就是第一行工作的原因;但是,赋值不是(也不能是),而且由于1
是一个整数文本,因此不能将其直接赋值给无符号的
(这是一个向量);它必须先转换。标准方法是:
testSignal <= to_unsigned(1, testSignal'length);
testSignal在ieee中,+
运算符被重载。对于无符号
和整数
,数字std
,这就是第一行工作的原因;但是,赋值不是(也不能是),而且由于1
是一个整数文本,因此不能将其直接赋值给无符号的
(这是一个向量);它必须先转换。标准方法是:
testSignal <= to_unsigned(1, testSignal'length);
testSignal在ieee中,+
运算符被重载。对于无符号
和整数
,数字std
,这就是第一行工作的原因;但是,赋值不是(也不能是),而且由于1
是一个整数文本,因此不能将其直接赋值给无符号的
(这是一个向量);它必须先转换。标准方法是:
testSignal <= to_unsigned(1, testSignal'length);
testSignal谢谢。现在有意义了。除了fru1tbat的答案,您还可以使用二进制或十六进制值的直接向量赋值,如下面的testSignal。现在有意义了。除了fru1tbat的答案,您还可以使用二进制或十六进制值的直接向量赋值,如下面的testSignal。现在有意义了。除了fru1tbat的答案,您还可以使用二进制或十六进制值的直接向量赋值,如下面的testSignal。现在有意义了。除了fru1tbat的答案,你还可以使用直接向量赋值和二进制或十六进制值,比如testSignal