Ошибки в VHDL при использовании WHEN ELSE

Я новичок в VHDL и имею простые ошибки.

В основном у меня есть 4 двоичных входа и 3 двоичных выхода. Условия просты: если во всех 4 входах у меня только одна "1", выход l3 получает "1", а остальные "0", если у меня две "1", выход l2 получает "1" и слишком много ". 0 ', и если у меня больше двух' 1 ', выход l1 получит' 1 ', а остальные' 0 '.

Обычно входы J1, J2, J3 и J4. L1, L2 и L3 - выходы. Вы можете проверить таблицу истинности.

Я пытаюсь решить эту проблему с помощью этого кода в EDA Playground (https://www.edaplayground.com/)

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SistemaVotacion IS
PORT (j1, j2, j3, j4: IN std_logic;
      l1, l2, l3: OUT std_logic);
END SistemaVotacion;

ARCHITECTURE SistemaArchitecture OF SistemaVotacion IS
BEGIN
    l1 <= '1' WHEN (j1 = '0' and j2 = '1' and j3 = '1' and j4 = '1')
    ELSE '1' WHEN (j1 = '1' and j2 = '0' and j3 = '1' and j4 = '1')
    ELSE '1' WHEN (j1 = '1' and j2 = '1' and j3 = '0' and j4 = '1')
    ELSE '1' WHEN (j1 = '1' and j2 = '1' and j3 = '1' and j4 = '0')
    ELSE '1' WHEN (j1 = '1' and j2 = '1' and j3 = '1' and j4 = '1')
    ELSE '0';
    l2 <= '1' WHEN (j1 = '0' and j2 = '0' and j3 = '1' and j4 = '1')
    ELSE '1' WHEN (j1 = '0' and j2 = '1' and j3 = '0' and j4 = '1')
    ELSE '1' WHEN (j1 = '0' and j2 = '1' and j3 = '1' and j4 = '0')
    ELSE '1' WHEN (j1 = '1' and j2 = '0' and j3 = '0' and j4 = '1')
    ELSE '1' WHEN (j1 = '1' and j2 = '0' and j3 = '1' and j4 = '0')
    ELSE '1' WHEN (j1 = '1' and j2 = '1' and j3 = '0' and j4 = '0')
    ELSE '0';
    l3 => '1' WHEN (j1 = '0' and j2 = '0' and j3 = '0' and j4 = '0')
    ELSE '1' WHEN (j1 = '0' and j2 = '0' and j3 = '0' and j4 = '1')
    ELSE '1' WHEN (j1 = '0' and j2 = '0' and j3 = '1' and j4 = '0')
    ELSE '1' WHEN (j1 = '0' and j2 = '1' and j3 = '0' and j4 = '0')
    ELSE '1' WHEN (j1 = '1' and j2 = '0' and j3 = '0' and j4 = '0')
    ELSE '0';
END SistemaArchitecture;

Но я получаю много ошибок, например:

  1. COMP96 ОШИБКА COMP96_0015: "';' ожидается ". "design.vhd" 24 8
  2. COMP96 ОШИБКА COMP96_0019: "Ожидается конец ключевого слова". "design.vhd" 24 8
  3. COMP96 ОШИБКА COMP96_0016: "Ожидается декларация единицы конструкции". "design.vhd" 24 11

Как я могу это сделать?

0 ответов

Как заявил пользователь 1155120, проблема заключалась в следующем:

Что произойдет, если l3=> в строке 24 станет l3 <=? Скобки здесь не обязательны, условие ограничено зарезервированными словами.

Поменял и работает.

Другие вопросы по тегам