Почему «и» не может иметь такие операнды в этом контексте?

Я использую Xilinx и пытаюсь скомпилировать этот код. Я получаю эту ошибку: ОШИБКА:HDLParsers:808 - C:/Users/Dell/digi/sm.vhd Строка xx. и не может иметь таких операндов в этом контексте. код здесь


person pyronic    schedule 04.11.2012    source источник
comment
Хотя я ответил на вопрос, комментарии приветствуются. Я новичок в VHDL. Пожалуйста, поделитесь тем, что, по вашему мнению, может мне помочь.   -  person pyronic    schedule 04.11.2012


Ответы (2)


Проблема в том, что вы смешиваете типы bit и std_logic. Как правило, вы должны выбрать один или другой (не используйте оба в одном файле, если вы ДЕЙСТВИТЕЛЬНО не знаете, зачем вам это нужно), большая часть новой работы обычно выполняется с использованием std_logic. Чтобы решить эту проблему, вам нужно сделать все согласованным... либо измените свои входные данные на битовые типы, как вы это сделали, либо измените свои внутренние объявленные сигналы на std_logic:

signal Q1, Q2, Q3: std_logic;
person Charles Steinkuehler    schedule 04.11.2012

Изменение объявления портов с

port(X1,X2,CLK: in STD_LOGIC;

to

port(X1,X2,CLK: in bit;

заставил это работать. Разница между ними

person pyronic    schedule 04.11.2012