在VHDL中检查整数信号是偶数还是奇数的最简单或最简单的方法是什么?
答案 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逻辑向量而不是预编译类型。我发现他们似乎总是在模拟中工作,但从不在板上工作。