VHDL:将大向量与值进行比较并分配值

时间:2018-09-12 07:42:51

标签: vhdl

我想比较一个32位的向量。例如

bit_vector:在std_logic_vector中(0到31); ... 如果(bit_vector / =零),那么....-在这里我要检查它是否为零。

将写什么而不是“ ”?任何紧凑格式?

我认为我们会写 if(bit_vector / = x'0')吗? -不确定

请在这里说明如何检查?如果我想给任何其他信号分配一些初始值,那将是什么方法。例如

signal some_signal:std_logic_vector(0到31):= ??? ---我想了解除“ 00000000110000010101010100000000 ”之类的选项以外的其他选项。

感谢和欢呼

塔希尔

1 个答案:

答案 0 :(得分:4)

问题的第一部分可以这样写:

if bit_vector /= (bit_vector'range=>'0') then

第二部分的一些示例:

...
use ieee.numeric_std.all;
...

signal some_signal : std_logic_vector(0 to 31) := x"00000000";
signal some_signal : std_logic_vector(0 to 31) := "00000000_00000000_00000000_00000000";
signal some_signal : std_logic_vector(0 to 31) := (3=>'1', 17=>'1', others=>'0');
signal some_signal : std_logic_vector(0 to 31) := std_logic_vector(to_unsigned(123456789, 32));