Как я могу выбрать один из вариантов с кодом не в процессе в VHDL?

Я начал самостоятельно изучать язык VHDL несколько недель назад, и я очень новичок; У меня есть некоторые трудности в коде.

begin

    SL: sub_layer port map(
        data_in => data_key_added,
        data_out => data_substituted
    ); 

Мне нужно выполнить приведенный выше код только тогда, когда количество раундов является четным, но не выполнять его, когда число нечетное (для уменьшения мощности). Я хочу выполнить что-то, что имеет меньшую мощность, а не как

xo: XOR_layer port map(
        data_in => xo,
        data_out => data
);
#
process(clk) 
 if rising_edge(clk) then
 case  to_integer(unsigned(round_counter) mod 2)is
         when 0 =>  -- execute (sub_layer) only 
         when others =>  --  execute (XoR_layer) only

  end case;

так как я могу выбрать один из вариантов карт портов?

1 ответ

Представьте себе две микросхемы на печатной плате: вы не можете волшебным образом заставить их появляться и исчезать, они всегда рядом. Что вы можете сделать, это выбрать между выходами одного или другого. Как сказали комментаторы, когда вы пишете VHDL, вы разрабатываете аппаратное обеспечение, а не пишете программное обеспечение. Вы не можете выбрать, будете ли вы выполнять оборудование или нет, оборудование всегда существует всегда. Если вы хотите выбирать между одним битом аппаратного обеспечения и другим, как говорит Брайан, вы должны выбирать между выходами каждого из них.

Теперь выбор между выходами двух блоков оборудования не сэкономит вам энергии (что, как вы говорите, вы хотите сделать). Если вы хотите сэкономить энергию, вам нужно как-то отключить эти блоки. Самый простой способ - остановить блокировку блока, который вы не хотите использовать; трудный путь - фактически отключить питание. Когда я говорю "легко", я имею в виду "трудно, опасно и чревато трудностями"; когда я говорю "трудно", я имею в виду "еще сложнее". Вы говорите, что начали изучать VHDL только несколько недель назад. То, о чем вы спрашиваете, - это не проблема языка VHDL, а более фундаментальная проблема цифрового дизайна. И это сложный вопрос.

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