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

моделирование DDR2 SDRAM контроллера с UniPHY

Первый раз решил промоделировать этот контроллер(Квартус 15.1) и сразу не вышло. Видно что контроллер не подаёт признаков жизни,хотя клок и ресет для него формируются. Подскажите ,плз, на что обратить внимание. Модель микросхемы памяти пока не подключал.

post-18832-1461662722_thumb.png

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


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

Первый раз решил промоделировать этот контроллер(Квартус 15.1) и сразу не вышло. Видно что контроллер не подаёт признаков жизни,хотя клок и ресет для него формируются. Подскажите ,плз, на что обратить внимание. Модель микросхемы памяти пока не подключал.

reset-ов несколько, soft_reset точно был

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


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

Несколько раз моделировал разные DDR2/DDR3 в QuestaSim. Дело это хлопотное и главное - бесполезное.

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

 

reset-ов несколько, soft_reset точно был

Да,точно был. Контроллер же должен записать команду в Mode Register памяти после ресета?

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


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

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

 

 

Да,точно был. Контроллер же должен записать команду в Mode Register памяти после ресета?

Как минимум подать частоту на CK/CK#

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


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

Как минимум подать частоту на CK/CK#

Это да. Кстати,проект не склеивается для симуляции. Есть вот такое сообщение:

# ** Warning: (vsim-3473) Component instance "myddr_inst : myDDR_0002" is not bound.

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


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

Это да. Кстати,проект не склеивается для симуляции. Есть вот такое сообщение:

# ** Warning: (vsim-3473) Component instance "myddr_inst : myDDR_0002" is not bound.

Надо скомпилять либы под альтеровские примитивы и добавить эти либы в проект.

 

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


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

Надо скомпилять либы под альтеровские примитивы и добавить эти либы в проект.

Ага.

1). прошу меня извинить,всё что приводил раньше - это касалось проекта с example_design. Я его таки запустил,но как оказалось толку от него мало,писал выше.

2). сделал проект только с этой коркой, запускаю в квартусе run simulation tool, в папке симуляции появляется скрипт SDRAM_DDR2_run_msim_rtl_vhdl.do. Запускаю компиляцию в Модельсиме, проходит нормально. Запускаю на выполнение скрипт, проходит нормально(я так думаю он и занимается подключением нужных библиотек?). После выполнения скрипта при попытке симуляции наблюдается потеря файла тест-бенча:

# Analyzing design...
# ** Error: (vopt-13130) Failed to find design unit work.Top_tb.

Если же запустить симуляцию сразу после компиляции то тогда выскакивает ошибка

# ** Warning: (vsim-3473) Component instance "myddr_inst : myDDR_0002" is not bound.

К сожалению очень редко работаю с модельсимом и не так хорошо его знаю как хотелось бы.

Что посоветуете?

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


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

Ага.

1). прошу меня извинить,всё что приводил раньше - это касалось проекта с example_design. Я его таки запустил,но как оказалось толку от него мало,писал выше.

2). сделал проект только с этой коркой, запускаю в квартусе run simulation tool, в папке симуляции появляется скрипт SDRAM_DDR2_run_msim_rtl_vhdl.do. Запускаю компиляцию в Модельсиме, проходит нормально. Запускаю на выполнение скрипт, проходит нормально(я так думаю он и занимается подключением нужных библиотек?). После выполнения скрипта при попытке симуляции наблюдается потеря файла тест-бенча:

# Analyzing design...
# ** Error: (vopt-13130) Failed to find design unit work.Top_tb.

Если же запустить симуляцию сразу после компиляции то тогда выскакивает ошибка

# ** Warning: (vsim-3473) Component instance "myddr_inst : myDDR_0002" is not bound.

К сожалению очень редко работаю с модельсимом и не так хорошо его знаю как хотелось бы.

Что посоветуете?

мне когда-то помогло

особенно

Design Simulation

To simulate the example design a script needs to be run to set up Modelsim with the appropriate libraries and files

Open the generate_sim_example_design.qpf Quartus project which is located in the folder <>/ddr3_x16_example_design/simulation

