|
как вставить HPS часть в свой проект FPGA |
|
|
|
 |
Ответов
|
Apr 27 2017, 13:14
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(nmurzin @ Apr 27 2017, 16:41)  Но ведь модуль сгенерированный Qsys содержит например пины интерфейса DDR3, которые имеют имена типа mem_* Куда мне девать эти ноги? Зачем он мне их выкатил? Затем "выкатил", что HPS не может работать без внешней SDRAM памяти, она необходима. В моём случае файл верхнего уровня имеет внешние пины для DDR3 памяти: Код module top ( ////////// HPS ///////// ///////// DDR3 ///////// output [14:0] HPS_DDR3_ADDR, output [2:0] HPS_DDR3_BA, output HPS_DDR3_CAS_N, output HPS_DDR3_CKE, output HPS_DDR3_CK_N, output HPS_DDR3_CK_P, output HPS_DDR3_CS_N, output [3:0] HPS_DDR3_DM, inout [31:0] HPS_DDR3_DQ, inout [3:0] HPS_DDR3_DQS_N, inout [3:0] HPS_DDR3_DQS_P, output HPS_DDR3_ODT, output HPS_DDR3_RAS_N, output HPS_DDR3_RESET_N, input HPS_DDR3_RZQ, output HPS_DDR3_WE_N, к которым подсоединяются выводы memory_* модуля HPS: Код system u0 ( .memory_mem_a (HPS_DDR3_ADDR), .memory_mem_ba (HPS_DDR3_BA), .memory_mem_ck (HPS_DDR3_CK_P), .memory_mem_ck_n (HPS_DDR3_CK_N), .memory_mem_cke (HPS_DDR3_CKE), .memory_mem_cs_n (HPS_DDR3_CS_N), .memory_mem_ras_n (HPS_DDR3_RAS_N), .memory_mem_cas_n (HPS_DDR3_CAS_N), .memory_mem_we_n (HPS_DDR3_WE_N), .memory_mem_reset_n (HPS_DDR3_RESET_N), .memory_mem_dq (HPS_DDR3_DQ), .memory_mem_dqs (HPS_DDR3_DQS_P), .memory_mem_dqs_n (HPS_DDR3_DQS_N), .memory_mem_odt (HPS_DDR3_ODT), .memory_mem_dm (HPS_DDR3_DM), .memory_oct_rzqin (HPS_DDR3_RZQ), Роутер их подхватывает и автоматически разводит на нужное место, так как это hard controller. Там ещё куча assigments для пинов памяти нужна:
Как правило файлы с назначениями идут в комплекте с обучающими платами для разработок, там и примеры есть, на базе которых не так сложно разобраться...
|
|
|
|
|
Apr 28 2017, 09:08
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (sonycman @ Apr 27 2017, 20:14)  Затем "выкатил", что HPS не может работать без внешней SDRAM памяти, она необходима. А вот это, кстати, не понятно, почему она именно необходима? Что мешает процу работать с OCM, тем более, что при старте он только так и работает? И ещё там QSys генерит пачку HDL исходников тоже на тему DDR контроллера, хотя в конфигурации со стороны ПЛИС никаких заявок на работу с DDR нет. Вот зачем это?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 28 2017, 13:31
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(dxp @ Apr 28 2017, 13:08)  А вот это, кстати, не понятно, почему она именно необходима? Что мешает процу работать с OCM, тем более, что при старте он только так и работает? И ещё там QSys генерит пачку HDL исходников тоже на тему DDR контроллера, хотя в конфигурации со стороны ПЛИС никаких заявок на работу с DDR нет. Вот зачем это? Я сделал такой вывод потому, что в настройках HPS модуля в разделе SDRAM нельзя отключить память. Если инстанциируется HPS - то он будет вместе с DDR SDRAM. Я бы вот также хотел бы видеть на рынке хорошую FPGA с менее "жирным" хардовым ARMом, и чтобы его память также была внутри чипа. Но не судьба пока что, к сожалению. Приходится "баловаться" с монстрами  Цитата(dxp @ Apr 28 2017, 13:08)  Что мешает процу работать с OCM, тем более, что при старте он только так и работает? При старте процессор, всё же, наверное выполняет код в ROM, так как в OCM пусто.
|
|
|
|
|
Apr 28 2017, 14:01
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (sonycman @ Apr 28 2017, 20:31)  Я сделал такой вывод потому, что в настройках HPS модуля в разделе SDRAM нельзя отключить память. Если инстанциируется HPS - то он будет вместе с DDR SDRAM. Вот это-то и странно! Впрочем, там хватает "странностей", начиная от упомянутых HDL файлов для DDR контроллера, хотя оный не заявлен для доступа со стороны ПЛИС, и заканчивая необходимостью проводить синтез (соответственно, и создавать HDL проект) только для того, чтобы получить файлы поддержки для процессора. Я отношу это сугубо к кривизне дизайна. При ровном дизайне Qsys и должен бы сгенерить все эти файлы. Подозреваю, что причины тянутся к NIOS'у - поскольку это софтовое ядро, то его по любому надо синтезировать, ну а генерацию файлов сделали на этапе ассемблера. Теперь хотя ядро железное, но файлы всё равно генерятся ассемблером, это вынуждает юзера проводить синтез, хотя по здравому смыслу это было бы не нужно - это подтверждается тем, что, например, в Vivado этого делать не надо, достаточно того, что генерит аналог Qsys - IP Integrator. QUOTE (sonycman @ Apr 28 2017, 20:31)  Я бы вот также хотел бы видеть на рынке хорошую FPGA с менее "жирным" хардовым ARMом, и чтобы его память также была внутри чипа. Вот есть с М3  Правда, не знаю, насколько это по вашим меркам хорошая FPGA. Но, имхо, она по мощи где-то соответствует Cortex-M3, т.е решение сбалансированное. QUOTE (sonycman @ Apr 28 2017, 20:31)  При старте процессор, всё же, наверное выполняет код в ROM, так как в OCM пусто. Да, прямо первые такты, конечно, из BOOTROM железно зашитый загрузчик, но дальше этот код грузит программу в OCM и дальше собственно пользовательская программа уже живёт в этой памяти. Я это имел в виду. И то, что какая-то жизнь без SDRAM всё же есть, поэтому жёсткое безусловное навязывание DDR контроллера выглядит грубым.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 28 2017, 14:25
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(dxp @ Apr 28 2017, 18:01)  Вот это-то и странно! Впрочем, там хватает "странностей", начиная от упомянутых HDL файлов для DDR контроллера, хотя оный не заявлен для доступа со стороны ПЛИС... Есть вариации чипов с двумя хардовыми DDR SDRAM контроллерами - один (обязательный) для HPS, и второй (опциональный) для FPGA. Может, это к нему относится? Цитата например, в Vivado этого делать не надо А у Цинков можно использовать MPU без SDRAM контроллера? Цитата Вот есть с М3 Да, спасибо, тоже интересный вариант.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|