#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. Итак, какой из этих блоков на блок-схеме должен реализовать этот код?