Каков наилучший способ вызвать другую сущность в VHDL?

#vhdl #fpga

#vhdl #fpga

Вопрос:

Если бы я хотел «перейти» к другой сущности, если в текущей сущности были выполнены определенные требования, каким был бы наилучший способ сделать это? Через прямое создание экземпляра объекта или я должен вызывать его как компонент / процедуру? Например;

 begin
displayChoice : process (i_Reset, i_StartStop, i_SW)
begin

case displayChoice is
    when (i_SW = "1000") =>
        i_D4 <= 0 ;
        process is                -- this is where I want to call the other entity in
        begin                     -- so if i_SW is 1000 then D4 is 0 and so I want to call to my next 
            displayD3;            -- entity to deal with D3
        end process;
        
    when (i_SW = "0100") =>
        i_D4 <= 1;
        i_D3 <= 7;
        
    when (i_SW = "1100") =>
        i_D4 <= 2;
        i_D3 <= 14;
       
    when (i_SW = "0010") =>
        i_D4 <= 3;
        i_D3 <= 8;
        
    when (i_SW = "1010") =>
        i_D4 <= 4;
        i_D3 <= counter value;
           
    when (i_SW = "0001") =>
        i_D4 <= 6;
        i_D3 <= 0 ;
        
    when (i_SW = "1001") =>
        i_D4 <= 7;
        i_D3 <=  0;
    
    when others =>   
        i_D4 <= 0;
        i_D3 <= 0;
    
    end case;
end process;
end Behavioral;
 

Итак, мой вопрос в том, где (в этом коде) и как (прямое создание экземпляра или компонента / процедуры или полностью другим способом?) должен ли я «активировать» следующую сущность?

Это моя блок-схема

Комментарии:

1. Сущности — это аппаратные блоки. Вы «вызываете» их не больше, чем «вызываете» микросхему на печатной плате. Сущности всегда есть. Вы, как разработчик оборудования, должны правильно соединить их в соответствии с вашими требованиями. Похоже, вы действительно не знаете, какое оборудование вы реализуете. Вы всегда должны знать, какое оборудование вы реализуете. Я рекомендую вам сначала нарисовать схему или блок-схему. (Даже опытные пользователи VHDL нарисовали бы блок-схему перед началом кодирования. И они, конечно, примерно знают, какое оборудование они реализуют.)

2. Привет @MatthewTaylor спасибо за ваш ответ, так как я уверен, вы можете сказать, что я новичок в этом. Теперь я внедрил свою базовую блок-схему. Извините, я не включил в первую очередь.

3. Прямое создание экземпляров и компонентов имеет свои преимущества и преимущества. Прямое создание экземпляра позволяет компилятору проверять синтаксис на соответствие используемой сущности, поэтому ошибки часто обнаруживаются раньше. Это также устраняет необходимость дважды использовать один и тот же код и дважды поддерживать его. Компоненты обычно требуются, когда создаваемый компонент является экземпляром другого языка или сетевого списка, объект не существует или помещен в черный ящик. Но в большинстве случаев, если весь код написан на VHDL, тогда будет достаточно прямого создания экземпляра.

4. @Tricky спасибо за ваш ответ, это мне очень помогает.

5. Итак, какой из этих блоков на блок-схеме должен реализовать этот код?