Перейти к содержанию
    

Система powerPC на ките ML-403

Привет всем!

 

Создал проект с powerPC на плате ML-403

Процессору указал частоту 300МГц

На шину PLB прицепил контроллер ввода-вывода gpio.

Написал программулину, выводящую в порт ввода-вывода 1 и 0 в цикле

 

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

с включенным кешем получше: около 200нсек

 

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

 

Просьба, кто работал с таким китом, поделитесь примером, где процессор работает с внешними устройствами на максимальной скорости..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просьба, кто работал с таким китом, поделитесь примером, где процессор работает с внешними устройствами на максимальной скорости..

Читайте доку на PLB шину, что бы понимать откуда берутся эти задержки и как вообще работать с периферией.

Single beat transactions где-то так и будут как Вы получили,

для максимального throughput нужно использовать Burst transactions и DMA, но это уже совсем другая история.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для максимального throughput нужно использовать Burst transactions и DMA, но это уже совсем другая история.

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, видимо придется 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 вставлет паузы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

В общем спасибо, пока в процессе..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, применительно к той же системе: есть файл 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, но тоже ругается не понятно на что.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UG437

В общем виде формат команды такой

data2mem -bm my.bmm -bd code.elf -bt my.bit -o b new.bit

потом из new.bit делаете .mcs и прошиваете флэш.

А по шагм ищите тут же на форуме, уже не раз обсуждалось.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...