Jump to content

    
MaratZuev

Две ПЛИС разных производителей в одной JTAG цепочке: как и чем прошить?

Recommended Posts

Всем добра.
Например Актель и Альтера.
Хочется шить одномоментно из одного ПО ничего не перетыкая.
Просьба пнуть в нужном направлении.

Share this post


Link to post
Share on other sites

OFF. Не так давно хотел одновременно шить разные мс одного производителя с помощью его-же ПО, и фиг там.

Пришлось шить по очереди. Хорошо что хоть без перетыкивания обошлось.

А Вы разных шить хотите!!! :spiteful:

Share this post


Link to post
Share on other sites

тулзы умеют писать прошивку (набор команд по жтагу) в некий универсальный формат STAPL (https://en.wikipedia.org/wiki/Standard_Test_and_Programming_Language) или тому подобное. там в цепочке чужую ПЛИС надо задавать как bypass

но будут потери функциональности, трудности отладки и т.п. - я не пользовался

в актеле генерилось где-то в isp, в альтере в файл-конвершин по-моему

Share this post


Link to post
Share on other sites
29.10.2020 в 02:23, zombi сказал:

OFF. Не так давно хотел одновременно шить разные мс одного производителя с помощью его-же ПО, и фиг там.

Пришлось шить по очереди. Хорошо что хоть без перетыкивания обошлось.

Конфигурационные микросхемы были отдельные для каждой ПЛИСки?

Share this post


Link to post
Share on other sites
3 hours ago, MrGalaxy said:

Конфигурационные микросхемы

Без внешних конф.мс.

Вот тема Quartus Programmer "ругается", ого уже три года прошло. Во время летит. А Intel так проблему и не решил.

 

Share this post


Link to post
Share on other sites
On 10/28/2020 at 9:57 PM, MaratZuev said:

Всем добра.
Например Актель и Альтера.
Хочется шить одномоментно из одного ПО ничего не перетыкая.
Просьба пнуть в нужном направлении.

Готовых софтин такого рода, да еще с GUI, я не знаю. Если подобная задача появляется в контексте автоматизации серийного производства, то не грех самостоятельно разработать поддержку такого решения, пусть хотя бы даже и на скриптах.

Share this post


Link to post
Share on other sites

Раньше был некий JTAG player  который мог проигрывать файлы svf по моему. А этот файл генерил софт от вендора. Формат весьма доступный и можно склеить несколько файлов.

Думаю сейчас есть нечто подобное.

Share this post


Link to post
Share on other sites

чего-то сразу забыл написать - смысл JTAG в штатной загрузке? по-моему это только для отладки, всегда есть вариант загрузки по последовательному интерфейсу (SPI slave), который будет быстрее и проще (аппаратная поддержка в процессоре-загрузчике, например, а не ногами gpio дергать)

JTAG может для каких-то хитрых операций, прошивка OTP в ПЛИСине, криптография, но для таких операций командный файл может и не генериться - то есть для сторонних JTAG тулзов такие операции запрещены - то есть если расчет на это, то надо внимательно очень проверять возможность

если JTAG выбран, чтобы кода меньше писать - могу ошибаться , давно было, но кажется, что актел дает С код для последовательной загрузки  (ищите directc), с альтерой не знаю, но наверняка на гитхабе есть (да и кодировать то там по доке ...)

в двух SPI-ях проводов 3 + 2 чип селекта, не на много больше 4 JTAG-а

 

 

Share this post


Link to post
Share on other sites
9 hours ago, MaratZuev said:

Скрипты брать, например, отсюда?

Это лищь пример общения с пользовательской логикой через JTAG Alter'ы. Но иллюстрация неплохая. Но вам-то надо загружать SOF-файл через JTAG, а не общаться с с уже загруженной логикой в FPGA. Это перекается по функционалу с этим примером, но не совсем то.

Поскольку в задаче присутствуют FPGA от нескольких вендоров, то для каждого надо будет найти/написать/приспособить свою библиотечку примитивов для загрузки (т.к. принципы загрузки у всех, скорее всего, разнятся). Да, там будет общий нижний слой JTAG примитивов, но над ним для каждой FPGA технологии будет свой подставляемый слой со спецификой конфигурирования FPGA от Altera или Xilinx, например.

Отсюда вопрос - действительно ли это именно то, чего вам хочется? Я имею в виду грузить именно через JTAG. Если не ошибаюсь, каждый из FPGA вендоров предусмотрел более простой метод конфигурирования (Altera and Xilinx - точно) - тот, который используется при конфигурировании с помощью конфигурационных FLASH. Эти методы у них по-разному называются, но принцип близкий. И часто приводятся C-шные исходники для реализации такой загрузки через микроконтроллер, например. У Altera точно видел такую Application Note. JTAG - да, более универсальный подход, но он и сложнее.

Share this post


Link to post
Share on other sites
14 hours ago, MegaVolt said:

Раньше был некий JTAG player  который мог проигрывать файлы svf по моему. А этот файл генерил софт от вендора. Формат весьма доступный и можно склеить несколько файлов.

Вот здесь написано следующее: SVF files support only one ACTION or programming flow per file, due to language limitations.

14 hours ago, MegaVolt said:

Думаю сейчас есть нечто подобное.

SVF Player Но вопрос в склейке ужа с ежом остаётся

7 hours ago, Raven said:

JTAG - да, более универсальный подход, но он и сложнее.

Мы не ищем лёгких путей, а программировать хотелось бы влёт лёгким движением мыши без перетыкания всяких программаторов соответственно парадигме: один софт (программатора), один загрузочый кабель, один разъём JTAG, две ПЛИС от двух разных вендоров и две их прошивки в (как теперь понимаю) SVF формате, который надо будет обрабатывать пунктом 1 в этой цепочке.

Share this post


Link to post
Share on other sites
3 часа назад, MaratZuev сказал:

SVF Player Но вопрос в склейке ужа с ежом остаётся

 

Да. Перевести первую флешку после загрузки в прозрачный режим придётся скорее всего ручками. Либо возможно подсмотрев это в ещё одном файле svf созданном только для этой комманды. И возможно даже придётся поправить коды для второй плис потому что первая в прозрачном режиме будет давать задержку выходных данных на 1 такт.

Share this post


Link to post
Share on other sites
7 часов назад, MaratZuev сказал:

Мы не ищем лёгких путей, а программировать хотелось бы влёт лёгким движением мыши без перетыкания всяких программаторов соответственно парадигме: один софт (программатора), один загрузочый кабель, один разъём JTAG, две ПЛИС от двух разных вендоров и две их прошивки в (как теперь понимаю) SVF формате, который надо будет обрабатывать пунктом 1 в этой цепочке.

Попробуйте связку FT2232H + UrJTAG + svf-файлы для разных ПЛИС.

Share this post


Link to post
Share on other sites

Если речь идет о конфигурировании через JTAG с использованием SVF-файлов, то их нужно будет слегка модифицировать - добавить действия с TAP-контроллерами, предшествующими и/или следующими за нашим интересантом в JTAG-цепочке. Делается это через использование команд HIR/HDR и TIR/TDR (H, T - header and trailer, голова и хвост, соответственно). Для пояснения такая картинка из SVF spec'а:

 

image.png.0cc39bc27cb54c192650369b661ff6c9.png

Сами же действия просты:

  • в IR загоняется команда BYPASS
  • в DR всегда подставляется 1'b0 (это и будет содержимым 1-битного BYPASS DR)

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.