Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать конфигурационную схему для Cyclone IV через JTAG ( для отладки) и через PS ( для работы )?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
FLTI
Вроде бы описание удобства такой схемы и сами схемы есть в этом документе - AN656: Combining Multiple Configuration Schemes:
http://www.altera.com/literature/an/an656.pdf
То есть мне как раз и нужно, чтобы на плате была бы возможность каждый раз не программировать Configuration Device при внесении изменений в проект, а для оперативности иметь возможность загрузить конфигурационную схему напрямую в ПЛИС через JTAG.
Но что за странные Configuration Devices там изображены?
Нажмите для просмотра прикрепленного файла
У EPCS ведь только есть сигналы DATA, DCLK, OE, nCS, а у этих ещё и JTAG-сигналы...
Что это за дивайсы?

А вообще я рассчитывал найти схему Programming Serial Configuration Devices In-System Using the JTAG Interface аналогичную этой с обычными EPCS, но не для AS, а для PS .
Нажмите для просмотра прикрепленного файла
Александр77
Цитата(FLTI @ Aug 3 2013, 16:45) *
Но что за странные Configuration Devices там изображены?

Может что-то из старого кочует, есть ведь EPC2 как раз с JTAG.

А чем схема с 6й страницы не нравится?
Под циклон 3 делал почти как нарисовано, только с одним разъемом подключенным к JTAG и резистором между DATA и DATA0.
FLTI
AN656 вышел недавно сравнительно, в январе 2012 и странно, чтобы из старого туда что-то попало...
На 6-й странице AS+JTAG, а мне надо обязательно PS+JTAG.
Stewart Little
EPCS не поддерживает режим PS в принципе.
Если Вам нужен именно PS, то смотрите старые конфигираторы EPC1441, EPC1 (это однократно программируемые конфигураторы) и EPC2 (этот перепрограммируется по JTAG'у): http://www.altera.com/literature/hb/cfg/cfg_cf52004.pdf
или Enhanced Configuration Devices: http://www.altera.com/literature/hb/cfg/ch_14_vol_2.pdf,
http://www.altera.com/literature/hb/cfg/cfg_cf52001.pdf
FLTI
Спасибо! Теперь понятно!
Значит я буду использовать вот эту схему ( рис. 2 из AN656 ):
Нажмите для просмотра прикрепленного файла
То есть поставлю Cyclone IV и EPC2 в единую JTAG-цепочку и смогу программировать с помощью USB-Blaster через Quartus Programmer Tool в режиме JTAG по необходимости или ПЛИС, или EPC2.
Верно?

Дополнение.
Оказывается EPC2 мне не подойдёт, т.к. в него не поместится конфигурационный файл ( размер *.SOF для Cyclone IV GX22 BGA324 = 7,600,040 бит).
А в максимальный EPC2 помещается только 1,695,680 бит.
Остаётся только Enhanced Configuration Devices EPC16?
Но он дороже самой Cyclone IV GX22 BGA324, которую он должен конфигурировать sad.gif
Что ещё можно использовать, чтобы сконфигурировать Cyclone IV GX22 BGA324 конфигурационным файлом размером около 10 Мбит быстрее чем за 100 мс?
Raven
А чем вам AS не угодил (ну и EPCS, соответственно)?
FLTI
В Cyclone IV Datasheet и Cyclone IV Design Guidelines сказано, что чтобы выполнить требования PCIe wake-up time =100мс для Cyclone IV GX22 BGA324 надо использовать именно PS.
Или всё-таки есть другие варианты?
FLTI
Цитата(Raven @ Aug 4 2013, 07:51) *
А чем вам AS не угодил (ну и EPCS, соответственно)?

В Cyclone IV Datasheet и Cyclone IV Design Guidelines сказано, что чтобы выполнить требования PCIe wake-up time =100мс для Cyclone IV GX22 BGA324 надо использовать именно PS.
Но подтверждение расчётами я этому не нашёл нигде...
За счёт чего PS быстрее, чем AS?

А для схемы AS расчёт даётся.
Для моего случая это было бы: 7,600,040 bits х ( 25 нс / 1 bit ) = 190 мс.
То есть вдвое больше, чем необходимые 100мс.
И это при том, если использовать тактовую на максимуме 40 МГц.
Raven
Цитата(FLTI @ Aug 4 2013, 10:08) *
...чтобы выполнить требования PCIe wake-up time =100мс

Вона что выясняется в процессе... sm.gif

Цитата(FLTI @ Aug 4 2013, 10:08) *
В Cyclone IV Datasheet и Cyclone IV Design Guidelines сказано, что чтобы выполнить требования PCIe wake-up time =100мс для Cyclone IV GX22 BGA324 надо использовать именно PS.
Но подтверждение расчётами я этому не нашёл нигде...
За счёт чего PS быстрее, чем AS?

Так понятно почему - у EPC тактовая м.б. до 100 МГц супротив 40 для EPCS.

Но для такого применения я бы использовал многобитную шину D[7:0] ,- те же EPC в соответствующем режиме, ну или что-то на альтернативных FLASH'ах. Будете иметь соответствующее понижение fCLK и меньше проблем.
FLTI
Цитата(Raven @ Aug 4 2013, 12:54) *
Но для такого применения я бы использовал многобитную шину D[7:0] ,- те же EPC в соответствующем режиме, ну или что-то на альтернативных FLASH'ах. Будете иметь соответствующее понижение fCLK и меньше проблем.

Вы имеете в виду 8-bit PS или FPP?
Если FPP, то Cyclone IV GX22 BGA324 такой режим не поддерживает.
Stewart Little
Цитата(FLTI @ Aug 4 2013, 15:08) *
Чем подешевле из альтернативных FLASH можно заменить EPC4 ?

Насколько я знаю, ничем. Нет у нее аналогов. Как вариант можно исполльзовать внешие хост и память. В качестве хоста можно использовать или микроконтроллер (если он потянет нужную частоту), или автомат на CPLD'шке, например MAX II.
Смотрите Configuration and Remote System Upgrades in Cyclone IV Devices , стр.8-33.
Для перепрошивки внешней памяти можно использовать Parallel Flash Loader.
FLTI
Попробовал конвертнуть *.sof в *.pof , но в меню выходного файла почему-то нет EPC4 и других Enhanced Configuration Devices, но есть EPC1, EPC2 b EPC1441.
Почему нет EPC4 и других более старших Enhanced Configuration Devices?
Quartus 12.1
Нажмите для просмотра прикрепленного файла
FLTI
Цитата(Raven @ Aug 4 2013, 12:54) *
Так понятно почему - у EPC тактовая м.б. до 100 МГц супротив 40 для EPCS.

Так и у EPCQ в режиме Fast read тактовая может быть 100МГц.
Тогда для моего случая получается так: 7,600,040 bits х ( 10 нс / 1 bit ) = 76 мс < 100 мс ну и плюс ещё некий запас создастся за счёт применения компрессии.
И задача конфигурирования за время меньше 100 мс для PCIe получается решена применением вместо PS схемы с AS но не с EPCS, а с EPCQ?
Всё ли правильно в моих рассуждениях?
В остальном использование EPCQ в режиме AS x1 аналогично EPCS?

Если всё верно, то последний вопрос - как для EPCQ включить режим Fast read, чтобы он работал на 100 МГц, а не на 50 Мгц как в обычном режиме?
Raven
Цитата(FLTI @ Aug 4 2013, 16:08) *
Вы имеете в виду 8-bit PS или FPP?
Если FPP, то Cyclone IV GX22 BGA324 такой режим не поддерживает.

Да, на чип я не глянул... Остается только вариант 1-bit PS на 80-100 МГц, с реализацией либо на EPC, либо на FLASH + CPLD. Но с проводкой цепей надо будет постараться.

Цитата(FLTI @ Aug 4 2013, 22:08) *
Так и у EPCQ в режиме Fast read тактовая может быть 100МГц.
...
И задача конфигурирования за время меньше 100 мс для PCIe получается решена применением вместо PS схемы с AS но не с EPCS, а с EPCQ?
Всё ли правильно в моих рассуждениях?

Да, но ваш Cyclone готов работать только на 40 МГц в AS Fast-режиме максимум. А вот PS готов обслуживать до 133 МГц.
FLTI
Цитата(Raven @ Aug 4 2013, 23:09) *
Да, но ваш Cyclone готов работать только на 40 МГц в AS Fast-режиме максимум. А вот PS готов обслуживать до 133 МГц.

Cyclone IV GX готов работать только на 40 МГц максимум в AS Fast-режиме только с EPCS или с EPCQ тоже?
И даже через CLKUSR?
Raven
AS - Cyclone iV handbook, page 8-12 (aka 176). PS - page 8-37 (201), table 8-12.
FLTI
Цитата(Raven @ Aug 4 2013, 23:22) *
AS - Cyclone iV handbook, page 8-12 (aka 176).

Да, согласен , и ещё на рис. 8-2 это обозначено.
Жаль, значит Cyclone IV GX и с EPCQ сможет работать только на 40 МГц sad.gif

Цитата(Raven @ Aug 4 2013, 23:09) *
Остается только вариант 1-bit PS на 80-100 МГц, с реализацией либо на EPC, либо на FLASH + CPLD. Но с проводкой цепей надо будет постараться.

Если на EPC, то тогда остаётся вопрос - почему в Квартусе 12.1 нет EPC4 и других более старших Enhanced Configuration Devices в меню выбора дивайса в конверторе из sof в pof, а есть только старые EPC1 и EPC2?
Нажмите для просмотра прикрепленного файла
Это скорее всего баг?
krux
Честно скажу - EP4CGX22 для PCI-Express это очень странный выбор. По емкости слишком малый ИМХО.
FLTI
Цитата(krux @ Aug 5 2013, 22:34) *
Честно скажу - EP4CGX22 для PCI-Express это очень странный выбор. По емкости слишком малый ИМХО.

Не проблема, есть PCIe платы и на EP4CGX15.
А вот с конфигурацией я пока что завяз sad.gif
Посмотрим, что выбором дивайсов в Q 13.0 sp1 имеется.
Может компрессия поможет.
Скажите точно - есть ли компрессия в EPC и есть ли в EPCS?
А то я видел противоречивую инфу на эту тему. wacko.gif
krux
в EPCS и EPCQ компрессия есть и работает.
FLTI
Цитата(krux @ Aug 5 2013, 22:51) *
в EPCS и EPCQ компрессия есть и работает.

Как тогда относиться к этому в заголовке даташита по EPCS?
On-chip compression support: No
Нажмите для просмотра прикрепленного файла


И почему включение компрессии недоступно при выборе EPCS16?
Нажмите для просмотра прикрепленного файла


Всё это баги Квартуса?
krux
советую читать документ ровно как он есть, а не выдумывать всё что придёт в голову.

В данном случае здесь написано всего лишь про то, что сама микросхема EPCS производить декомпрессию не умеет. Этим занимается Active Serial загрузчик, в ПЛИС.

галочка "Generate Compressed bitstream" находится в Assignments -> Device -> Device and pin options.
FLTI
Цитата(krux @ Aug 5 2013, 23:07) *
галочка "Generate Compressed bitstream" находится в Assignments -> Device -> Device and pin options.

Это я знаю, пробовал, но судя по инфе в *.map файле *.pof получается одинаково заполненным независимо от положения этой галочки.
krux
Сжатие .sof весьма условное. Если размер почти одинаковый, считайте, с компрессией вам не повезло. Тем более, что гарантий сжатия хоть на полпроцента никто не давал.

зы. .jic и .pof насколько я понимаю всегда равен полному объему записываемой ROM.
FLTI
Цитата(krux @ Aug 5 2013, 23:16) *
Сжатие .sof весьма условное. Если размер почти одинаковый, считайте, с компрессией вам не повезло. Тем более, что гарантий сжатия хоть на полпроцента никто не давал.

зы. .jic и .pof насколько я понимаю всегда равен полному объему записываемой ROM.


Не уверен, разбираюсь с этим, видел противоречивую инфу.

А ещё посмотрите страницу 8-2 Configuration Handbook.
Там о включении компресии сказано, что оно делается как вариант всё же в Convert Programming File:
In the SOF File Properties dialog box, turn on the Compression option.
Да, нашёл это место , это не там, где я на скришоте обвёл!
И вот здесь компрессия реально сработала!!!
Вообщем я пока с большим запасом помещаюсь в EPCS4 размером 4 Мбита, а это значит на 40 МГц я смогу уложиться в PCIe wake-up time =100 мс.
Уффф!
Всем спасибо за помощь!

P.S. Компрессия реальная оказалась почти втрое!
А галочка "Generate Compressed bitstream" в Assignments -> Device -> Device and pin options реально не работает, по крайней мере в Q 12.1.
krux
Цитата
Compression may reduce the configuration bitstream size by 35 to 55%

вы про это?

Запомните, в аглицких документах применяется 4 термина:
1) may
2) could
3) shall
4) must
в полядке увеличения ответственности.
За использование may можно вообще никакой ответственности не нести.
Если в документе написано must а вы это проигнорировали - эквивалентно расстрелу на месте.

