Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Система powerPC на ките ML-403
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
nagserg
Привет всем!

Создал проект с powerPC на плате ML-403
Процессору указал частоту 300МГц
На шину PLB прицепил контроллер ввода-вывода gpio.
Написал программулину, выводящую в порт ввода-вывода 1 и 0 в цикле

так период составляет во времени больше одной микросекунды... - это с отключенным кешем.
с включенным кешем получше: около 200нсек

софт использую ISE 14.2

Просьба, кто работал с таким китом, поделитесь примером, где процессор работает с внешними устройствами на максимальной скорости..
Mad_max
Цитата(nagserg @ Dec 17 2012, 15:38) *
Просьба, кто работал с таким китом, поделитесь примером, где процессор работает с внешними устройствами на максимальной скорости..

Читайте доку на PLB шину, что бы понимать откуда берутся эти задержки и как вообще работать с периферией.
Single beat transactions где-то так и будут как Вы получили,
для максимального throughput нужно использовать Burst transactions и DMA, но это уже совсем другая история.
nagserg
Цитата(Mad_max @ Dec 17 2012, 18:04) *
для максимального throughput нужно использовать Burst transactions и DMA, но это уже совсем другая история.

Да, видимо придется DMA использовать, а вообще планируется на шину plb прицепить контроллер внешней периферии xps_epc и добиться периода цикла записи, чтения 120нсек. Получится ли добиться таких скоростей в этой конфигурации?

P.S. Сам я новичек в этом деле..

Mad_max
Цитата(nagserg @ Dec 18 2012, 11:43) *
Да, видимо придется DMA использовать, а вообще планируется на шину plb прицепить контроллер внешней периферии xps_epc и добиться периода цикла записи, чтения 120нсек. Получится ли добиться таких скоростей в этой конфигурации?
P.S. Сам я новичек в этом деле..

Единица измерения пропускной способности это количество (переданных) бит за единицу времени.
Поэтому не понятно что Вы хотите от этих 120нс, передать бит, байт или 10 Гигабайт.

Если хотите использовать xps_epc, то открывайте спеку на него и смотрите там времянки чтения/записи.
И проверьте есть ли там поддержка Burst.

В общем случае могу посоветовать использовать plb_master, но у него есть свои ограничения - максимальное количество Burst transaction 16.

Зная тактовую частоту шины (допусти 100Мгц) и ширину шины данных (32 бита) можете прикнуть пиковую пропускную способность.
16*32=512бит / 16*10=160нс.
Но средняя скорость передачи данных будет ниже, так как мастер между 16 burst вставлет паузы.
nagserg
Цитата(Mad_max @ Dec 18 2012, 12:20) *
Поэтому не понятно что Вы хотите от этих 120нс, передать бит, байт или 10 Гигабайт.

Ширина шины 16бит, вот эти 16бит надо передать за 120нсек, вернее пачку из 256х16бит, т.е каждые 120нсек 16бит.

В общем спасибо, пока в процессе..
nagserg
Здравствуйте, применительно к той же системе: есть файл powerpc_proc_v3_top.bit, есть edkBmmFile_bd.bmm и есть peripheral_tests_0.elf
В SDK в program FPGA выбираю powerpc_proc_v3_top.bit и edkBmmFile_bd.bmm и bootloop, потом запускаю на отладку peripheral_tests_0.elf и все работает.

А вот как это дело зашить в конфигурационную память (на плате стоит XCF32p) ума не приложу, есть утилита data2mem, которая вроде бы должна создать файл прошивки с программным кодом, но Data2MEM:33 - Matching ADDRESS_SPACE for code segment ttO not found in 'a.b Code segment #0 occupies [0х00000000:0x000105D3].

Есть еще impact, но она тоже не хочет генерировать.

В SDK есть пунктик program flash, но тоже ругается не понятно на что.

Подскажите, как создать конечный файл для прошивки в конфигурационную память, желательно по шагам..
Mad_max
UG437
В общем виде формат команды такой
data2mem -bm my.bmm -bd code.elf -bt my.bit -o b new.bit
потом из new.bit делаете .mcs и прошиваете флэш.
А по шагм ищите тут же на форуме, уже не раз обсуждалось.
nagserg
Цитата(Mad_max @ Dec 25 2012, 11:13) *
UG437
data2mem -bm my.bmm -bd code.elf -bt my.bit -o b new.bit

именно это и не работает: data2mem выдает ошибку:
Цитата
ERROR:Data2MEM:33 - Matching ADDRESS_SPACE for code segment #0 not found in 'my.bmm
Code segment #0 occupies [0х00000000:0x000105D3]
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.