ПЛИС
ПЛИС\Удаленная прошивка ПЛИС\Мегафункция ALTREMOTE_UPDATE
Мегафункция ALTREMOTE_UPDATE
О данной мегафункции
Это руководство пользователя описывает характеристики и поведение мегафункции системы дистанционного обновления (ALTREMOTE_UPDATE), которую Вы можете сконфигурировать через интерфейс MegaWizard в программном обеспечении Quartus II.
Поддерживаемые семейства ПЛИС
Мегафункция ALTREMOTE_UPDATE доступна для всех семейств ПЛИС Altera, кроме Max, Cyclone, Cyclone II, и ПЛИС HardCopy II. В этом руководстве пользователя, термин Cyclone III включает в себя ПЛИС Cyclone III и ПЛИС Cyclone III LS; термин Cyclone IV включает в себя семейства Cyclone IV E и Cyclone IV GX. Когда используется термин Cyclone один, он включает в себя Cyclone III и серию Cyclone IV.
Основное описание
Мегафункция ALTREMOTE_UPDATE осуществляет дистанционную модернизацию системы (также известную как remote system update) и имеет преимущество перед выделенной схемой дистанционного обновления системы, доступной в рассматриваемых ПЛИС. Дистанционное обновление может помочь Вам расширять характеристики и исправлять багги, не отзывая назад конечное устройство, уменьшить время выхода на рынок и увеличить время жизни конечного продукта. Используя мегафункцию ALTREMOTE_UPDATE и выделенные для этого электрические схемы, ваш проект может загрузить новый образ конфигурации удалённо, сохранить его в памяти конфигурации и запустить схему дистанционного обновления системы, чтобы начинать цикл реконфигурации. Выделенная электрическая схема ПЛИС выполняет обнаружение ошибки в течение и после процесса конфигурации. Если есть ошибки, электрическая схема облегчает восстановление системы, возвращая систему к конфигурации по умолчанию и предоставляя информацию статуса ошибки. Для получения детального описания функционирования данных аппаратных схем для конкретных ПЛИС нужно обратиться к «Configuration Handbook». Более полные описания схем конфигурирования и различных режимов можно найти на сайте Altera на странице «Configuration Center» (http://www.altera.com/support/devices/configuration/cfg-index.html).
Функциональная диаграмма типичного процесса удалённого конфигурирования ПЛИС
При использовании JTAG для конфигурации, система дистанционного обновления не поддерживается.
Режимы дистанционной конфигурации системы
Система удалённого обновления имеет 2 режима работы:
- Режим локального конфигурирования
- Режим удаленного конфигурирования
Режимы дистанционного и локального конфигурирования обладают разными характеристики и позволяют Вам определять функциональное назначение вашей системы после включения питания.
Режим дистанционного конфигурирования
Используйте режим дистанционного конфигурирования в случаях, когда требуется управлять вплоть до семи других прикладных конфигураций и одной заводской конфигурацией для ПЛИС, которые используют расширенные устройства конфигурации (enhanced configuration devices). Лимит в семь файлов конфигурации является следствием количества страниц, которые могут быть выбраны выводами PGM[ ].
Когда используются конфигураторы с последовательным интерфейсом, режим дистанционной прошивки позволяет выбирать конфигурационные данные, начинающиеся с любой границы сектора FLASH-памяти, при этом допускается максимум 128 страниц для микросхемы EPCS64 и 32 страницы для микросхемы EPCS16, минимальный размер каждой страницы - 512 Кбит. К тому же, режим дистанционного обновления конфигурации предоставляет Вам сторожевой таймер, который может помочь в обнаружении функциональных ошибок в прикладной конфигурации.
ПЛИС семейства Cyclone III поддерживают схему AP-конфигурации для FPGA Altera. В AP-схеме конфигурации, ПЛИС Cyclone III конфигурируются, используя 16- битную параллельную FLASH-память. FLASH-память предоставляет быстрый интерфейс для доступа к данным конфигурации, поскольку она позволяет извлекать данные по 16-битной параллельной шине данных.
Более подробно о конфигурации ПЛИС семейства Cyclone III можно вычитать в главе «Remote System Upgrade with Cyclone III Devices» из «Cyclone III Device Handbook» и «AN 521: Cyclone III Active Parallel Remote System Upgrade Reference Design».
При включении питания в режиме дистанционного конфигурирования, ПЛИС загружает заводскую конфигурацию (factory configuration), расположенную по адресу страницы по умолчанию (адрес 000) в расширенном устройстве конфигурации (enhanced configuration device). После того, как устройство будет сконфигурировано встроенной схемой дистанционного конфигурирования, управляющий регистр дистанционного конфигурирования будет указывать на адрес страницы прикладной конфигурации, которая должна быть загружена в устройство. Если во время пользовательского режима (user mode) прикладной конфигурации происходит ошибка, ПЛИС перезагружает встроенную заводскую конфигурацию (factory configuration).
Диаграмма режима дистанционной конфигурации
Режим локальной конфигурации
Используйте режим локальной конфигурации для систем, которые загружают приложение немедленно при включении питания. В режиме локальной конфигурации Вы можете использовать только одну конфигурацию, которую Вы можете обновить как дистанционно, так и локально.
Не все ПЛИС поддерживают режим локального обновления конфигурации; выяснить детали можно в справочнике на конкретные семейства ПЛИС.
При включении питания или подаче активного (низкого) уровня сигнала на вывод nCONFIG, ПЛИС загружает прикладную конфигурацию. Если случается ошибка во время режима локальной конфигурации, ПЛИС загружает заводскую конфигурацию. Если Вы используете расширенное устройство конфигурации (enhanced configuration device), адрес страницы 001 - это позиция для данных прикладной конфигурации, а адрес страницы 000 - это позиция для данных заводской конфигурации.
Если данные конфигурации по адресу страницы 001 не загружается правильно из-за неверной контрольной суммы (CRC), если вышло время, отведённое для загрузки из расширенного устройства конфигурации, а также, если вышло время на загрузку от внешнего процессора, в ПЛИС будет загружена заводская конфигурация, располагающаяся по адресу страницы по умолчанию (адрес 000). Сторожевой таймер не доступен для использования в режиме локальной конфигурации. Управляющий регистр режима дистанционной конфигурации не доступен для записи. Тем не менее, ПЛИС имеет доступ на чтение этого регистра, чтобы получать информацию о статусе ошибки.
Режим локальной конфигурации не доступен в схеме с AS-конфигурацией (с FLASH с последовательной шиной).
Режим локальной конфигурации
Используемые компоненты в системе с дистанционной конфигурацией
Для реализации режима дистанционной и локальной конфигурации необходимы следующие компоненты, доступные во всех поддерживаемых ПЛИС:
- Режим страничной адресации
- Заводская конфигурация
- Прикладная (рабочая) конфигурация
- Сторожевой таймер
- Блок дистанционного обновления
- Регистры дистанционной конфигурации
За более подробной информацией обратитесь к «Configuration Handbook».
Режим страничной адресации
Режим страничного доступа позволяет вашему проекту выбирать позицию в памяти, в которой он имеет доступ к данным конфигурации. Расширенное устройство конфигурации может содержать восемь различных файлов конфигурации (одну заводскую и семь прикладных конфигураций). Выбор страницы выполняется при помощи выводов ПЛИС PGM[2..0]. В FPGA эти выводы могут быть определены как пользовательские I/O в режиме стандартной конфигурации, но в режиме дистанционной конфигурации они используются как специальные выходные выводы.
После включения питания в режиме дистанционной конфигурации заводская конфигурация выбирает нужный адрес страницы через выходные ножки PGM[2..0] ПЛИС семейства Stratix.
Эти ножки управляют входами PGM[2..0] расширенного устройства конфигурации и выбирают требуемую страницу в памяти.
Если вместо расширенного устройства конфигурации используется интеллектуальный хост-контроллер, Вы должны создать логику на интеллектуальном хосте для поддержки страничного режима подобную той, что используется в расширенных устройствах конфигурации (enhanced configuration devices).
Для AS-схемы конфигурации нет выводов pgmout, поскольку стираемая программируемая память с последовательным интерфейсом (EPCS) не имеет входов для pgm штырьков в AS-интерфейсе, что делает неспособным чтение ножек pgmout из блока дистанционного обновления конфигурации. Активный последовательный интерфейс памяти (ASMI) сам управляет конфигурацией.
При использовании дистанционной прошивки с AS-интерфейсом, выделенный 7- битный регистр стартового адреса страницы внутри Stratix II FPGA определяет стартовые адреса для страниц конфигурации в пределах последовательной памяти конфигурации (EPCS). Регистры PGM[6..0] формируют биты [22..16] 24-битного стартового адреса. Другие 17 бит установлены в ноль: StAdd[23..0] = {1'b0, PGM[6..0], 16'b0}.
В ПЛИС Stratix III и более новых семействах выделенный 24-битовый регистр стартового адреса PGM[23..0] содержит в себе стартовый адрес. Для обоих режимов конфигурации (AS и AP) ПЛИС Cyclone используют 24-битовый загрузочный стартовый адрес, в котором Вы можете установить наиболее значимые 22 бита. ПЛИС Cyclone не поддерживают порты pgmout.
Для AS-конфигурации ПЛИС Arria GX, Arria II GX, Stratix IV, Stratix III, Stratix II, Stratix II GX, или Cyclone III используют этот 24-битовый стартовый адрес страницы для получения конфигурационных данных из последовательной конфигурационной памяти.
Заводская конфигурация (Factory Configuration)
Заводская конфигурация является конфигурацией, установленной по умолчанию. В расширенных устройствах конфигурации (enhanced configuration devices) по умолчанию адрес страницы - 000. Заводские данные конфигурации записываются в конфигурационную память только изготовителем один раз и не должны дистанционно обновляться или изменяться. В режиме дистанционной конфигурации заводская конфигурация загружается в ПЛИС Arria GX, Stratix, и Cyclone при включении питания. Аналогично AS-схеме дистанционной конфигурации, используется последовательная конфигурационная память для загрузки заводской конфигурации в ПЛИС при включении питания.
Если система сталкивается с ошибкой при загрузке данных прикладной конфигурации или если устройство переконфигурируется из-за активации сигнала nCONFIG, ПЛИС загружает заводскую конфигурацию. Регистр дистанционной конфигурации определяет причину реконфигурации заводского программного обеспечения. Основываясь на этой информации, заводская конфигурация определяет какую прикладную конфигурацию загрузить.
Для ПЛИС серии Cyclone, при включении питания при дистанционном обновлении в AP-схеме конфигурации, ПЛИС загружают базовую заводскую конфигурацию, расположенную по адресу boot_address[23:0] = 24'h010000 = 24'b1 0000 0000 0000 0000. Вы можете изменить базовый адрес заводской конфигурации на любой желаемый адрес, используя JTAG инструкцию APFC_BOOT_ADDR. Образ базовой заводской конфигурации хранится в энергонезависимой памяти и никогда не обновляется и не модифицируется, используя дистанционный доступ. Это находится по стартовому адресу 0x010000 (или обновлённому адресу, если адрес по умолчанию был изменен) в параллельной памяти FLASH. Следует заметить, что 0x010000 - это адрес 16- битных слов памяти FLASH AP-схемы. Тем не менее, программное обеспечение Quartus II использует побайтовую адресацию (адресацию 8-битных слов), следовательно, правильное значение этого адреса, устанавливаемое в программном обеспечении Quartus II, будет 0x020000.
За более подробной информацией обратитесь к главам «Configuring Cyclone III Devices» и «Remote System Upgrade with Cyclone III Devices» в «Cyclone III Device Handbook», а также «AN 521: Cyclone III Active Parallel Remote System Upgrade Reference Design».
Более подробно о базовой заводской конфигурации в ПЛИС Stratix III можно узнать из глав «Configuring Stratix III Devices» и «Remote System Upgrades with Stratix III Devices» в «Stratix III Device Handbook».
Прикладная (рабочая) конфигурация
Прикладная конфигурация является данными конфигурации, полученными из дистанционного источника и загруженными в различных областях или страницах памяти (исключая страницу по умолчанию для базовой заводской конфигурации).
Сторожевой таймер
Сторожевой таймер является схемой, которая функционирует независимо от других механизмов. Сторожевой таймер функционирует подобно реле задержки времени, которое остается в состоянии сброса тогда, когда приложение работает правильно. ПЛИС Arria GX, Stratix, Cyclone III и Cyclone IV оснащены встроенным сторожевым таймером для дистанционной системной конфигурации, что предотвращает неисправной прикладной конфигурации "зависнуть" в неопределенном состоянии. Таймер является 29-битовым счетчиком, но Вы можете использовать только старшие 12 бит, чтобы установить значение сторожевого таймера. Таймер начинает считать, как только ПЛИС перейдёт в пользовательский режим. Если прикладная конфигурация не сбрасывает сторожевой таймер прежде, чем истечёт время, специальная встроенная схема переконфигурирует ПЛИС заводской конфигурацией и сбросит сторожевой таймер.
Сторожевой таймер недоступен для использования в режиме локальной конфигурации.
Блок дистанционного обновления ПО
Блок дистанционного обновления программного обеспечения (ПО) управляет дистанционной конфигурацией. Этот блок, который управляется конечным автоматом дистанционной конфигурации, генерирует управляющие сигналы, требуемые для управления различными регистрами дистанционного конфигурирования.
Регистры дистанционной конфигурации
Регистры дистанционного конфигурирования следят за адресами страниц и причинами ошибок. Вы можете управлять как регистрами обновления, так и регистрами сдвига; регистры статуса и управления управляются внутренней логикой, но могут быть прочитаны через сдвиговый регистр. В ПЛИС Stratix III и более новых, текущие управляющие регистры являются 38-битовыми регистрами; в Stratix II они только 21-битовые.
Для ПЛИС Cyclone регистр статуса имеет дополнительные возможности. Три комплекта регистров хранят статус для текущей прикладной конфигурации и два о предшествующих прикладных конфигурациях.
Более подробные детали для ПЛИС Cyclone III можно узнать из главы «Remote System Upgrade with Cyclone III Devices» в «Cyclone III Device Handbook» и инструкции по применению «AN 521: Cyclone III Active Parallel Remote System Upgrade Reference Design».
Более подробно о конфигурационных регистрах можно узнать из раздела «Configuration and Remote System Upgrades» в справочнике на конкретную ПЛИС.
2. Подготовка к использованию мегафункции
Значения параметров
Самый простой способ настроить под себя мегафункцию – это воспользоваться мегавизардом (MegaWizard). Наиболее эффективный путь модифицировать по заказу пользователя вашу megafunction - с интерфейсом MegaWizard. Интерфейс MegaWizard-а отображает только те характеристики, которые подходят для выбранной ПЛИС. Для каждой выбранной ПЛИС, только определенные характеристики доступны, в зависимости от режимов, которые Вы используете.
Этот раздел предоставляет описание параметров, доступных на отдельных страницах мегавизарда для мегафункции ALTREMOTE_UPDATE.
Для того, чтобы запускать интерфейс MegaWizard из программного обеспечения Quartus II, необходимо в меню Tools выбрать MegaWizard Plug-In Manager.
Для получения большей информации об интерфейсе MegaWizard обратитесь к руководству «Megafunction Overview User Guide».
Параметры страницы 1 и 2a
На странице 1 интерфейса MegaWizard Вы можете выбрать действие: создать, редактировать или копировать мегафункцию.
На странице 2a интерфейса ALTREMOTE_UPDATE определите семейство ПЛИС, которое Вы хотите использовать, тип выходного файла, который будет создан и имя выходного файла.
Выберите AHDL (.tdf), VHDL (.vhd) или Verilog HDL (.v) как выходной тип файла.
Параметры страницы 3
На странице 3 интерфейса ALTREMOTE_UPDATE MegaWizard, Вы определяете тип режима работы, параметры инициализации удалённой прошивки, страницу, которая нужно загрузить при реконфигурации и хотите ли Вы использовать сторожевой таймер, а также указываете количество тактов счёта для таймера. Здесь же определите условия, при которых должна запускаться реконфигурация.
Если выбрано семейство ПЛИС Arria GX, Stratix II или Stratix II GX, в «Какой режим работы Вы будете использовать?» (Which operation mode will you be using?) выберите из списка ACTIVE_SERIAL_REMOTE. Этот выбор позволяет использовать блок дистанционного обновления в AS-схеме конфигурирования. Следует заметить, что отсутствуют выходы pgmout в сгенерированном блоке, когда выбран режим работы ACTIVE_SERIAL_REMOTE.
Детальное описание режимов работы можно найти в следующих документах: «Remote System Upgrades with Arria GX Devices» и «Remote System Upgrades with Stratix II and Stratix II GX Devices».
Если выбрано семейство ПЛИС Stratix или Stratix GX доступны режимы работы LOCAL и REMOTE. Подробное описание режимов можно найти в «Configuration Handbook».
Если выбранна ПЛИС семейства Arria II GX, Cyclone III, Cyclone IV, HardCopy III, HardCopy IV, Stratix III, Stratix IV или Stratix V, единственный доступный режим работы будет REMOTE. Подробнее о поддерживаемых режимах работы в данных семействах ПЛИС можно узнать в соответствующей главе Справочника Конфигурации (Configuration Handbook).
Параметр remote update simulation initialization не доступен для данных семейств ПЛИС.
Только режимы работы REMOTE и ACTIVE_SERIAL_REMOTE поддерживают запись параметров конфигурации.
Параметр Enable reconfig POF checking доступен только для семейств Arria II GX, HardCopy III, HardCopy IV, Stratix III, Stratix IV, и Stratix V. Эта опция позволяет схеме дистанционного конфигурирования проверять заголовок POF образа пользовательской конфигурации в случаях, когда инициирована реконфигурация для загрузки образа пользовательской прошивки. Если обнаружен правильный заголовок POF устройство приступит к загрузке прикладного образа. В противном случае сигнал ошибки будет сигнализировать о том, что обнаружен неправильный заголовок POF и ПЛИС не запустит прикладную конфигурацию. Более подробно можно узнать в Справочнике Конфигурации (Configuration Handbook).
По поводу использования данной функции можно прочитать в инструкции по применению «AN 603: Active Serial Remote System Upgrade Reference Design».
Вы можете определить, что будет инициировать дистанционное обновление прошивки, поставив галочки напротив нужных вариантов в списке What should start the reconfiguration?, который доступен только для семейств ПЛИС, поддерживающих симуляцию инициализации режима дистанционного конфигурирования. Если один из выбранных пунктов инициирован в течение моделирования, начинается процесс реконфигурации.
Об этих пунктах (nCONFIG, nSTATUS, и так далее) можно узнать в Справочнике Конфигурации (Configuration Handbook).
Параметры страницы 4
Страница 4 интерфейса ALTREMOTE_UPDATE MegaWizard включает имитационные файлы модели, которыми нужно имитировать сгенерированные файлы проекта. Вы можете позволить программному обеспечению Quartus II генерировать область синтеза и список связей (netlist) для использования независимыми инструментальными средствами.
Параметры страницы 5
На странице 5 интерфейса ALTREMOTE_UPDATE MegaWizard Вы определяете файлы, которые хотите сгенерировать для вашей мегафункции. Поля, отмеченные серым указывают на файлы, которые будут всегда сгенерированы; другие файлы являются дополнительными и генерируются только когда выбраны.
Пример проекта № 1: Запись параметров и переконфигурация
Этот пример проекта иллюстрирует последовательность управляющих сигналов, необходимых чтобы устанавливать величину времени счёта сторожевого таймера, тем самым разрешая его работу. Этот проект также иллюстрирует последовательность, необходимую чтобы выбрать страницу с прикладной конфигурацией и активировать сигнал reconfig для запуска реконфигурации ПЛИС, используя выбранную страницу.
Файлы проекта
Файлы проекта доступны на странице «Literature and Technical Documentation» сайта Altera. Файлы расположены в следующих разделах:
- Страница Quartus II Development Software Literature (Using Megafunctions, затем I/O).
- Раздел «Literature: User Guide» на сайте Altera.
В этом примере Вы можете выполнить следующие действия:
- Прописать параметры блока дистанционного конфигурирования, используя мегафункцию ALTREMOTE_UPDATE и интерфейс MegaWizard.
- Вставить в проект и назначить ПЛИС EP1S10B672C6.
- Скомпилировать проект и произвести симуляцию.
Создание мегафункции
Для того, чтобы сгенерировать мегафункцию ALTREMOTE_UPDATE и добавлять к файлу верхнего уровня вашего проекта Quartus II, последуйте этим шагам:
- Распакуйте содержимое ZIP-архива ALTREMOTE_UPDATE_DesignExample_ex1.zip в любой рабочий каталог накопителя на жестком диске в вашем компьютере.
- В программном обеспечении Quartus II, извлеките Remote_Update_ex1_1.1.qar в вашу рабочую директорию и откройте проект remote_update.qpf.
- В меню Tools выберите MegaWizard Plug-In Manager.
- Выберите Create a new custom megafunction variation и щелкните Next.
- В Which device family will you be using? выберите из списка Stratix.
- В опции Which type of output file do you want to create? выберите Verilog HDL.
- В Installed Plug-Ins в поле I/O выберите ALTREMOTE_UPDATE.
- Назовите выходной файл как remote_update_ex1. Нажмите Next. Появится страница 3.
- В Which operation mode will you be using? выберите из списка REMOTE.
- Нажмите Add support for writing configuration parameters.
- В Would you like Remote Update to initiate with a default or application specific settings? выберите FACTORY из списка.
- Выключите Use the Watchdog timer and set timer to.
- В Which page should be loaded at reconfiguration? выберите из списка 3.
- В списке What should start the reconfiguration? выберите CRC, POF ID, SW ID Error, Core nConfig asserted, nStatus asserted и Pin nConfig asserted. Выключите Watchdog timed out.
- Нажмите Next. Откроется страница 4.
- Выключите Generate a netlist.
- Нажмите Next. Откроется страница 5.
- Включите Quartus II symbol file, Instantiation template file, Verilog HDL black box file и выключите AHDL Include file, VHDL Component declaration file. Нажмите Finish.
Модуль remote_update_ex1 сгенерирован.
Компиляция проекта примера
Для того, чтобы назначить ПЛИС и скомпилировать ваш проект, последуйте этим шагам:
- В программном обеспечении Quartus II откройте remote_update.qpf, в меню назначений выберите Device.
- В списке семейств выберите Stratix.
- В Target device выберите из списка Specific device selected in ‘Available devices’.
- В Available devices выберите EP1S10B672C6.
- Нажмите кнопку Device and Pin Options.
- В списке Category выберите Configuration.
- В схеме конфигурации выберите Passive Serial (can use Configuration Device).
- В Configuration mode выберите из списка Remote.
- В Configuration device включите Use configuration device и выберите Auto.
- Нажмите OK, чтобы закрывать диалоговое окно Device and Pin Options.
- Щелкните OK, чтобы закрыть диалоговое окно Device.
- В меню Processing выберите Start Compilation.
- Когда покажется окно Full compilation was successful, нажмите OK.
Симуляция проекта примера
Если Вы не знакомы с использованием программного обеспечения ModelSim-Altera, обратитесь к разделу Model-Sim Altera Support на сайте Altera. На странице поддержки есть различные ссылки на соответствующие темы, например, установка, использование и диагностика.
Для того, чтобы симулировать проект, последуйте этим шагам:
- Распакуйте файл ALTREMOTE_UPDATE_ex1_msim.zip в любую рабочую директорию на вашем компьютере.
- Просмотрите папку в которую Вы распаковали файлы.
- Откройте файл remote_update_ex1.do в текстовом редакторе.
- В строке 1 файла remote_update_ex1.do замените
путем к директории подходящих библиотечных файлов. Например, C:/Modeltech_ae/altera/verilog/stratix - В меню Файла нажмите Save.
- Запустите программное обеспечение ModelSim-Altera.
- В меню Файла нажмите Change Directory.
- Выберите папку, в которую Вы распаковали файлы. Щёлкните OK.
- В меню Tools перейдите к Tcl и выберите Execute Macro.
- Выберите файл remote_update_ex1.do и щелкайте Open. Это - файл сценария для программного обеспечения ModelSim-Altera, который автоматизирует всю необходимую работу для моделирования.
- Проверьте результаты в окне Waveform Viewer.
Рисунок показывает ожидаемые результаты симуляции в программном обеспечении ModelSim-Altera.
Установлен тайм-аут сторожевого таймера на AAA (357 826 560 тактов), сторожевой таймер включен, выбирается страница 6 для реконфигурации и инициации реконфигурации.
- Первая часть моделирования состоит из установки времени тайм-аута для сторожевого таймера. Данные по умолчанию на data_in[ ] установлены в 1010_1010_1010 (357 826 560 тактов), чтобы определить величину время тайм-аута для сторожевого таймера.
- Значение по умолчанию на param[ ] установлено в 010. Этим выбирается параметр сторожевого таймера.
- Во время t = 121.4 мкс сигнал write_param активен в течение одного такта. Это событие начинает процесс записи параметра значения таймера в блок дистанционного конфигурирования.
- Обратите внимание, что сигнал занятости busy остаётся активным в начале загрузки данных от t = 125 мкс до t = 385.8 мкс, указывает, что параметр записался успешно.
Вторая часть моделирования состоит из включения сторожевого таймера.
- data_in[] установлен в 0110 (Страница 6), чтобы определять желаемую страницу, которую нужно загрузить при реконфигурации. Есть только восемь возможных величин для этого параметра: 0 (заводская конфигурация), или 1-7 (прикладная конфигурация).
- param[] установлен в 100. Этим выбирается параметр выбора страницы.
- В момент времени t = 870 мкс, write_param активен в течение одного такта. Это событие начинает процесс записи параметра для установки параметра выбора страницы в режиме дистанционного конфигурирования.
- Обратите внимание, что сигнал занятости busy становится активным в начале загрузки данных в t = 875 мкс и остаётся активным до t = 1135 мкс, указывая, что параметр записался успешно.
Конечная часть моделирования состоит из инициирования реконфигурации чипа с текущими установками. Это сделано когда сигнал reconfig становится активным в момент времени t = 1270 мкс. После это чип начинает реконфигурацию и выводы pgmout[] управляют выбором, какая страница (6 = 0110) будет загружена в течение реконфигурации.
Порты и параметры
Параметры, указанные в этом разделе, описывают все порты и параметры, доступные для каждой ПЛИС для модификации мегафункции ALTREMOTE_UPDATE по заказу пользователя согласно вашему приложению.
Таблица 3-1 описывает входные порты мегафункции ALTREMOTE_UPDATE, Таблица 3-2 описывает выходные порты мегафункции ALTREMOTE_UPDATE, таблица 3-3 описывает параметры для мегафункции ALTREMOTE_UPDATE. Детали параметров важны только если Вы обходите интерфейс MegaWizard и используете мегафункцию как непосредственно параметризируемый экземпляр в вашем проекте.
Таблица 3-1. Входные порты мегафункции ALTREMOTE_UPDATE
Имя порта | Требуется | Описание | Комментарии |
asmi_busy | Нет | Вход от компонента altasmi_parallel | Доступен, когда параметр check_app_pof установлен в TRUE. Логическая «1» на этом порту показывает, что мегафункция ALTASMI_PARALLEL занята обработкой внутренних операций. Мегафункция ALTREMOTE_UPDATE ALTREMOTE_UPDATE megafunction ждет, когда этот порт перейдёт в низкий уровень перед началом других действий. Соедините этот порт с выходным портом asmi_busy мегафункции ALTASMI_PARALLEL. |
asmi_data_valid | Нет | Вход от компонента altasmi_parallel | Доступен, когда параметр check_app_pof установлен в TRUE. Логическая «1» на этом порту показывает, что на выходном порту asmi_dataout[7..0] мегафункции ALTASMI_PARALLEL доступны верные данные. Соедините этот порт с выходным портом asmi_data_valid мегафункции ALTASMI_PARALLEL. |
asmi_dataout | Нет | Вход от компонента altasmi_parallel | Доступен, когда параметр check_app_pof установлен в TRUE. Мегафункция ALTREMOTE_UPDATE предоставляет информацию об адресе на этом порту перед началом операции чтения в мегафункции ALTASMI_PARALLEL. Соедините этот порт со входным портом asmi_addr[23..0] мегафункции ALTASMI_PARALLEL. |
clock | Да | Тактовый вход для remote update block | Тактовый вход для управления машиной состояний, а также для управления блоком дистанционного конфигурирования во время обновления параметров. Этот порт должен быть подключен к тактовой цепи. |
data_in[] | Нет | Вход данных для записи параметров в remote update block | Входная шина для данных параметра. Для некоторых параметров используются не все биты. В этом случае используются младшие биты (например, статус использует биты 0-4). Эта шина устанавливается по умолчанию в 0, если Вы её оставите не подключенной. Порт будет проигнорирован, если текущая конфигурация является конфигурацией приложения (Application configuration). Ширина этой шины зависит от семейства ПЛИС.
|
param[] | Нет | Шина, определяющая, какой параметр должен быть прочитан или обновлён. | 3- битная шина, которая выбирает параметр, который нужно прочитать или скорректировать. Если оставить шину не подключенной, значение по умолчанию для этого порта - 000. Для Arria GX, Stratix III, Stratix II, Stratix II GX, Stratix и Stratix GX назначение каждого параметра и соответствующее описание битов приведены ниже: ** 000 - Условия триггера реконфигурации (только чтение) – разрядность 5 бит. Биты триггера определены следующим образом:
** 010 - Значение тайм-аута сторожевого таймера - разрядность 12 бит ** 011 - Разрешение работы сторожевого таймера - разрядность 1 бит ** 100 - Выбор страницы Для ПЛИС Stratix и Stratix GX: * разрядность 3 при чтении и записи страницы. Относится только при использовании расширенного устройства конфигурации. Для ПЛИС Arria GX, Stratix II и Stratix II GX: * разрядность 3 при чтении и записи страницы. Относится только при использовании расширенного устройства конфигурации. * разрядность 7 при чтении и записи стартового адреса. Регистры PGM[6..0] формируют биты [22..16] 24- битового стартового адреса. Другие 17 бит установлены в ноль. Относится при использовании последовательного устройства конфигурации (AS режим). Для ПЛИС Stratix III: * разрядность 24 при чтении и записи стартового адреса. Регистры PGM[6..0] формируют биты [22..16] 24- битового стартового адреса. Другие 17 бит установлены в ноль. Относится при использовании последовательного устройства конфигурации (AS режим). ПЛИС Stratix III используют этот режим только для дистанционной конфигурации. ** 101 - Режим конфигурации (AnF) - разрядность 1. В режиме локальной конфигурации этот параметр может быть только прочитан. Установлен в 1 на странице прикладной конфигурации и установлен в 0 на странице заводской конфигурации. В режиме дистанционной конфигурации, этот параметр может быть прочитан и записан. Перед загрузкой прикладной страницы в режиме дистанционной конфигурации, Altera рекомендует, чтобы Вы установили его в 1. ** 110 - (неверное значение) ** 111 - (неверное значение) Для ПЛИС Cyclone III назначение каждого параметра и соответствующие описания битов определены следующим образом: ** 000 - Текущее состояние ведущей машины состояний (только чтение) - разрядность 2. Величины определены следующим образом: 00 Режим заводской конфигурации 01 Режим прикладной конфигурации 11 Режим прикладной конфигурации с включенным сторожевым таймером ведущей машины состояний ** 001 - Принудительная досрочная проверка CONF_DONE(Cd_early) - разрядность 1 ** 010 - Значение тайм-аута сторожевого таймера - разрядность 29 бит при чтении и 12 бит при записи. Следует отметить, что 12 бит для записи - это старшие 12 бит 29-битного значения тайм-аута сторожевого таймера. ** 011 - Разрешение работы сторожевого таймера - разрядность 1 бит ** 100 - Загрузочный адрес - разрядность 24 бит при чтении и 22 бит при записи. Следует отметить, что загрузочный адрес должен быть записан в старшие 22 бита 24- битного загрузочного адреса. ** 101 - (некорректное значение) ** 110 - Заставлять использовать внутренний тактовый генератор в качестве тактов машины состояний (Osc_int) - разрядность 1 бит ** 111 - условия триггера реконфигурации (только чтение) - разрядность 5 бит. Биты триггера определены следующим образом: Бит 4: nconfig_source: внешняя конфигурация была инициирована активацией nCONFIG Бит 3: crcerror_source: произошла ошибка CRC в течение прикладной конфигурации Бит 2: nstatus_source: nSTATUS активировался внешним устройством как результат ошибки Бит 1: wdtimer_source: тайм-аут сторожевого таймера Бит 0: runconfig_source: конфигурация была инициирована из логического массива Все параметры могут быть записаны только в режиме заводской конфигурации. Различные ПЛИС поддерживают различные параметры. Посмотрите главу Remote System Upgrade в справочнике конкретной ПЛИС. |
read_param | Нет | Сигнал чтения для параметра, определенного во входном порту param[] и передаваемого в выходной порт data_out[]. | Сигнал показывает, что параметр, определяемый портом param[], должен быть прочитан. Количество битов, установленных на data_out[] зависит от типа параметра. Сигнал захватывается по переднему фронту тактов. Сигнал должен быть активен только в течение одного такта, чтобы избежать повторного чтения параметра в последующем такте. Сигнал занятости становится активным, как только сигнал чтения read_param активный. Пока параметр читается, сигнал занятости остаётся активным и data_out[] содержит неправильные данные. Когда сигнал занятости становится неактивным, data_out[] - содержит верные данные и можно приступить к чтению другого параметра. Информацию о том, как использовать порт read_source в мегафункции ALTREMOTE_UPDATE для ПЛИС Cyclone III можно найти в «AN 521: Cyclone III Active parallel Remote System Upgrade Reference Design». |
read_source | Да | Определяет, какое значение содержит прочитанный параметр - из текущего или предыдущего состояния. Доступен только в ПЛИС Cyclone III и Cyclone IV. | Только в ПЛИС Cyclone III и Cyclone IV этот 2- битовый порт определяет состояние, из которого прочитано значение параметра. Этот сигнал активен только тогда, когда активен сигнал read_param. Биты read_source[1..0] определены следующим образом:
|
reconfig | Да | Указывает, когда начинается реконфигурация с использованием текущих параметров. | Сигнал показывает, что должна начаться реконфигурация с использованием текущего значения параметров. Величина 1 указывает, что должна начаться реконфигурация. Этот сигнал будет проигнорирован, пока сигнал занятости активен, чтобы гарантировать, что все параметры полностью записаны прежде, чем начнется реконфигурация. |
reset | Да | Асинхронный вход сброса мегафункции. | Асинхронный вход сброса для инициализации автомата в правильное состояние. Автомат должен быть сброшен перед первым использованием, в противном случае не гарантируется, что он находится в правильном состоянии. |
reset_timer | Нет | Сигнал сброса сторожевого таймера. | Сигнал показывает, что внутренний сторожевой таймер должен быть сброшен. В отличие от других входов, этот сигнал не зависит от сигнала занятости и может сбросить таймер, даже когда сигнал занятости активен. Этот сигнал не может быть использован в режиме локальной конфигурации. Для получения временных спецификаций этого параметра, обратитесь к справочнику по конкретной ПЛИС. |
write_param | Нет | Сигнал записи для параметра, определяемого значением на шине param[] и с величиной, определенной в data_in[]. | Сигнал показывает, что параметр, определенный в param[], должен быть записан в блок RU с величиной, определенной в data_in[]. Количество битов, прочитанных из data_in[] зависит от типа параметра. Сигнал захватывается по переднему фронту тактов. Сигнал должен быть активен только в течение одного такта, чтобы предохранить параметр от перезаписи в последующем такте. Сигнал занятости переходит в активный уровень, как только write_param станет активным. Пока параметр пишется, сигнал занятости остается активным и вход data_in[] игнорируется. Когда сигнал занятости становится неактивным, можно записывать другой параметр. Этот сигнал правильный только в режиме заводской конфигурации (Factory configuration), поскольку параметры не могут быть записаны в режиме конфигурации приложения (Application configuration). Сигнал не может быть использован в режиме локальной конфигурации. |
Таблица 3-2. Выходные порты мегафункции ALTREMOTE_UPDATE
Имя порта | Требуется | Описание | Комментарии |
asmi_addr | Нет | Сигнал адреса для компонента altasmi_parallel. | Доступен, когда параметр check_app_pof установлен в TRUE. Мегафункция ALTREMOTE_UPDATE предоставляет информацию об адресе на этом выходе перед началом операции чтения в мегафункции ALTASMI_PARALLEL. Соедините этот выход со входом asmi_addr[23..0] мегафункции ALTASMI_PARALLEL. |
asmi_rden | Нет | Сигнал разрешения чтения из компонента altasmi_parallel. | Доступен, когда параметр check_app_pof установлен в TRUE. Этот вывод разрешает операцию чтения в мегафункции ALTASMI_PARALLEL. Соедините этот выход со входным портом asmi_rden мегафункции ALTASMI_PARALLEL. |
asmi_read | Нет | Сигнал чтения для компонента altasmi_parallel. | Доступен, когда параметр check_app_pof установлен в TRUE. Высокий логический уровень на этом выводе инициирует операцию чтения в мегафункции ALTASMI_PARALLEL. Соедините этот выход со входным портом asmi_read мегафункции ALTASMI_PARALLEL. |
busy | Нет | Сигнал занятости указывает, когда блок дистанционной конфигурации читает или записывает данные. | Сигнал показывает, что автомат занят операцией чтения или записи параметра. Пока этот сигнал активен, автомат игнорирует большинство свих входов и никакие изменения не могут быть произведены пока этот сигнал остаётся активным. Следовательно, изменения возможны только когда автомат не занят. Этот сигнал находится в высоком уровне, когда активны read_param или write_param и остается в высоком уровне пока не завершатся операция чтения или записи. |
data_out[] | Нет | Эта шина содержит прочитанные данные параметра из блока RU. Значение param[] определяет, какой параметр будет читаться. Когда сигнал read_param активен, значение параметра загружено и выведено на эту шину. Данные верные, когда сигнал занятости не активен. Если оставить вывод не подключенным, значение по умолчанию для порта - 000. Разрядность этой шины зависит от типа ПЛИС.
|
|
pgmout[] | Да | Определяет, какой адрес страницы конфигурационных данных будет загружен, когда блок дистанционный конфигурации переконфигурируется. | В ПЛИС Arria GX, Stratix II, Stratix II GX и Stratix, 3- битовая шина должна быть подключена непосредственно к выходным ножкам. Эта шина содержит адрес страницы (от 000 до 111) данных конфигурации, которые нужно загрузить, когда ПЛИС переконфигурируется. Внешнее устройство, прочитав эту шину, предоставляет различные конфигурации. В ПЛИС Arria GX, Stratix II и Stratix II GX, когда выбран ACTIVE_SERIAL_REMOTE, взамен этого используются 7 бит PGM[6:0]. Биты не посылаются в FLASH память через ножки выбора страниц PGM[2:0], как в нормальном Дистанционном и Локальном режиме конфигурации ( блок не имеет выходов pgmout). Взамен этому, они загружаются в регистры команд в контроллер ASMI, затем контроллер ASMI передаёт команду чтения с нужным адресным сдвигом в FLASH память. Эти биты отображаются на битах add[22:16] адреса FLASH памяти. |
pof_error | Нет | Доступен, когда параметр check_app_pof установлен в TRUE. Высокий логический уровень на этом выводе указывает, что мегафункция ALTREMOTE_UPDATE обнаружила неправильный образ прикладной конфигурации (application configuration). Если будет высокий логический уровень, Вы должны исправить ситуацию, перезагрузив новый образ прикладной конфигурации или определив другую позицию адреса в EPCS, который содержит правильный образ прикладной конфигурации. Используйте этот выход в зависимости от ваших требований. |
Таблица 3-3. Параметры мегафункции ALTREMOTE_UPDATE
Параметр | Тип | Комментарии |
check_app_pof | String | Позволяет Вам использовать проверку POF, которая позволяет блоку дистанционного конфигурирования проверять существование образа прикладной конфигурации прежде, чем образ будет загружен. Если параметр установлен в TRUE, мегафункция ALTREMOTE_UPDATE проверит файл POF и передаст сигнал reconfig. Значение по умолчанию - FALSE. |
in_data_width | Integer | Allows you to specify a value of 24 to instantiate the Stratix III, Stratix IV, and Stratix V Remote Update megafunction. |
operation_mode | String | Определяет режим работы мегафункции altremote_update. Возможные значения - LOCAL, REMOTE или ACTIVE_SERIAL_REMOTE. Если не указано значение, по умолчанию - REMOTE. Значение ACTIVE_SERIAL_REMOTE доступно только для ПЛИС Stratix GX. |
out_data_width | Integer | Allows you to specify a value of 24 to instantiate the Stratix III, Stratix IV, and Stratix V Remote Update megafunction. |
sim_init_config | String | Определяет конфигурацию блока дистанционной конфигурации только для имитационных целей. Параметр sim_init_config не влияет на компиляцию или результирующий файл программирования. Возможные значения - FACTORY или APPLICATION. Когда параметр sim_init_config установлен в FACTORY, Вы можете прочитать и записать параметры блока дистанционной конфигурации. Когда параметр sim_init_config установлен в APPLICATION, Вы можете только прочитать параметры блока дистанционной конфигурации. Если параметр не цуазан, его значение по умолчанию FACTORY. |
sim_init_page_select | Integer | Определяет значение выбранной страницы только для имитационных целей. Параметр sim_init_page_select не влияет на компиляцию или результирующий файл программирования. Если параметр не указан, значение по умолчанию - 0. |
sim_init_status | Integer | Определяет значение регистра статуса только для имитационных целей. Параметр sim_init_status не влияет на компиляцию или результирующий файл программирования. Если параметр не указан, значение по умолчанию - 0. |
sim_init_watchdog_value | Integer | Определяет начальное значение сторожевого таймера только для имитационных целей. Параметр sim_init_watchdog_value не влияет на компиляцию или результирующий файл программирования. Величины могут быть - 0...4095. Когда параметр sim_init_watchdog_value установлен в 0, сторожевой таймер выключен. Когда параметр sim_init_watchdog_value установлен в величину больше, чем 0, сторожевой таймер включен. Если параметр не указан, значение по умолчанию - 0. |
Комментарии