УСТРОЙСТВО ЗАГРУЗКИ ПРОГРАММ И ДАННЫХ КОНФИГУРАЦИИ ПЛИС

Полезная модель относится к радиотехнике, вычислительной технике, автоматике и может быть использована в качестве устройства загрузки различных микропроцессорных схем, контроллеров и цифровых устройств, с применением микропроцессоров (микроконтроллеров) и ПЛИС FPGA (ПЛИС - программируемая интегральная микросхема; FPGA - перепрограммируемые пользователем базовые матричные кристаллы).
Известны рекомендуемые производителями устройства загрузки данных конфигурации ПЛИС [1, 2].
Недостатком этих устройств является невозможность использования памяти для хранения пользовательских данных и необходимость использования специализированных микросхем загрузочной FLASH-памяти (FLASH-память - перепрограммируемое постоянное запоминающее устройство).
Известно устройство последовательной загрузки, позволяющее использовать FLASH-память для пользовательских данных после загрузки данных конфигурации ПЛИС FPGA [2]. Устройство включает вспомогательную ПЛИС CPLD (CPLD - перепрограммируемая микросхема с традиционной архитектурой) для организации доступа к FLASH-памяти. После включения питания ПЛИС CPLD осуществляет загрузку ПЛИС FPGA данными конфигурации, расположенными во FLASH-памяти. По окончании загрузки ПЛИС CPLD переходит в режим, обеспечивающий использование пространства FLASH-памяти как пользовательских данных для ПЛИС FPGA. Таким образом, ПЛИС CPLD служит буфером между FLASH-памятью и ПЛИС FPGA.
Недостаток состоит в том, что нет возможности перепрограммировать пользовательские данные во время работы устройства.
Для загрузки программ микропроцессоров используются, как правило, стандартные устройства загрузки из FLASH-памяти с параллельными схемами
подключения [3]. При необходимости использования нескольких внешних устройств используется стандартная схема параллельного подключения [3].
Недостаток этой схемы заключается в том, что при обращении к разным внешним устройствам используются одни и те же шина данных и шина адреса, таким образом, создаются дополнительные помехи. Кроме того, FLASH-память включается в рабочую шину микропроцессора, в результате увеличивается емкость нагрузки (как монтажная, так и нагрузочная, за счет включения дополнительных входов FLASH-памяти) и увеличивается длина печатных проводников шины данных и адреса, что увеличивает паразитную монтажную индуктивность и емкость. Все это приводит к снижению потенциальной скорости и достоверности обмена на шине.
Наиболее близким к предлагаемому является устройство, представленное на сайте [4], принятое за прототип.
Схема устройства-прототипа приведена на фиг.1, где обозначено:
1 - микропроцессор;
2 - ПЛИС CPLD;
3 - FLASH-память;
4 - ПЛИС FPGA.
Устройство-прототип содержит микропроцессор 1, к параллельным шинам данных и адреса которого подключены микросхема FLASH-памяти 3 и ПЛИС CPLD 2, которая соединяется с загрузочными контактами (PROGRAM, CCLK, DIN, INIT, DONE) ПЛИС FPGA.
Работа устройства-прототипа осуществляется следующим образом.
Вначале из FLASH-памяти 3 загружается микропроцессор 1, затем под его управлением осуществляется загрузка ПЛИС FPGA 4. Устройство-прототип использует 16-разрядную FLASH-память 3 для хранения данных конфигурации ПЛИС FPGA 4. Поскольку каждый адрес памяти хранит 16-битное данное, при загрузке ПЛИС FPGA 4 микропроцессор 1 читает каждый адрес, считывает 16-битное данное и преобразует его в последовательные коды. Этот процесс продолжается до окончания конфигурационных данных. В
течение процесса загрузки ПЛИС FPGA 4 микропроцессор 1 осуществляет формирование последовательных данных и тактов и передачу их через параллельную шину в ПЛИС CPLD 2. ПЛИС CPLD 2 используется для декодирования последовательных данных вместе с загрузочными тактами (CCLK), а также для контроля состояния загрузочных контактов ПЛИС FPGA 4, таких как PROGRAM, INIT, DONE. Таким образом, ПЛИС CPLD 2 используется как интерфейс синхронизации между микропроцессором 1 и ПЛИС FPGA 4.
Однако на шинах данных и адреса микропроцессора 1 подключены FLASH-память 3 и ПЛИС CPLD 2, это снижает производительность шин и увеличивает уровень помех, создаваемый работающими шинами.
Недостатки устройства-прототипа следующие:
- в процессе загрузки ПЛИС FPGA через ПЛИС CPLD необходимо участие микропроцессора;
- загрузка ПЛИС FPGA через ПЛИС CPLD возможна лишь после загрузки самого микропроцессора, т.е. загрузка микропроцессора и ПЛИС FPGA выполняется последовательно, что увеличивает время загрузки и соответственно время готовности схемы к работе.
Для устранения указанных недостатков в устройство загрузки программ и данных конфигурации программируемой логической интегральной микросхемы (ПЛИС), содержащее микропроцессор, FLASH-память, а также ПЛИС CPLD и ПЛИС FPGA, соединенные загрузочными цепями для загрузки данных конфигурации ПЛИС FPGA, шины данных и адреса и управляющие цепи, согласно полезной модели, введены раздельные шины данных и адреса и управляющие цепи, соединяющие соответственно FLASH-память и ПЛИС CPLD, микропроцессор и ПЛИС FPGA, а также последовательная шина между FLASH-памятью и микропроцессором для загрузки программ в микропроцессор.
Основное предназначение предлагаемого устройства загрузки - высокопроизводительные устройства цифровой обработки сигнала. Высокая производительность таких устройств достигается применением тандема: микропроцессор
и ПЛИС FPGA, соединенных параллельной высокоскоростной шиной обмена данными. Наибольший шумовой вклад вносят параллельные шины адреса и шины данных между микропроцессором и ПЛИС FPGA. Для снижения этих шумов шины должны быть максимально короткими, иметь минимум дополнительных устройств, подключенных через эти шины, минимум паразитной емкости и индуктивности.
На фиг.2 представлена схема предлагаемого устройства, где обозначено:
1 - микропроцессор;
2 - ПЛИС CPLD;
3 - FLASH-память;
4 - ПЛИС FPGA;
(А (18:0)) - шина адреса;
(D (15:0)) - шина данных;
CS, WR, RD, CS1, WR1, RD1 - цепи управляющих сигналов параллельных шин обмена;
INIT, PROGRAM, DONE, DIN, CCLK - цепи (контакты) загрузочных сигналов ПЛИС FPGA.
Предлагаемое устройство содержит микропроцессор (микроконтроллер) 1, ПЛИС CPLD 2, FLASH память 3 и ПЛИС FPGA 4. FLASH-память 4 соединена параллельными шинами данных (D (15:0)), адреса (А (18:0)) и цепями управляющих сигналов (CS, WR, RD) с ПЛИС CPLD 2. Параллельные шины данных (D1(15:0)) и адреса (А1(6:0)) микропроцессора 1 с соответствующими управляющими цепями (CS1, WR1, RD1) соединены только с ПЛИС FPGA 4. Для загрузки ПЛИС FPGA 4 и микропроцессора 1 используются последовательные шины, которые соединены с ПЛИС CPLD 2. FLASH-память 3 содержит загрузочный модуль рабочей программы микропроцессора 1 и данные конфигурации для загрузки ПЛИС FPGA 4, а также пользовательские данные.
Предлагаемое устройство работает следующим образом.
При включении питания ПЛИС CPLD 2 осуществляет загрузку ПЛИС FPGA 4 и микропроцессора 1. Для этого ПЛИС CPLD 2, используя шину адреса (А (18:0)) и шину данных (D (15:0)) FLASH-памяти 3, а также управляющие сигналы FLASH-памяти 3 (CS и RD), считывает два 16-разрядных слова данных из FLASH-памяти 3. Из данных первого слова (и последующих нечетных слов) ПЛИС CPLD 2 формирует кодограмму последовательных данных и тактов на контакты DIN и CCLK ПЛИС FPGA 4, а из данных второго (и последующих четных слов) формируются последовательный поток и такты для последовательной шины микропроцессора 1, согласно протоколам загрузки в подчиненном последовательном режиме. Итерации продолжаются до тех пор, пока не будут считаны и загружены все данные конфигурации ПЛИС FPGA 4 и микропроцессора 1. При этом ПЛИС CPLD 2 контролирует управляющий контакт DONE, который сигнализирует об окончании загрузки ПЛИС FPGA 4.
По окончании загрузки микропроцессор 1 осуществляет чтение пользовательских данных с FLASH-памяти 3 через последовательную шину. Для этого микропроцессор 1 по последовательной шине передает в ПЛИС CPLD 2 19-разрядный адрес для чтения данных, ПЛИС CPLD 2 выставляет адрес на параллельную шину адреса FLASH-памяти 3 (А (18:0)), формирует кодограмму управляющих сигналов для чтения (CS, RD) и считывает 16-разрядное данное с параллельной шины данных FLASH-памяти 3 (D (15:0)). После этого ПЛИС CPLD 2 передает это данное по последовательной шине в микропроцессор 1. Итерации продолжаются до тех пор, пока не будет считано необходимое количество данных с FLASH-памяти 3. После этого процесс загрузки завершается, ПЛИС CPLD 2 отключает все шины между FLASH-памятью 3 и ПЛИС CPLD 2, между микропроцессором 1 и ПЛИС CPLD 2, между ПЛИС FPGA 4 и ПЛИС CPLD 2, и далее работают только шины между микропроцессором 1 и ПЛИС FPGA 4.
Кроме функций загрузки ПЛИС FPGA 4 и микропроцессора 1, ПЛИС CPLD 2 обеспечивает функции программирования FLASH-памяти 3 под управлением микропроцессора 1. Для этого микропроцессор 1 передает в ПЛИС CPLD 2 адрес и данные для программирования через последовательную шину, а также признак режима (0 - запись данных, 1 - чтение данных). ПЛИС CPLD 2 выставляет адрес на параллельную шину адреса FLASH-памяти 3 (А (18:0)), затем в зависимости от режима формирует кодограмму управляющих сигналов (CS и WR для записи данных, CS и RD для чтения). Далее, в зависимости от режима, ПЛИС CPLD 2 либо выставляет 16-разрядное данное на параллельную шину данных FLASH-памяти 3 (D (15:0)) для режима записи данных, либо считывает 16-разрядное данное с параллельной шины данных FLASH-памяти 3 (D(15:0)) и передает его по последовательной шине в микропроцессор 1 (в режиме чтения данных). Эти функции обеспечивают выполнение команд стирания FLASH-памяти 3, программирования FLASH-памяти 3 и проверку записанной информации.
Таким образом, в режиме загрузки ПЛИС CPLD 2 выполняет функции микропроцессора 1, а в режиме программирования FLASH-памяти 3 работает под внешним управлением микропроцессора 1.
Основным достоинством предлагаемого устройства является увеличение помехоустойчивости устройства за счет того, что параллельные шины данных и адреса микропроцессора 1 используются только для связи с ПЛИС FPGA 4, а параллельная шина данных и шина адреса FLASH-памяти 3 соединяется только с ПЛИС CPLD 2 и используются только в процессе загрузки микропроцессора 1 и ПЛИС FPGA 4.
По сравнению с прототипом предлагаемое устройство имеет следующие преимущества:
- возможна перезапись пользовательских данных в составе устройства;
- происходит параллельная загрузка ПЛИС FPGA и микропроцессора, что сокращает время загрузки и время готовности всего устройства к работе;
- шина микропроцессор - ПЛИС FPGA может быть короче, чем у прототипа, что повышает помехоустойчивость устройства.
Источники информации:
[1] www.Xilins.com/bvdocs/appnotes/xapp694.pdf
[2] www.Xilins.com/bvdocs/appnotes/xapp800.pdf
[3] www.Atmel.com/dyn/resources/prod_documents/1354.pdf
[4] www.Xilins.com/bvdocs/appnotes/xapp502.pdf