реклама на сайте
подробности

 
 
> как вставить HPS часть в свой проект FPGA
nmurzin
сообщение Apr 27 2017, 07:59
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141



Здравствуйте.
Зашел в тупик из которого пока не знаю где смотреть.
Работаю с CyclonV SoC.
Есть у меня проект для FPGA части сделанный на Quartus 16.1 без использования Qsys.
Хочу добавить HPS часть, чтобы хотя бы светодиодом помигать.

Открыл свой проект в квартусе.
Запустил Qsys.
Сохранил Qsys систему в поддиректории с именем <ПАПКА ПРОЕКТА>\HPS\HardProcSys.qsys
Добавил мегафункцию Hard Processor Sysytem.
Нажал кнопку "Generate HDL", и вышел из Qsys.
В результате на диске появились следующие файлы
<ПАПКА ПРОЕКТА>\HPS\HardProcSys\synthesis\HardProcSys.qip
<ПАПКА ПРОЕКТА>\HPS\HardProcSys\synthesis\HardProcSys.vhd

Вопрос - как мне теперь вставить HPS часть в свой проект FPGA на квартусе???

Я добавил в проект файл HardProcSys.qip
И хочу вставить в свой файл верхнего уровня компонент HardProcSys.vhd
Но дальше надо будет назначать пины.
А я помню, что когда я в PinPlaner пытался в FPGA проекте назначить пин из HPS части, то PinPlaner не позволял это сделать.

Как же прикрутить HPS часть???
Может для нее надо создавать отдельный проект и выбирать отдельную микросхему?
FPGA часть и HPS часть это части одного проекта в квартусе, или это должны быть два разных проекта?






Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
nmurzin
сообщение Apr 27 2017, 12:41
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 24-11-10
Из: г.Зеленоград
Пользователь №: 61 141



Но ведь модуль сгенерированный Qsys содержит например пины интерфейса DDR3, которые имеют имена типа mem_*
Куда мне девать эти ноги? Зачем он мне их выкатил?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Apr 27 2017, 13:14
Сообщение #3


Любитель
*****

Группа: Свой
Сообщений: 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 для пинов памяти нужна:
Прикрепленное изображение


Как правило файлы с назначениями идут в комплекте с обучающими платами для разработок, там и примеры есть, на базе которых не так сложно разобраться...
Go to the top of the page
 
+Quote Post
dxp
сообщение Apr 28 2017, 09:08
Сообщение #4


Adept
******

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



QUOTE (sonycman @ Apr 27 2017, 20:14) *
Затем "выкатил", что HPS не может работать без внешней SDRAM памяти, она необходима.

А вот это, кстати, не понятно, почему она именно необходима? Что мешает процу работать с OCM, тем более, что при старте он только так и работает? И ещё там QSys генерит пачку HDL исходников тоже на тему DDR контроллера, хотя в конфигурации со стороны ПЛИС никаких заявок на работу с DDR нет. Вот зачем это?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
sonycman
сообщение Apr 28 2017, 13:31
Сообщение #5


Любитель
*****

Группа: Свой
Сообщений: 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ом, и чтобы его память также была внутри чипа.
Но не судьба пока что, к сожалению.
Приходится "баловаться" с монстрами 05.gif

Цитата(dxp @ Apr 28 2017, 13:08) *
Что мешает процу работать с OCM, тем более, что при старте он только так и работает?

При старте процессор, всё же, наверное выполняет код в ROM, так как в OCM пусто.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 12:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016