VHDL STD_LOGIC_VECTOR Значения подстановочных знаков

Я пытался написать Finite State Machine на VHDL-коде для простого 16-разрядного процессора, который я реализую на плате Altera DE1. В машине конечных состояний у меня естьCASE оператор, который обрабатывает различные 16-битные инструкции, которые вводятся в FSM 16-битным STD_LOGIC_VECTOR. Однако у меня возникли небольшие проблемы в состоянии декодирования, когда конечный автомат декодирует инструкцию. Одной из инструкций является ADD, который принимает два регистра в качестве операндов и третий в качестве регистра назначения. Тем не менее, у меня также есть инструкция ADD, которая принимает регистр и 5-битное непосредственное значение в качестве операндов и второй регистр для адресата. Моя проблема в том, что вCASE Заявление, я должен быть в состоянии различать две разные инструкции ADD. Итак, я подумал, что если я использую подстановочные значения, такие как «-» или «X» вCASE Утверждение, я мог бы провести различие между двумя только с двумя случаями вместо перечисления всех возможных комбинаций регистр / непосредственное значение. Например:

    CASE IR IS --(IR stands for "Instruction Register")
      WHEN "0001------0-----" => (Go to 3-register add);
      WHEN "0001------1-----" => (Go to 2-register/immediate value add);
      WHEN OTHERS => (Do whatever);
    END CASE;

Это не единственные две инструкции, которые я имею, я просто поместил эти две, чтобы сделать этот пост немного короче. Когда я компилирую и запускаю этот код, процессор перестает выполняться, когда он переходит в состояние «декодирования». Кроме того, Quartus выдает много-много предупреждений, таких как «Предупреждение о выборе VHDL в LC3FSM.vhd (37): игнорируемый выбор, содержащий мета-значение» «0001 ------ 0 -----» «Я нахожусь в потеря относительно того, как идти о выполнении этого. У меня ДЕЙСТВИТЕЛЬНО нет и, вероятно, нет необходимости определять каждую 16-битную комбинацию, и я надеюсь, что в STD_LOGIC_VECTOR есть способ использовать подстановочные знаки, чтобы минимизировать количество комбинаций, которые мне придется определять.

Кто-нибудь знает, как этого добиться?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос