Предположительно clk
является сигналом типа std_logic.
Не видя ваше фактическое сообщение об ошибке линии в вопросе:
a <= clk and clk'event;
'event
Атрибут возвращает тип BOOLEAN. clk
представляется подходящим для оператора неявного условия (??
), IEEE Std 1076-2008), который также возвращает тип BOOLEAN.
К сожалению, назначение a
выполняется с неявным объявлением назначения сигнала для базового типа std_logic (std_ulogic), базовой операции и требует, чтобы тип ввода соответствовал целевому типу.
VHDL строго типизирован, и вы не можете назначить BOOLEAN для std_logic без преобразования типов.
Также назначение a
было бы одним дельта-циклом долго, эффективно сбой или импульс.
Непонятно, что он имеет какое-либо полезное значение в синтезе.
Выход o
будет s1
во a = '1'
, иначе s2
, для списка чувствительности не включая a
исключением.
Вы можете продемонстрировать одиночный дельту цикл длинного импульс в моделировании с использованием другого типа присваивания, например, условное присваиванием сигнала:
a <= '1' when clk = '1' and clk'event else
'0';
где в качестве сопутствующего условного присвоения результатов состояния в булевом а target - это «1» литерал перечисления, совместимый с std_logic, когда условие TRUE, или литеральный список нумерации «0», когда FALSE.
Поскольку a
не находится в списке чувствительности для процесса в качестве последовательного назначения условного сигнала o
всегда будет s2
.
И если вы используете инструмент VHDL, совместимый со старым стандартом, условный оператор присваивания условного сигнала не будет работать в этом процессе.
Вы можете сделать оба присваивания присваивания параллельным назначением сигналов, где они закончили бы как отдельные эквивалентные процессы с соответствующими эквивалентами списка соответствия (инструкция wait как последняя инструкция каждого из них).
Это только для моделирования или намерение сделать часть синтезируемого дизайна?Для синтезируемой части дизайна нет смысла использовать передний фронт как условие MUX, так как это условие не имеет длительности (0 пс), поэтому в этом случае можно будет пересмотреть работу конструкции. –
@MortenZilmer - для синтезируемой части дизайна –