[an error occurred while processing this directive]
|
когда не удается использовать оператор case?
Я не совсем правильно описал свою ситуацию. Вот более точный пример (sorry за объем):
ENTITY Proba IS
PORT
( ISA_Addr : IN STD_LOGIC_VECTOR(19 DOWNTO 0);
ISA_Data : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
ISA_Wr : IN STD_LOGIC;
ISA_Rd : IN STD_LOGIC;
Other_data : IN STD_LOGIC_VECTOR(5 DOWNTO 0) );
END Proba;
ARCHITECTURE Proba_1 OF Proba IS
SIGNAL PLD_internal_reg : STD_LOGIC_VECTOR(7 DOWNTO 0); -- internal register in the PLD
BEGIN
PLD_internal_register_wr:
PROCESS (ISA_Addr, ISA_Wr)
BEGIN
IF ( ISA_Addr = X"8000" AND ISA_Wr = '0')
THEN PLD_internal_reg <= ISA_Data;
END IF;
END PROCESS PLD_internal_register_wr;
PLD_internal_register_rd:
PROCESS (ISA_Addr, ISA_Rd)
BEGIN
IF ( ISA_Addr = X"8000" AND ISA_Rd = '0')
THEN ISA_Data <= PLD_internal_reg;
ELSE ISA_Data <= (OTHERS => 'Z');
END IF;
END PROCESS PLD_internal_register_rd;
Other_data_rd:
PROCESS (ISA_Addr, ISA_Rd)
BEGIN
IF ( ISA_Addr = X"A000" AND ISA_Rd = '0')
THEN ISA_Data (5 DOWNTO 0) <= Other_data;
ELSE ISA_Data <= (OTHERS => 'Z');
END IF;
END PROCESS Other_data_rd;
END Proba_1;
Т.е. есть ISA шина адреса и данных, подключенная к ПЛМ. В ней есть регистр, в который надо записывать данные с шины ISA и считывать данные на шину ISA. К ПЛМ подключены 5 битовых сигналов, которые тоже надо считывать на шину ISA.
Такое описание Leonardo компилирует, только что он там накомпилировал, MaxPlus размещать отказывается. Сам MaxPlus не компилирует, говорит что "Signal "ISA_Data" has multiple sources"
Чего я делаю не так, и как это все будет по нормальному?
E-mail: info@telesys.ru