Если переводить на русский - если компрессия по какимто причинам не работает - никого в Альтере это не волнует.
Например, если конвертер quartus_asm, GUI которого - "Generate programming files" - не позволяет перепаковать файлы без компрессии в файлы с компрессией - это тоже мало кого волнует; всех устраивает то, что он их умеет упаковывать при изначальном создании .sof
FLTI
Нет, смотрите предыдущий пост, я его поправил.
Я во всём разобрался и компрессия реальная оказалась почти втрое!
Raven
Цитата(FLTI @ Aug 5 2013, 23:22) *
Вообщем я пока с большим запасом помещаюсь в EPCS4 размером 4 Мбита, а это значит на 40 МГц я смогу уложиться в PCIe wake-up time =100 мс.

Не торопитесь радоваться пока. Для полноты картины выясните - а за какое время сжатый втрое файл распаковывается. И даже больше - сколько времени проходит от снятия reset'а до INIT_DONE, и далее до готовности работать на PCIe (или как там завершение wake-up определяется?..). Ведь даже при оптимистической оценке (4 Мбит - 40 МГц) все на краю или даже за пределами находится.

Ну, а если с этим все будет Ок, - очень с большим пиететом отнеситесь к разводке этих 4-х сигналов AS'а (а если подставите туда разъем - не забудьте диоды и конденсаторы). На 40 МГц с signal integrity не шутят, и это подтверждается парой совсем недавних тем на форуме (AS конфигурирование Cyclone iV).
FLTI
Цитата(Raven @ Aug 6 2013, 05:37) *
Не торопитесь радоваться пока. Для полноты картины выясните - а за какое время сжатый втрое файл распаковывается. И даже больше - сколько времени проходит от снятия reset'а до INIT_DONE, и далее до готовности работать на PCIe (или как там завершение wake-up определяется?..). Ведь даже при оптимистической оценке (4 Мбит - 40 МГц) все на краю или даже за пределами находится.