From the Tools Menu -> Tcl Scripts.... select the generate_sim_verilog_example_design.tcl and click Run

Open Modelsim and change directory to <>/ddr3_x16_example_design/simulation/verilog/mentor

To start simulation enter "do run.do"

- The simulation will stop once the test complete signal goes high in the test bench

- CLICK ”NO” WHEN ASKED IF YOU WANT TO FINISH, otherwise simulation will be reset

- Observe the results in the ModelSim Wave window

 

PS думаю у Вас аналогично...

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


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

Так Вы example_design симулировали или любой свой проект с этим контроллером?

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


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

Так как ответа нет подозреваю что всё таки example_design... Выше я писал что запустил симуляцию этого проекта но это мне не интересно. Вообще не понятно зачем его делали,полюбоваться сигналами на ножках SDRAM? Мне нужно на SDRAM соорудить нечто похожее на FIFO очень большого размера. Вот обвязку этого FIFO очень хотелось бы отлаживать в симуляторе,поэтому меня интересует возможность наблюдать сигналы корки со стороны Avalon. Т.е. нужно симулировать мой проект в состав которого входит эта корка. Или все предпочитают работать с сигнал-тапом? Имхо не сигнал-тапово это дело. Что же делать,коллеги?

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


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

я запускал 3 года назад, но было это муторно и долго.

скриптами не пользовался. просто добавил в mpf файл проекта пути до скомпилированных библиотек, а в ярлыке запуска симуляции добавил их.

 

uniphy корка вместе с прицепленной памятью добавляет ко времени симуляции достаточно много, поэтому я вместо неё прицепил самописную память нужного объема с интерфейсом avalon. Из специфических "фич" DDR самописный модуль эмулировал задержку на чтение в N тактов, зажимание Ready после burst-ов, refresh.

после чего симуляция стала на полтора порядка быстрее.

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


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

я запускал 3 года назад, но было это муторно и долго.

скриптами не пользовался. просто добавил в mpf файл проекта пути до скомпилированных библиотек, а в ярлыке запуска симуляции добавил их.

Спасибо,но похоже это не для меня,не очень хорошо знаю модельсим. Раз такая стрёмная ситуация с этой коркой то для себя решил так - сделаю обвеску FIFO, отсимулирую авалоновские сигналы, а с коркой буду стыковаться уже в железе. Геморрой конечно,но другого выхода не вижу. Если вдруг у кого из коллег появятся какие мысли буду рад выслушать.

 

p.s. лет 15 назад делал свой контроллер для SDRAM SDR, так там нужно было регенерацию делать. А как в этой корке, со стороны авалона нужны какие нибудь движения по поводу регенерации или корка сама всё сделает?

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


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

Коллеги,проясните ещё один вопрос. В корке есть такой интерфейс afi. Что с ним делать? Куда подключать или оставить висящим? Вроде есть авалон, есть интерфейс внешней памяти - этого же достаточно.

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


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

Очередная подобная темка. Вот последняя http://electronix.ru/forum/index.php?showt...=129760&hl=, в ней приведена ссылка и на мою. Если всё таки осилите, то не сочтите за труд выложить (или в личку) как смогли победить эту проблему.

 

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


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

Очередная подобная темка. Вот последняя http://electronix.ru/forum/index.php?showt...=129760&hl=, в ней приведена ссылка и на мою. Если всё таки осилите, то не сочтите за труд выложить (или в личку) как смогли победить эту проблему.

Та у меня сейчас тоже рутина навалилась,отложил пока разработки. Последнее что придумалось - если контроллер DDR создавать не из IP Catalog, а из QSYS то мы получим папку с исходниками контроллера. Вот и мелькнула мысль тупо скомпилить эти исходники в симуляторе. Попробовал, но споткнулся на библиотеках. Я пишу на VHDL поэтому подключение верилоговских библиотек меня просто ставит в ступор. Пока отложил. Если бы кто-то из интересующихся этой темой любителей верилога проверил этот путь было бы замечательно.

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


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

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

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

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

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

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

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

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

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

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