Мені цікаво, в чому різниця між складовою суттю. Мені хотілося б знати, в яких випадках краще використовувати компоненти замість сутностей. Дуже дякую.
Мені цікаво, в чому різниця між складовою суттю. Мені хотілося б знати, в яких випадках краще використовувати компоненти замість сутностей. Дуже дякую.
Відповіді:
Ось аналогія, яка допомагає деяким людям (особливо тим, хто має фізичну електроніку):
component
Повідомляє компілятору «там буде що - то з такого роду штирів на ньому сидів, зветься це в якійсь - то момент, але не хвилюйтеся , зараз». Це свого роду визначає "розетку". Ви можете продовжити опис того, що "підключається" до цієї "розетки" тощо.
Це entity
щось специфічне з назвою та набором штифтів, які потім компілятор може "підключити" до цієї "розетки" (і, отже, бути підключеним до "проводів").
Зверніть увагу , що вам не потрібноcomponent
ви можете зробити «прямий екземпляр» , що означає , компілятор вже знає про об'єкт , так що «гніздо» не повинно бути визначено окремо. Насправді, це був би мій рекомендований підхід, оскільки в іншому випадку component
це зайвий рівень, який слід підтримувати синхронізовано.
Вам потрібно використовувати компоненти, якщо ви змішуєте Verilog і VHDL і вам потрібно використовувати блок Verilog у межах VHDL. Тоді component
це сокет, і не набагато пізніше компілятор / розробник зможе підключити Verilog до сокета.
Об'єкт реальний інтерфейс до конструкції пристрою , яке може мати кілька архітектур. Суб'єкт господарювання визначає, як потрапляє та виходить матеріал, тоді як архітектура визначає, як функціонує підрозділ дизайну. Таким чином, у вас може бути кілька способів реалізації однієї і тієї ж функції, яку б описав той самий суб'єкт.
Компонент є ідеальним або «віртуальним» конструкція блоку. Коли ви робите дизайн зверху вниз (тобто ви збираєте верхній рівень до того, як будуть розроблені блоки нижнього рівня), ви можете використовувати компонент для опису типу інтерфейсу, який ви очікуєте для своїх дизайнерських одиниць. Ви можете подумати про це як на місце власного місця чи чорну скриньку для майбутнього реальної реалізації.
Використовуючи конфігурації, ви можете прив’язати конкретний екземпляр компонента до визначення сутності. Тут ви можете визначити, який порт повинен підключитися до якого порту. Це відображає, як компонент, який був визначений в ідеальному сенсі, відображає сутність, яка була реально реалізована.
На практиці я виявив, що компоненти зазвичай непотрібні і створюють інший рівень абстракції, який зазвичай не використовується. Ви можете пропустити використання (та необхідність) для компонентів, безпосередньо інстанціювавши сутність та посилавшись, яку архітектуру використовувати для цього примірника сутності.
Наприклад:
MyDesignUnit : entity library_name.entity_name(architecture_name)
port map(
...
З [1] нижче:
Існує важлива відмінність між сутністю, компонентом та екземпляром компонента в VHDL. Суб'єкт описує інтерфейс проектування, компонент описує інтерфейс об'єкта, який буде використовуватися як екземпляр (або підблок), а екземпляр компонента - це окрема копія компонента, який був підключений до інших частин і сигналів . Щоб порівняти їх з процесом проектування дощок для хліба з несамостійними частинами. Сутність та архітектура - це як книга даних, що описує інтерфейс та схеми роботи деталі. Компонент схожий на короткий перелік штифтів, який постачається разом із частиною, щоб описати, як його слід з'єднати. Екземпляр компонента - це сама фактична частина, якої ви можете мати багато, кожна з яких працює незалежно.
Див. [1] для контексту та більш детальної інформації.
У мережі є численні підручники з VHDL, наприклад [2] [3] ... Книга (PDF на 84 сторінках) [4] Виглядає добре [5] Переважно для посилань [6]
Суб'єкт - це проектна одиниця, порти вводу-виводу якої вказані. Entity просто визначає зовнішні порти, тоді як внутрішнє функціонування визначається відповідною архітектурою. Компонент - це повна одиниця дизайну, що складається як із сутності, так і з архітектури. Першим кроком є оголошення компонента (із зазначенням його імені та портів), а потім інстанціалізація компонента (відображення портів).