videoscan 0 25 мая, 2016 Опубликовано 25 мая, 2016 · Жалоба Та у меня сейчас тоже рутина навалилась,отложил пока разработки. Последнее что придумалось - если контроллер DDR создавать не из IP Catalog, а из QSYS то мы получим папку с исходниками контроллера. Вот и мелькнула мысль тупо скомпилить эти исходники в симуляторе. Попробовал, но споткнулся на библиотеках. Я пишу на VHDL поэтому подключение верилоговских библиотек меня просто ставит в ступор. Пока отложил. Если бы кто-то из интересующихся этой темой любителей верилога проверил этот путь было бы замечательно. Столкнулся с той же проблемой. Есть желание отсимулировать DDR3, но не получается. Однако мною обнаружено следующее. Я работаю в 14.1 Квартусе. Скачал 15.1. Поставил и наблюдаю интерестную вещь. При генерации HDML файлов в QSYS от 15.1 квартуса выдается некая наводка, как править скрипты для симуляции IP: Для сравнения 14-1 Квартус писал так: Пошел изучать наводку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 25 мая, 2016 Опубликовано 25 мая, 2016 · Жалоба DDR and DDR2 SDRAM ECC от altera Reference Design Во вложении проект на VHDL с тестбенчем an415.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 25 мая, 2016 Опубликовано 25 мая, 2016 · Жалоба Столкнулся с той же проблемой. Есть желание отсимулировать DDR3, но не получается. Однако мною обнаружено следующее. Я работаю в 14.1 Квартусе. Скачал 15.1. Поставил и наблюдаю интерестную вещь. При генерации HDML файлов в QSYS от 15.1 квартуса выдается некая наводка, как править скрипты для симуляции IP: Для сравнения 14-1 Квартус писал так: Пошел изучать наводку. 2 videoscan: напишите в личку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 25 мая, 2016 Опубликовано 25 мая, 2016 · Жалоба 2 videoscan: напишите в личку здесь поделиться не желаете? ;) Возможно другим Ваш ответ тоже будет полезен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 25 мая, 2016 Опубликовано 25 мая, 2016 · Жалоба здесь поделиться не желаете? ;) Возможно другим Ваш ответ тоже будет полезен Если поднимет автор - пусть он отчет и пишет :) А я ему как коллеге по борьбе с изображениями помогу, но писать не буду Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeneS 0 26 мая, 2016 Опубликовано 26 мая, 2016 · Жалоба DDR and DDR2 SDRAM ECC от altera Reference Design Во вложении проект на VHDL с тестбенчем Это не UniPHY, а старый ALTMEMPHY контроллер. Небольшой оффтопик: для Arria 10 Altera форсит External Memory Interface (EMIF) IP, так что UniPHY тоже старый. :maniac: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
videoscan 0 26 мая, 2016 Опубликовано 26 мая, 2016 · Жалоба Если поднимет автор - пусть он отчет и пишет :) А я ему как коллеге по борьбе с изображениями помогу, но писать не буду Если получу удобоваримый и полезный обществу результат - напишу. Это не UniPHY, а старый ALTMEMPHY контроллер. Небольшой оффтопик: для Arria 10 Altera форсит External Memory Interface (EMIF) IP, так что UniPHY тоже старый. :maniac: Это да. Все так быстро меняется от версии к версии, что уследить тяжело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 27 мая, 2016 Опубликовано 27 мая, 2016 · Жалоба У меня скрипт почти весь отрабатывается без ошибок, только в конце спотыкается на следующей строке: vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L arriav -L rtl_work -L work -L myDDR2q -voptargs="+acc" top_tb Причём ошибок вагон с тележкой. Подскажите,уважаемые знатоки,что бы это значило? Вот строки из указанного файла начиная со строки 210: defparam uaddress_pad.extend_oe_disable = "UNUSED", uaddress_pad.intended_device_family = DEVICE_FAMILY, uaddress_pad.invert_output = "OFF", uaddress_pad.lpm_hint = "UNUSED", uaddress_pad.lpm_type = "altddio_out", uaddress_pad.oe_reg = "UNUSED", uaddress_pad.power_up_high = "OFF", uaddress_pad.width = MEM_ADDRESS_WIDTH; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 27 мая, 2016 Опубликовано 27 мая, 2016 · Жалоба У меня скрипт почти весь отрабатывается без ошибок, только в конце спотыкается на следующей строке: vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L arriav -L rtl_work -L work -L myDDR2q -voptargs="+acc" top_tb Причём ошибок вагон с тележкой. Подскажите,уважаемые знатоки,что бы это значило? Вот строки из указанного файла начиная со строки 210: defparam uaddress_pad.extend_oe_disable = "UNUSED", uaddress_pad.intended_device_family = DEVICE_FAMILY, uaddress_pad.invert_output = "OFF", uaddress_pad.lpm_hint = "UNUSED", uaddress_pad.lpm_type = "altddio_out", uaddress_pad.oe_reg = "UNUSED", uaddress_pad.power_up_high = "OFF", uaddress_pad.width = MEM_ADDRESS_WIDTH; попробуйте отключить оптимизацию "voptargs="+acc" использовав "-novopt" пример скрипта с оптимизацией и без vsim -t 1ns -L altera -L lpm -L sgate -L altera_mf -L stratixiv -L work -voptargs="+acc" work.dsp_test vsim -t 100ps -L altera -L lpm -L sgate -L altera_mf -L stratixiv -L work -novopt work.dsp_test Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 27 мая, 2016 Опубликовано 27 мая, 2016 · Жалоба попробуйте отключить оптимизацию "voptargs="+acc" использовав "-novopt" пример скрипта с оптимизацией и без vsim -t 1ns -L altera -L lpm -L sgate -L altera_mf -L stratixiv -L work -voptargs="+acc" work.dsp_test vsim -t 100ps -L altera -L lpm -L sgate -L altera_mf -L stratixiv -L work -novopt work.dsp_test Спасибо! Это первое что мне пришло в голову вчера, совершенно ничего не изменяется, ошибки те же. Извиняюсь,пропустил ключ -novopt, с ним вроде пошло дальше , но ошибок стало больше и они другие. Теперь пошли ошибки симуляции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
videoscan 0 27 мая, 2016 Опубликовано 27 мая, 2016 · Жалоба Докладываю текущую ситуацию. Мои действия: У меня Quartus 14.1 купленный. Работа пишется для Arria V (есть в наличии Arria V Development Kit). Нужен интерфейс DDR3. Проект написан на VHDL. Контроллер памяти сделан на QSYS. 1. Проект создан. Из GUI Quartus я запускаю RTL simulation. При этом вызывается ModelSim Altera Start Edition и автоматически запускается программа сборки библиотек проекта. 2. Дальше мне надо откомпилировать testbensh, что я делаю из GUI ModelSim командой Compile|compile/. После этого в библиотеке Work появляется еще и мой testBensh. 3. Далее вызываю Simulation|Start Simulation и указываю на файл testBensh. При этом появляется диагностика "Warning: (vsim-3473) Component instance "mem_if_ddr3_emif_0 : sdram_v1_mem_if_ddr3_emif_0" is not bound" и производится повторная сборка всех библиотек (опять же work создается в том числе). В окне Object ModelSim появляются список сигналов, которые можно смотреть, но память в симуляторе не оживает. 4. Сборка компонента sdram_v1_mem_if_ddr3_emif_0 описана в файле msim_setup.tcl в который сгенерирован QSYS для компонента DDR3. 5. Влезаю в файл msim_setup.tcl и пытаюсь его запустить (немного подредактировав). 6. При попытке чтения одного из файлов субмодуля - ругается. ** Error: (vlog-7) Failed to open design unit file "./../submodules/mentor/altera_merlin_slave_translator.sv" in read mode. Я посмотрел на этот файл - а он закодирован! типа: `pragma protect begin_protected `pragma protect version = 1 `pragma protect encrypt_agent = "Model Technology", encrypt_agent_info = "DEV-6.6" `pragma protect author = "Altera" `pragma protect data_method = "aes128-cbc" `pragma protect key_keyowner = "MTI" , key_keyname = "MGC-DVT-MTI" , key_method = "rsa" `pragma protect key_block encoding = (enctype = "base64", line_length = 64, bytes = 128) H5SdFtKX3sxZ5d8fD91rl7piWFK+iK95Pvs3J5JdmJXCYd2RAKtPOwRcMxh+Bjyp G5VIQiK7bFCX1Rtic/d8I3BLbIYy3bKEzO6YZie95mziqLx3qKftEV/eDo1VD+zy MQbBEHzhgqBVWceph4S3P0fpppzR39xqdBqHdhX+qDY= `pragma protect data_block encoding = (enctype = "base64", line_length = 64, bytes = 17584) BBS0gVDFJl5fGtindDy6AEdOE8+SqXnOl9jG4GB5XszVQRWC3sjXsb0Nnekd3Io8 lcPdzgH9EZ8771GrnJjCZnNhRRYhKFzBObv63p5wCXUXio4ouPYaq/yf2zsRSQ0W ...... Как этот так? Что Quartus кривой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeneS 0 29 мая, 2016 Опубликовано 29 мая, 2016 · Жалоба 2. Дальше мне надо откомпилировать testbensh, что я делаю из GUI ModelSim командой Compile|compile/. После этого в библиотеке Work появляется еще и мой testBensh. 3. Далее вызываю Simulation|Start Simulation и указываю на файл testBensh. При этом появляется диагностика "Warning: (vsim-3473) Component instance "mem_if_ddr3_emif_0 : sdram_v1_mem_if_ddr3_emif_0" is not bound" Все должно работать, если забыть про GUI ModelSim и пользоваться процедурами из ..\mentor\msim_setup.tcl. Пример - ..\mentor\run.do Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 24 августа, 2016 Опубликовано 24 августа, 2016 · Жалоба Комментирую по просьбе из соседней темы. Я этим занимался 3 года назад и на 12.3. Поэтому мало чего уже помню в деталях, да и что-то могло и поменяться. Начинал, как сейчас помню, с запуска тестбенчей, сгенеренных вместе с ядром. Советую ТС тоже этим заняться, а потом уже что-то свое делать. Все должно работать, если забыть про GUI ModelSim и пользоваться процедурами из ..\mentor\msim_setup.tcl. Пример - ..\mentor\run.do Тоже что-то такое помню, что запускались эти тестбенчи как-то не по-русски. Деталей не помню. Что касается картинки, на которой все данные хххХХХХхххх. Вообще, это нормально. Там надо какое-то время (симуляции) чтобы оно подумало, прежде чем начнет подавать признаки жизни. Скорее всего, где-то там должна быть галочка про сокращение времени инициализации в симуляторе (не уверен). В тестбенч советую добавить всяких сигналов типа init_done, reset_done или какие там еще есть. В принципе, все оно ок работает (ну, может, в новых версиях не работает, в старых работало). В любом случае, надо сначала запустить в симуляторе - будет понятнее, как потом запускать в железе. А то, в железе запускать, помню, тоже было интересно :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 24 августа, 2016 Опубликовано 24 августа, 2016 · Жалоба Спасибо! На днях собираюсь опять вернуться к этой теме ибо действительно отладка в железе - это нечто! Кстати,если фиттер при сборке не ругается - это есть необходимое и достаточное условие для нормального функционирования IP? Дело в том что я немного отошёл от варианта распиновки предложенного скриптом, но фиттер проглотил и не ругается. А вот если я выложу здесь схему подключения SDRAM к FPGA найдутся ли желающие окинуть её зорким оком? Ребята, очень на вас надеюсь, ситуация совсем поганая... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 25 августа, 2016 Опубликовано 25 августа, 2016 · Жалоба По мне, так лучше выложить qsf файл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться