2014-11-20 3 views
0

Я пытаюсь выполнить этот модуль, в который вводится вход «ins15_0», и если выполняются определенные условия, он будет запускать свой соответствующий код, однако при проверке синтаксиса я получаю следующую ошибку в строках if «результат оператора = не является статическим».результат оператора = не является статическим

lw : if (ins15_0 = "000000000110000") generate 
    step_1 : for i in 0 to 31 generate 
        DFF1 : DFF_MEM port map (D=>din(i),clk=>CLK ,Q=>Q(i), reset=> Reset); 
      end generate step_1; 
    dout <= x"00000" + q; 
end generate lw; 

sw : if (ins15_0 = "000000000110100") generate 
    step_2 : for i in 0 to 31 generate 
         DFF2 : DFF_MEM port map (D=>rt(i),clk=>CLK ,Q=>Q(i), reset=> Reset); 
      end generate step_2; 

      dout <= rt; 
end generate sw; 
+0

'Случай' является последовательным утверждением, вы используете его в параллельной области. Вместо этого используйте 'if ... generate' (вы можете создать гнездо). –

+0

Я попытался использовать if, elsifs, однако он действует с картой порта, дает мне ошибку «ошибка синтаксического анализа, неожиданный PORT, ожидающий OPENPAR или TICK или LSQBRACK» – user998316

+0

, в 'if ... generate' нет' elsif'. Что вы ДЕЙСТВИТЕЛЬНО делаете? –

ответ

0

Потому что ты вопрос был объектом этого адреса «результат оператора = не является статичным.»

От IEEE Std 1076-2008 (РДД) +11,8 Сформировать отчетность пункт 11:

Дискретный диапазон в генерации спецификации параметра а, для генерировать отчет должен быть статический дискретный диапазон; аналогично, каждое условие в выражении if generate является статическим выражением.

Значение условий, которые могут быть статическими во время разработки (глобально статические). Это означает, что вы оцениваете одну или несколько констант в качестве выражений, которые могут передаваться через общий.

Не видя delcaration для ins15_0, он представляется типом массива, вероятно, std_logic_vector и может быть объявлен как сигнал.

Не видя больше своей спецификации, сложно порекомендовать решение.

Давайте посмотрим на первом пункте 11.8:

генерировать оператор предоставляет механизм для итеративного или условного разработки части описания.

И, зная, какие средства разработки могут помочь.

См 14.2 Разработка проектной иерархии:

Разработка проектной иерархии создает коллекцию процессов, связанных между собой сетей; этот набор процессов и сетей может быть выполнен для моделирования поведения конструкции.

И мы можем смотреть в предыдущем абзаце пункта 3 14.1 Общие для наконец немного просветления:

Чтобы выполнить модель, дизайн иерархии определения модели должна быть сначала разработаны. Инициализация сетей (см. 14.7.3.4) в затем возникает модель. Наконец, моделирование модели продолжается. Моделирование состоит из повторяющегося выполнения цикла моделирования , во время которого выполняются процессы и обновляются сети.

Так поколение имеет важное значение для подготовки модели к исполнению, то есть значение зависело от за состояние в случае генерации заявления должны быть известны во время разработки, чтобы узнать, сколько флип-флоп связаны в иерархии проекта , Эффект тот же для моделирования и синтеза.

Иерархия проектной модели не изменяется после разработки. Вы еще не указали спецификацию дизайна, которая может это сделать.

Смежные вопросы