Как это выяснить?
А если результирующий *.pof или *.jic с учётом компрессии по данным в *.map заполнен полезными данными лишь наполовину ( остальное забито 0xff ), то какое будет время загрузки - 100 мс или 50 мс?
Я думаю, что 50 мс, т.е реальное время загрузки EPCS определяется временем загрузки только полезных данных.
Иначе бы не работали реальные схемы на PCIe, в которых используется EPCS16.
Ведь если бы EPCS16 даже заполненная на 10% грузилась бы 16Мбит x 25 нс = 400 мс, то PCIe схема не заработала бы .

А если так, то у меня есть запас, т.к EPCS4 у меня пока заполнена лишь на 70%.
Но как вычислить время декомпрессии я хотел бы узнать, тк возможно заполнение вырастет и до 90% по ходу дополнения проекта.
Raven
Я обратил ваше внимание на этот момент, гляда на проблему с самой общей точки зрения. На практике, возможно, все веселее - например, аппаратная часть Циклона конвейерно распаковывает сжатый поток, что дает нам всего лишь небольшой довесок в конце ко времени конфигурирования. Но может, все и не так (или не совсем так).

Варианты:
1) глянуть документацию (может, где эта деталь и описана);
2) проверить на практике на идентичном или даже просто близком чипе - надо ведь проверить конкретный принципиальный момент;
3) спросить у StewartLittle sm.gif

