如何检查VHDL整数是偶数还是奇数?

时间:2011-09-29 19:10:08

标签: vhdl

在VHDL中检查整数信号是偶数还是奇数的最简单或最简单的方法是什么?

4 个答案:

答案 0 :(得分:8)

if (A mod 2) = 0 then
-- it's even
else
-- it's odd
end if;

答案 1 :(得分:3)

如果信号是矢量,请注意,您可以执行以下操作:

if (A(0)) then
-- it's odd
else
-- it's even

答案 2 :(得分:2)

function is_even(val : integer) return boolean is
    constant vec: signed(31 downto 0) := to_signed(val, 32);
begin
   return vec(0) = '0';
end;

function is_even(val : integer) return boolean is
begin
   return val mod 2 = 0;
end;

取决于你的合成器是否足够明亮以找出mod 2

答案 3 :(得分:0)

如果不以整数存储*,另一种方法是从保存该值的标准逻辑向量中注册LSB,并检查它是0还是1.

编辑:重新存储整数

删除*(这可能是许多FPGA的问题)

我在这里犯了错误,我正在考虑两条不同的道路并将两者混合起来。在FPGA上进行编码时,在组件之间传递字符和字符串类型之前遇到了麻烦。虽然我无法列出手头的错误消息,但我还是记下了使用std逻辑向量而不是预编译类型。我发现他们似乎总是在模拟中工作,但从不在板上工作。