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

Не могу запустить VIVADO + Microblaze

Прошлые мои потуги привели к тому, что я не могу запустить проект в котором Microblaze + минимальная обвязка. Сначала выбирал кристалл, сейчас уже плату, полагая, что имеется некоторое ее описание, из которого среда возьмет все, что ей необходимо. Но увы...

За основу взял плату EK-Z7-ZC702-G (просто она мне доступна), VIVADO 2022.1

Сразу оговорюсь, что на первом этапе мне достаточно просто симуляции, без синтеза даже. Опыт подобной разработки есть только на Xilinx IDE14.7, с VIVADO делаю первые шаги.

Ознакомился с некоторыми туториалами:

https://fpga-systems.ru/publ/xilinx/microblaze/razrabotka_processornoj_sistemy_na_baze_soft_processora_microblaze_v_srede_xilinx_vivado_ide_hlx_chast_2/10-1-0-7

https://www.xilinx.com/video/hardware/creating-a-simple-microblaze-design-in-ip-integrator.html

в них после добавления microblaze и минимальной обвязки с автосоединением сразу генерится bitstream без ошибок. У меня такого не получается. Всегда ругается на входной клок, что не описан пин. Описал, битстрим создал, делаю экспорт в xdc для передачи в Vitis, где планирую создать собственно тест железа для симуляции, но:

image.thumb.png.43ff95649b007e2860111c362d3ca741.png

ругается на строки:

image.thumb.png.937e07525a6400671d33cc4f3b4eb7eb.png

Клок прописан на на схеме:

image.thumb.png.bdd3d36a5868d0cd10cb624f1f66ee6c.png

image.thumb.png.659ce5f71001cc5ec6474db008350152.png

прописать пины UART на те, что в схеме не удалось, прописал на незанятые: A21, A22. Я привык к тому, что в ISE пока ничего сам руками не прописываешь, он прописывает за тебя по умолчанию и все работает, тут же что-то хочет, а что хочет - не понятно. Это уже четвертый вариант проекта, раньше выбирал просто FPGA, но постоянные ошибки вынудили пойти другим путем. Пробовал прям example упрощать, все еще хуже, т.к. я никак не могу оттуда вытравить DDR, у меня его нет и мне он не нужен, а там ошибки на констрейны, которые я даже найти не могу в проекте (ругается на описание пинов к DDR, которого у меня уже нет).

Могу запаковать сюда архив проекта. Не понимаю логику создания подобного проекта. Чтобы избежать ошибок, делал последовательно, по туториалу, но результаты не совпадают. Я понимаю, что версии VIVADO отличаются, но находил и туториал с версией VIVADO 2021.1, там тоже пины клока и ресета не описали, а битстрим собрался без ошибок, а у меня не собирается, требует прописать сам пин. Прописываю, но все равно ругается (скрин от другого варианта проекта, где указываю не плату, а модель FPGA):

image.thumb.png.5db917137515db06df025162999ad982.png

 

Изменено пользователем Vadim_nsk

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


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

А знает кто-нибудь обязательный минимум по внешним сигналам для VIVADO? Ну, например для ISE 14.7 в файле ucf можно вообще ничего не прописывать, но можно прописать размещение пина и проигнорировать сообщения об IOSTANDART и проект и соберется и просимулируется. А что тут необходимо прописать в xdc?

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


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

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


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

4 hours ago, Vadim_nsk said:

А знает кто-нибудь обязательный минимум по внешним сигналам для VIVADO? Ну, например для ISE 14.7 в файле ucf можно вообще ничего не прописывать, но можно прописать размещение пина и проигнорировать сообщения об IOSTANDART и проект и соберется и просимулируется. А что тут необходимо прописать в xdc?

В xdc обязательно нужно указывать PACKAGE_PIN и IOSTANDARD.

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


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

Quote

Спасибо, что помните :)

Но у вас там цинк же, вы точно не пины из PS части назначаете ?

Изменено пользователем KeisN13

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


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

11 minutes ago, KeisN13 said:

Спасибо, что помните :)

Но у вас там цинк же, вы точно не пины из PS части назначаете ?

 

Да, возможно вы правы

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


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

Вопрос по клоку снят...

Изменено пользователем Vadim_nsk

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


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

On 8/23/2022 at 1:10 PM, Vadim_nsk said:

Вопрос по клоку снят...

 

Ну отлично, а проблема та в чем была

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


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

14 hours ago, KeisN13 said:

Ну отлично, а проблема та в чем была

Да, нет, просто я сообщение по клоку писал, его могли прочитать. Глупость я в нем сморозил. А удалить сообщение нельзя. Вот я и поправил его таким вот образом. Проблема никуда не делась. Создал новый проект с чистого листа, убрал reset отовсюду на первом этапе, оставил только клок:

1864439564_2022-08-24092603.thumb.png.9cd48827cf556a93eae5b7bd9c6d659c.png

После синтеза описал пин клока:

set_property IOSTANDARD LVCMOS18 [get_ports clk_100MHz]
set_property PACKAGE_PIN U14 [get_ports clk_100MHz]

Синтез и имплементация прошли. Далее делаю экспорт железа для Vitis:

824005514_2022-08-24091218.png.aed85ca3e06399ce882729868d17811a.png

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

На всякий случай, мой последний проект: https://drive.google.com/file/d/1fueIoB_GTj3uEVPW-TIMy5oIwDPcCLqD/view?usp=sharing

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


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

ЕМНП default clk это вроде как свойство сигнала в BD, надо тыкнуть на цепь и поставить этот крыжик. 

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


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

7 minutes ago, des00 said:

ЕМНП default clk это вроде как свойство сигнала в BD, надо тыкнуть на цепь и поставить этот крыжик. 

А где этот крыжик найти? В BD ни у сигнала, ни у пина, ни в clk_wiz я ничего такого не вижу

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


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

20 minutes ago, Vadim_nsk said:

А где этот крыжик найти? В BD ни у сигнала, ни у пина, ни в clk_wiz я ничего такого не вижу

похоже я вас обманул, перепутал с ассоциацией частоты для интерфейса при генерации корок. Вообще, как мне кажется, подобные свойства должны быть в каком то из xdc файлов, правда какая структура у витиса я не в курсе. В старых вивадо, подобного свойства не было, просто создавался файл типа такого 

Quote

################################################################################

# This XDC is used only for OOC mode of synthesis, implementation
# This constraints file contains default clock frequencies to be used during
# out-of-context flows such as OOC Synthesis and Hierarchical Designs.
# This constraints file is not used in normal top-down synthesis (default flow
# of Vivado)
################################################################################
create_clock -name clk -period 10.204 [get_ports clk]
################################################################################
 

и лежал рядом с BD. Правда назначение у него другое, как указано в шапке. 

Можно в хелпе поискать что это за атрибут is_default.

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


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

Полезная статья для ничего не понимающих, но нуждающихся в результате: https://blog.csdn.net/yihuajack/article/details/120714268

Осталась еще одна ошибка, но я пока не понял на что она влияет:

image.thumb.png.e3d4f1567f7b5c4b7bf304ee41e5afa6.png

Вроде требует что-то указать для AXI-шины, но что бы я ни указывал, он ругается, что это не то. А в таком виде экспорт железа получился, а значок ошибки ни на что пока не влияет.

А не работало вот что:

image.thumb.png.bc72df1e22e19843597e5ad0ebd0de59.png

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

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


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

3 hours ago, Vadim_nsk said:

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

во. как раз про нее я и помнил, но я с ней сталкивался в IP Packager, не знал что в общем дизайне оно тоже есть

3 hours ago, Vadim_nsk said:

Во всех инструкциях этого этапа нет, как нет и ручного прописывания констрейна пинов.

констрейны на пины это классика так то. тем более у хилых, это у альтеры можно было разложить пины как фишка ляжет, а тут нини. Особенно интересно со спец пинами типа GTP/GTX, если объявил их в топе, то обязательно подключи и объяви в xdc, иначе битстрим не собирается. Ну или нужно их закомментарить.

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


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

А у меня одного VIVADO так дико тупит при открытии design_wrapper.vhd? Ну, реально, по 20 минут висит. То ли она анализатором кода там шарит. Когда свой компонент правил, тоже такое было, но там я тупо открывал данный файл в notepad++ и правил.

И еще. Как правильно создавать testbench для design_wrapper.vhd ? Ну, я пока планирую только клок загенерить. Симуляция запускается, я уже проверил. Я привык к халяве в виде ActiveHDL, где на файле правой кнопкой и "create Testbench". И вуаля... Просто тут он же сам эту обертку генерирует из BD. Не грохнул бы мне мои труды ненароком.

Заменил ему штатный редактор на notepad++, теперь эта красава видит с другим окошком:

image.png.2e833389706a5472402688981eed65b4.png

Издевается, не?

Файл пустой, длина 0. Доступен для чтения и записи... С VIVADO 2019 была та же история

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


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

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

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

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

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

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

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

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

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

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