P.S. Завршение конфигурирования, конечно же, происходит по достижению конца действительных конф.данных, а не конца всей конф. памяти. Я имел в виду следующее: 4 Mb (размер уже сжатого вашего файла, как я понял) * 25 ns (40 MHz) = ~100 ms. Даже чуть больше. А ведь в этот момент ваша логика еще даже не проиницилизирована в смысле FPGA конфигурирования, а после оживления ведь тоже какая-то reset sequence возможна. Так что, строго говоря, спецификация PCIe оказывается нарушенной.
FLTI
Цитата(Raven @ Aug 6 2013, 17:31) *
Я имел в виду следующее: 4 Mb (размер уже сжатого вашего файла, как я понял) * 25 ns (40 MHz) = ~100 ms.

Нет, я же ранее сказал: у меня есть запас до 100 мс, т.к EPCS4 у меня пока заполнена лишь на 70%.
Сейчас выясняю, насколько реально мне хватит этого запаса, дополняя проект ещё нужными блоками.

А распаковка Циклоном судя по всему идёт на лету и занимает доп. время.
Александр77
Рассматривался ли вариант каскадирования конфигурационных ПЗУ типа EPC1/EPC2? (При условии что с них реально загрузится этот циклон, что надо бы проверить)
FLTI
Цитата(Александр77 @ Aug 6 2013, 18:31) *
Рассматривался ли вариант каскадирования конфигурационных ПЗУ типа EPC1/EPC2? (При условии что с них реально загрузится этот циклон, что надо бы проверить)

