我想在STD_LOGIC_VECTOR类型的变量中输入一个数字,但我的编译器有问题.
signal cl_output_ChA : STD_LOGIC_VECTOR (16-1 downto 0);
cl_ouput_ChA <= 111111111111111;
Run Code Online (Sandbox Code Playgroud)
编译器给我这两条消息:
谁能给我一个合适的代码行来把这个变量放入一个特定的数值?非常感谢.
首先,错误是因为您编写的数字被视为整数.
我认为你的意思是数字是二进制的吗?在那种情况下使用"".
cl_ouput_ChA <= "111111111111111";
Run Code Online (Sandbox Code Playgroud)
你也可以去十六进制,x"".
cl_ouput_ChA <= x"ffff";
Run Code Online (Sandbox Code Playgroud)
如果要为std_logic_vector分配一个整数,那么就可以这样做.
library IEEE;
use IEEE.Std_Logic_1164.all;
use IEEE.Numeric_STD.all;
...
cl_ouput_ChA <= std_logic_vector(to_unsigned(12345, ch1_ouput_ChA'length)); -- natural
cl_ouput_ChA <= std_logic_vector(to_signed(12345, ch1_ouput_ChA'length)); -- signed
Run Code Online (Sandbox Code Playgroud)
其中12345是整数(或自然),16是宽度.