Тип std_logic не является типом массива и не может быть проиндексирован - PullRequest
0 голосов
/ 05 января 2019

Проверка синтаксиса этого кода: дал мне «Тип std_logic не является типом массива и не может быть проиндексирован». в строке 12 и 14.

ПОЧЕМУ?! * * 1003

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Tot_and_module is
Port ( s : in  STD_LOGIC_VECTOR(0 to 39);
res : out  STD_LOGIC);
end Tot_and_module;

architecture Behavioral of Tot_and_module is
signal temp: std_logic_vector(0 to 39);
begin
temp(0) <= res(0);
gen: for i in 1 to 39 generate
temp(i) <= temp(i-1) and res(i);
end generate; 
res <= temp(39);
end Behavioral;

1 Ответ

0 голосов
/ 05 января 2019

res - это std_logic - один бит. temp и s являются std_logic_vectors - массивы типа std_logic

У вас есть:

temp(0) <= res(0);

Это невозможно, потому что res не является массивом. Исправить это с помощью:

temp(0) <= res;
...