Меня сбило с толку, что EPC4, 8, 16 в Квартусе 12.1 отсутствуют в списке в Convert Programming Files и я пока EPC вообще отложил в сторону.
Планирую скоро посмотреть , есть ли они на 13.0 sp1.
На Вашем Квартусе есть EPC4, 8, 16 ?
Александр77
Quartus II 11.0 есть весь комплект EPC1441, EPC1, EPC2, EPC4, EPC8, EPC16
Stewart Little
Цитата(FLTI @ Aug 6 2013, 18:36) *
Меня сбило с толку, что EPC4, 8, 16 в Квартусе 12.1 отсутствуют в списке в Convert Programming Files и я пока EPC вообще отложил в сторону.
Планирую скоро посмотреть , есть ли они на 13.0 sp1.
На Вашем Квартусе есть EPC4, 8, 16 ?

В v13.0_sp1 их нету.

Для конфигурирования Cyclone IV в режиме PS альтера рекомендует использовать внешний хост + параллельный флэш. Поищите аппноту про Parallel Flash Loader - там описывается, как сделать хост на MAX II или MAX V.
Имхо это будет самое дешевое решение при требуемой скорости.

Когда вычисляете время загрузки, то не забывайте добавить к нему время POR (соответствующее используемому режиму) и время инициализации (т.е. время между CONF_DONE и INIT_DONE).

Компрессия у Альтеры проста, как грабли - из битстрима выбрасывается установка тех конфигурационных ключей, значение которых совпадает с дефолтным (т.е. имеющимся по включению питания). Потому-то и невозможно априори оценить степень сжатия, т.к. она будет очень сильно зависеть от проекта.
FLTI
Цитата(Stewart Little @ Aug 6 2013, 19:47) *
Для конфигурирования Cyclone IV в режиме PS альтера рекомендует использовать внешний хост + параллельный флэш. Поищите аппноту про Parallel Flash Loader - там описывается, как сделать хост на MAX II или MAX V.
Имхо это будет самое дешевое решение при требуемой скорости.

Вы имеете в виду эту схему?
Parallel Flash Loader будет в MAX II?
Нажмите для просмотра прикрепленного файла
Если да, то подскажите - где бы можно было бы посмотреть принципиальную схему такого подключения?
Идеально было бы посмотреть принципиальную схему какой-нибудь оценочной платы с конфигурационной схемой: MAX II + NOR Flash Memory + Cyclone GX.
Stewart Little
Цитата(FLTI @ Aug 9 2013, 16:23) *
Вы имеете в виду эту схему?
Parallel Flash Loader будет в MAX II?

Да. По обоим вопросам.

Цитата(FLTI @ Aug 9 2013, 16:23) *
Если да, то подскажите - где бы можно было бы посмотреть принципиальную схему такого подключения?

Это, наверное, надо копаться в схематиках на старые отладочные платы, что-нибудь типа Stratix II. И нет факт, что удастся найти.
Да и особого смысла в этом я не вижу. Быстрее будет самому нарисовать, соответствующие мануалы и даташиты покуривши.
Stewart Little
Цитата(FLTI @ Aug 9 2013, 15:23) *
Если да, то подскажите - где бы можно было бы посмотреть принципиальную схему такого подключения?

Вот, нашел случайно. Смотрите схематик Cyclone IV Transciever Starter Kit - страницы 3, 9 и 11.
FLTI
Цитата(Stewart Little @ Aug 6 2013, 19:47) *
Когда вычисляете время загрузки, то не забывайте добавить к нему время POR (соответствующее используемому режиму) и время инициализации (т.е. время между CONF_DONE и INIT_DONE).

Это не столь большое добавочное время если использовать FAST POR:
FAST POR + ( время между CONF_DONE и INIT_DONE ) = 3мс + 0,65 мс = 3,65 мс ( данные взяты из Cyclone IV Device Handbook ).
Больше ничего не добавляется к непосредственному времени загрузки из EPCS в ПЛИС в режиме AS?
Напомню, что мне нужно выполнить PCIe wake-up time =100мс, поэтому надо всё точно учесть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.