Drakonof 0 22 октября, 2019 Опубликовано 22 октября, 2019 · Жалоба Всем привет, подскажите пожалуйста, как правильно подключить ddr к microScale? Задача для многих простая, но боюсь что я подвис. Дело в том что проц удержеваеться в ресете при дэбаге в SDK. Использую отладку, но при создание проекта абстрагировался от нее и выбрал просто плисину. Vivado 2018.3 Artix 7 Constraint file: set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design] set_property CFGBVS VCCO [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] set_property PACKAGE_PIN P6 [get_ports {reset}] set_property IOSTANDARD SSTL15 [get_ports {reset}] set_property PACKAGE_PIN U19 [get_ports {tx}] set_property IOSTANDARD LVCMOS18 [get_ports {tx}] set_property PACKAGE_PIN T19 [get_ports {rx}] set_property IOSTANDARD LVCMOS18 [get_ports {rx}] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 22 октября, 2019 Опубликовано 22 октября, 2019 · Жалоба Не видно ж ничего на картинке. Контроллер ддр стартует, калибровку проходит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 22 октября, 2019 Опубликовано 22 октября, 2019 (изменено) · Жалоба изображение сжимается. я тут пдфку с хорошей точностью кинул, если кому не лень посмотрите пжлст. ddr3.pdf 12 минут назад, alexadmin сказал: Контроллер ддр стартует, калибровку проходит? если честно я даже в дебаг зайти не могу, выскакивает ошибка, что процессор в ресете и на этом всё... Изменено 22 октября, 2019 пользователем Драконофф Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 октября, 2019 Опубликовано 22 октября, 2019 · Жалоба 25 minutes ago, Драконофф said: если честно я даже в дебаг зайти не могу, выскакивает ошибка, что процессор в ресете и на этом всё... полярность ресета точно не перепутана? без мига, проц работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 22 октября, 2019 Опубликовано 22 октября, 2019 · Жалоба 1 hour ago, Драконофф said: изображение сжимается. я тут пдфку с хорошей точностью кинул, если кому не лень посмотрите пжлст. если честно я даже в дебаг зайти не могу, выскакивает ошибка, что процессор в ресете и на этом всё... 1. У вас сброс от ддр3 заведен обратно на ддр3, а надо бы на микроблейз. Достаточно оставить один блок System Reset. 2. Ядро миг обычно прямо в Hardware manager показывает свой статус, можно посмотреть там. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 23 октября, 2019 Опубликовано 23 октября, 2019 (изменено) · Жалоба 15 часов назад, des00 сказал: полярность ресета точно не перепутана? без мига, проц работает? Полярность проверил везде, начиная с кнопки на борде (порт reset), высокий уровень, но меня смущает что из processor system reset выходит инверсный peripheral_areset и идет в не инверсные входы SO0_ARESETN ... MO1_ARESETN в AXI Interconnect и дальше разветвляется на инверсные aresetn у MIG и s_axi_aresetn у AXI Uartlite. SO0_ARESETN ... MO1_ARESETN - судя по букве N в конце названий входных пинов Interconnect'a они также инверсные, но на изображение этих выводов не стоят кругляшки как у выше приведенных aresetn'ов. без MIG'a я ставлю clock wizard, где определяю выходную частоту, втыкаю в него входную частоту определенную в констрейнте через пин соответствующий разводке платы, ресет также с кнопки на Processor System Reset в пин ext_reset и всё норм поднимается, хеллоу вордиться и ресетется. Тут, как я понимаю уже MIG раздаёт частоту, что бы было соответствие частотных доменов, с ножек которых я определил при создание этого IP. Моё дело просто поставить порты соответсвующие установки MIG'а названиями. Как я понимаю MIG сам сгенерит констрейнт где и опишет эти порты. А те ножки которые я определил для cas, ras, dqs ... которые также будут описаны в MIG'овском констрейнте, они то как определяться выходными портами?? На рисунке, как и в проекте, они стоять интерфейсом созданным по команде Make External это они просто так возьмут и соответсвено настройкам подхватятся? Или нужно нажать плюсик у IP'шного интерфейса и самому создать порты с соотвествующими MIG'овскому констрейнту именами? Изменено 23 октября, 2019 пользователем Драконофф Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба 15 часов назад, alexadmin сказал: . У вас сброс от ддр3 заведен обратно на ддр3, а надо бы на микроблейз. Достаточно оставить один блок System Reset. Поправил, но microBlaze удержан в ресете. Извините за пдф, но иначе качество страдает и действительно нифига не видно. ddr3.pdf 15 часов назад, alexadmin сказал: Ядро миг обычно прямо в Hardware manager показывает свой статус, можно посмотреть там. Чет я не вижу где это, перерыл весь Hardware Manager. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба 15 minutes ago, Драконофф said: Поправил, но microBlaze удержан в ресете. А откуда берётся Клок на схеме? Клоковый net есть, но никакого генератора или даже напрямую с порта ничего не приходит. Что-то не то. UPD По поводу полярности ресетов - не переживайте. Если написано ARESETN значит он инверсный, а отсутствие кружочка - это просто визард так сконфигурирован. А вот, кстати, порт ARESETN блока AXI Interconnect лучше ресетить с порта interconnect_aresetn блока Processor System Reset, в то время, как остальные ресеты подключены правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба 21 minutes ago, Драконофф said: Чет я не вижу где это, перерыл весь Hardware Manager. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 23 октября, 2019 Опубликовано 23 октября, 2019 (изменено) · Жалоба 27 минут назад, Nick_K сказал: Клоковый net есть, но никакого генератора или даже напрямую с порта ничего не приходит. Что-то не то. Извините я не совсем понял куда не приходит? Вроде клок заходит в MIG а дальше из пина ui_ckl MIG'а идет по схеме. Если отводить клок из порта sys_clk_p в clock_wizard то появляются ошибки доменности тактирования. 27 минут назад, Nick_K сказал: ARESETN блока AXI Interconnect лучше ресетить с порта interconnect_aresetn Спасибо, мог бы и сам заметить)) названия же соответствуют)))) 20 минут назад, doom13 сказал: Чет я не вижу где это, перерыл весь Hardware Manager. У меня как то так) Изменено 23 октября, 2019 пользователем Драконофф Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба 45 minutes ago, Драконофф said: Извините я не совсем понял куда не приходит? Вроде клок заходит в MIG а дальше из пина ui_ckl MIG'а идет по схеме. Если отводить клок из порта sys_clk_p в clock_wizard то появляются ошибки доменности тактирования. У Вас нет референсной частоты. От слова совсем. то что там какая-то частота идёт на DDR - это её проблемы. Каждый проект обязан иметь клоковую частоту. Она обычно генерируется внешним генератором и заходит на порт clock - это будет Ваша опорная частота. Дальше её очень желательно пропустить через PLL/DCM/MMCM и сгенерировать внутренний клоковый сигнал (пусть и такой же частоты) а потом этот клок заводить на процессор, периферию и т.д. У Вас на схеме сигнал, заходящий на порт Clk МикроБлейза не сформирован нигде. Вот и проблемы вылазят. UPD Приаттачил картинку примера Микроблейза. Красным обведён недостающий базовый блок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба 1 hour ago, Nick_K said: У Вас нет референсной частоты. От слова совсем. то что там какая-то частота идёт на DDR - это её проблемы. На мой взгляд у автора все сделано честно - внешняя частота приходит на ддр, он порождает основную на которой все должно работать. Нюанс в том, что если контроллер ддр не запускается, то пользовательской частоты не будет, что, похоже, и происходит ;) Я бы проверил внимательно подачу внешней частоты. Кстати, только сейчас заметил что их две зачем-то, но я с MIG 7-series не работал . Не забыть атрибуты DIFF_TERM если нужны для диф. входов. Выходы locked и calib_complete подать на светодиоды, чтобы понимать, что происходит. Ну и полярность ресета контролировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 23 октября, 2019 Опубликовано 23 октября, 2019 (изменено) · Жалоба 1 час назад, Nick_K сказал: У Вас нет референсной частоты Да, теперь понял. Сделал теперь так. Назначил ножки: set_property PACKAGE_PIN R3 [get_ports {clk_ref_p}] set_property IOSTANDARD LVDS_25 [get_ports {clk_ref_p}] set_property PACKAGE_PIN P3 [get_ports {clk_ref_n}] set_property IOSTANDARD LVDS_25 [get_ports {clk_ref_n}] В настройках MIG'а для обеих частот поставил опцию No Buffer, появились ошибки в rfoutr_design: [DRC PDRC-34] MMCM_adv_ClkFrequency_div_no_dclk: The computed value 216.667 MHz (CLKIN1_PERIOD, net pll_clk3) for the VCO operating frequency of the MMCME2_ADV site MMCME2_ADV_X1Y2 (cell ddr3_i/mig_7series_0/u_ddr3_mig_7series_0_1_mig/u_ddr3_infrastructure/gen_mmcm.mmcm_i) falls outside the operating range of the MMCM VCO frequency for this device (600.000 - 1440.000 MHz). The computed value is (CLKFBOUT_MULT_F * 1000 / (CLKINx_PERIOD * DIVCLK_DIVIDE)). Please run update_timing to update the MMCM settings. If that does not work, adjust either the input period CLKINx_PERIOD (36.923077), multiplication factor CLKFBOUT_MULT_F (8.000000) or the division factor DIVCLK_DIVIDE (1), in order to achieve a VCO frequency within the rated operating range for this device. [DRC PDRC-43] PLL_adv_ClkFrequency_div_no_dclk: The computed value 216.667 MHz (CLKIN1_PERIOD, net clk_out1) for the VCO operating frequency of the PLLE2_ADV site PLLE2_ADV_X1Y2 (cell ddr3_i/mig_7series_0/u_ddr3_mig_7series_0_1_mig/u_ddr3_infrastructure/plle2_i) falls outside the operating range of the PLL VCO frequency for this device (800.000 - 1866.000 MHz). The computed value is (CLKFBOUT_MULT_F * 1000 / (CLKINx_PERIOD * DIVCLK_DIVIDE)). Please adjust either the input period CLKINx_PERIOD (6.000000), multiplication factor CLKFBOUT_MULT_F (13) or the division factor DIVCLK_DIVIDE (10), in order to achieve a VCO frequency within the rated operating range for this device. Сделал по рекомендации ошибок, ничего не исправилось, кроме того что ошибки стали рекомендовать другие значения... 15 минут назад, alexadmin сказал: Кстати, только сейчас заметил что их две зачем-то, но я с MIG 7-series не работал Да я бы оставил только диф sys_clk, а ref_clk отключил бы, та он не исчезает как пин, не нашел как его отключить. ddr3.pdf Изменено 23 октября, 2019 пользователем Драконофф Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 23 октября, 2019 Опубликовано 23 октября, 2019 (изменено) · Жалоба 42 минуты назад, alexadmin сказал: locked в единице 42 минуты назад, alexadmin сказал: calib_complete в нуле не радует... https://forums.xilinx.com/t5/Processor-System-Design/MicroBlaze-tutorial-UG940-adapted-to-AC701-eval-board/m-p/489884/highlight/false#M12575 моя проблема один в один, только в решение ref_clk отключено, у меня же оно не отключается) Изменено 23 октября, 2019 пользователем Драконофф Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drakonof 0 23 октября, 2019 Опубликовано 23 октября, 2019 (изменено) · Жалоба В общем заработало, я сделал генерацию дополнительного тактового сигнала из MIG'а и завел на clk_ref настроенный как No Buffer. Причина erarta в плате, ножки предназначенные для clk_ref не генерят частоту. плата AC701 Если кому-нибудь поможет вот решение: sys_clk с дифпары R3/P3 200МГц ref_clk с генерируемой частоты 204МГц ddr3.pdf Изменено 23 октября, 2019 пользователем Драконофф Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться