Я использую Xilinx ISE для создания проекта VHDL.
Я пытаюсь добавить значения в целочисленную переменную.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity vending2_mod is
Port ( button1 : in STD_LOGIC;
button2 : in STD_LOGIC;
button3 : in STD_LOGIC;
button4 : in STD_LOGIC;
coin : in integer;
disp : out string(1 to 16);
prodOut : out integer);
shared variable credits : integer := 0;
procedure addCredits ( c : in integer ) is
begin
credits := credits + c; -- Signal is not defined : 'credits'.
end addCredits;
-- additional code
end vending2_mod;
architecture Behavioral of vending2_mod is
begin
acceptCredit: process (coin)
begin
addCredits(coin);
end process;
end Behavioral;
Тем не менее, когда я пытаюсь синтезировать (XST) проект, я получаю сообщение об ошибке в строке, которую я написал в качестве комментария. credits
— это не сигнал, это переменная; что выдает ошибку?
Сохранение не выдает ошибок, так как синтаксис вроде правильный.
mod
— зарезервированное слово. Это действительный VHDL, если вы измените имя объекта наmodu
в обоих местах. Ваша версия Synplify не поддерживает объявление (или использование) этой общей переменной.credits
должен быть инициализирован. - person   schedule 10.12.2017