извините, если моя проблема кажется очевидной, я новичок в VHDL. Я попытался написать генератор четности, который считает число 1 в векторе (d) и присваивает true или false переменной odds и even.
мой код:
library ieee;
use ieee.std_logic_1164.all;
--------------------------------------------------
ENTITY testing IS
GENERIC (N : positive := 4);
PORT (d : IN bit_vector(N-1 DOWNTO 0);
odd : OUT bit;
even : OUT bit);
END testing;
--------------------------------------------------
architecture verhalten of testing is
begin
process(d)
function anzahl_1(d_s : in std_logic_vector) return natural is
variable nb : natural;
begin
nb :=0;
lbl: for i in N-1 DOWNTO 0 generate
---d_S(i) <= d_S(i+1) XOR d(i);
if d_s(i) = '1' then
nb := nb +1 ;
end if;
end generate lbl;
return nb;
end anzahl_1;
begin
if (anzahl_1(d) REM 2) = 0 then
odd <= '0';
even <='1';
else
odd <= '1';
even <='0';
end if;
end process;
end verhalten;
Я получаю следующие ошибки, но я не знаю, с чего начать, не могли бы вы, ребята, помогите мне?
Ошибки:
GPG.vhd(21): Illegal sequential statement.
GPG.vhd(31): No feasible entries for subprogram "anzahl_1".
Bad expression in left operand of infix expression "=".
GPG.vhd(31): Type error resolving infix expression "=" as type std.STANDARD.BOOLEAN.