VHDL:将数值放入 STD_LOGIC_VECTOR 变量的代码

发布于 2024-11-24 16:42:42 字数 344 浏览 2 评论 0原文

我想在 STD_LOGIC_VECTOR 类型的变量中输入一个数字,但编译器有问题。

signal cl_output_ChA :   STD_LOGIC_VECTOR (16-1 downto 0);

cl_ouput_ChA <= 111111111111111;

编译器给我以下两条消息:

  • 111111111111111 的整数值大于整数'high。
  • cl_output_ChA 的类型与 111111111111111 的类型不兼容。

任何人都可以给我一个正确的代码行来在此变量中放入特定的数值吗? 太感谢了。

I would like to enter a number in a a variable of type STD_LOGIC_VECTOR but I have problems with the compiler.

signal cl_output_ChA :   STD_LOGIC_VECTOR (16-1 downto 0);

cl_ouput_ChA <= 111111111111111;

The compiler give me these two messages:

  • The integer value of 111111111111111 is greater than integer'high.
  • Type of cl_output_ChA is incompatible with type of 111111111111111.

could anyone give me a proper code line to put in this variable a particular numeric value?
Thank you so much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哎呦我呸! 2024-12-01 16:42:42

首先,错误是因为您编写的数字被视为整数。

我认为你的意思是数字是二进制的?在这种情况下使用“”。

cl_ouput_ChA <= "111111111111111";

您也可以选择十六进制,x""。

cl_ouput_ChA <= x"ffff";

如果你想将一个整数分配给一个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

其中 12345 是整数(或自然数),16 是宽度。

First of all, the error is because the number as you have written it is treated as an integer.

I take that you mean for the number to be binary? In that case use "".

cl_ouput_ChA <= "111111111111111";

You can also go for hex, x"".

cl_ouput_ChA <= x"ffff";

If you want to assign an integer to an std_logic_vector, then you can do it like this.

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

Where 12345 is the integer (or natural) and 16 is the width.

人生戏 2024-12-01 16:42:42

您还可以执行以下操作,在每位中添加 1。

cl_ouput_ChA <= (others => '1');

You could also do the following, which puts a 1 in each bit.

cl_ouput_ChA <= (others => '1');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文