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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> моделирование DDR2 SDRAM контроллера с UniPHY
videoscan
сообщение May 25 2016, 08:20
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 16-09-14
Из: Москва
Пользователь №: 82 826



Цитата(_Anatoliy @ May 5 2016, 06:33) *
Та у меня сейчас тоже рутина навалилась,отложил пока разработки. Последнее что придумалось - если контроллер DDR создавать не из IP Catalog, а из QSYS то мы получим папку с исходниками контроллера. Вот и мелькнула мысль тупо скомпилить эти исходники в симуляторе. Попробовал, но споткнулся на библиотеках. Я пишу на VHDL поэтому подключение верилоговских библиотек меня просто ставит в ступор. Пока отложил. Если бы кто-то из интересующихся этой темой любителей верилога проверил этот путь было бы замечательно.


Столкнулся с той же проблемой. Есть желание отсимулировать DDR3, но не получается.
Однако мною обнаружено следующее. Я работаю в 14.1 Квартусе. Скачал 15.1. Поставил и наблюдаю интерестную вещь.
При генерации HDML файлов в QSYS от 15.1 квартуса выдается некая наводка, как править скрипты для симуляции IP:



Для сравнения 14-1 Квартус писал так:



Пошел изучать наводку.
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 25 2016, 08:42
Сообщение #17


я только учусь...
******

Группа: Модераторы
Сообщений: 3 367
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



DDR and DDR2 SDRAM ECC от altera
Reference Design

Во вложении проект на VHDL с тестбенчем
Прикрепленные файлы
Прикрепленный файл  an415.zip ( 238.46 килобайт ) Кол-во скачиваний: 21
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение May 25 2016, 10:40
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(videoscan @ May 25 2016, 11:20) *
Столкнулся с той же проблемой. Есть желание отсимулировать DDR3, но не получается.
Однако мною обнаружено следующее. Я работаю в 14.1 Квартусе. Скачал 15.1. Поставил и наблюдаю интерестную вещь.
При генерации HDML файлов в QSYS от 15.1 квартуса выдается некая наводка, как править скрипты для симуляции IP:



Для сравнения 14-1 Квартус писал так:



Пошел изучать наводку.

2 videoscan: напишите в личку
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 25 2016, 11:14
Сообщение #19


я только учусь...
******

Группа: Модераторы
Сообщений: 3 367
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Sergey_Bekrenyov @ May 25 2016, 13:40) *
2 videoscan: напишите в личку

здесь поделиться не желаете? wink.gif

Возможно другим Ваш ответ тоже будет полезен


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение May 25 2016, 14:35
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(Maverick @ May 25 2016, 14:14) *
здесь поделиться не желаете? wink.gif

Возможно другим Ваш ответ тоже будет полезен


Если поднимет автор - пусть он отчет и пишет sm.gif А я ему как коллеге по борьбе с изображениями помогу, но писать не буду
Go to the top of the page
 
+Quote Post
EugeneS
сообщение May 26 2016, 12:32
Сообщение #21


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

Группа: Свой
Сообщений: 172
Регистрация: 28-08-04
Пользователь №: 557



QUOTE (Maverick @ May 25 2016, 11:42) *
DDR and DDR2 SDRAM ECC от altera
Reference Design

Во вложении проект на VHDL с тестбенчем


Это не UniPHY, а старый ALTMEMPHY контроллер.

Небольшой оффтопик: для Arria 10 Altera форсит External Memory Interface (EMIF) IP,
так что UniPHY тоже старый. maniac.gif
Go to the top of the page
 
+Quote Post
videoscan
сообщение May 26 2016, 12:49
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 16-09-14
Из: Москва
Пользователь №: 82 826



Цитата(Sergey_Bekrenyov @ May 25 2016, 14:35) *
Если поднимет автор - пусть он отчет и пишет sm.gif А я ему как коллеге по борьбе с изображениями помогу, но писать не буду


Если получу удобоваримый и полезный обществу результат - напишу.

Цитата(EugeneS @ May 26 2016, 12:32) *
Это не UniPHY, а старый ALTMEMPHY контроллер.

Небольшой оффтопик: для Arria 10 Altera форсит External Memory Interface (EMIF) IP,
так что UniPHY тоже старый. maniac.gif

Это да. Все так быстро меняется от версии к версии, что уследить тяжело.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 27 2016, 06:25
Сообщение #23


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 403
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



У меня скрипт почти весь отрабатывается без ошибок, только в конце спотыкается на следующей строке:
Код
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;

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 27 2016, 07:24
Сообщение #24


я только учусь...
******

Группа: Модераторы
Сообщений: 3 367
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(_Anatoliy @ May 27 2016, 09:25) *
У меня скрипт почти весь отрабатывается без ошибок, только в конце спотыкается на следующей строке:
Код
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


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 27 2016, 07:43
Сообщение #25


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 403
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(Maverick @ May 27 2016, 10:24) *
попробуйте отключить оптимизацию "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, с ним вроде пошло дальше , но ошибок стало больше и они другие. Теперь пошли ошибки симуляции.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
videoscan
сообщение May 27 2016, 14:09
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 16-09-14
Из: Москва
Пользователь №: 82 826



Докладываю текущую ситуацию.

Мои действия:
У меня 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 кривой?
Go to the top of the page
 
+Quote Post
EugeneS
сообщение May 29 2016, 13:49
Сообщение #27


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

Группа: Свой
Сообщений: 172
Регистрация: 28-08-04
Пользователь №: 557



QUOTE (videoscan @ May 27 2016, 17:09) *
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

Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Aug 24 2016, 14:52
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 924
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Комментирую по просьбе из соседней темы.

Я этим занимался 3 года назад и на 12.3. Поэтому мало чего уже помню в деталях, да и что-то могло и поменяться.
Начинал, как сейчас помню, с запуска тестбенчей, сгенеренных вместе с ядром. Советую ТС тоже этим заняться, а потом уже что-то свое делать.

Цитата
Все должно работать, если забыть про GUI ModelSim и пользоваться процедурами из
..\mentor\msim_setup.tcl. Пример - ..\mentor\run.do

Тоже что-то такое помню, что запускались эти тестбенчи как-то не по-русски. Деталей не помню.

Что касается картинки, на которой все данные хххХХХХхххх.
Вообще, это нормально. Там надо какое-то время (симуляции) чтобы оно подумало, прежде чем начнет подавать признаки жизни.
Скорее всего, где-то там должна быть галочка про сокращение времени инициализации в симуляторе (не уверен).
В тестбенч советую добавить всяких сигналов типа init_done, reset_done или какие там еще есть.

В принципе, все оно ок работает (ну, может, в новых версиях не работает, в старых работало).
В любом случае, надо сначала запустить в симуляторе - будет понятнее, как потом запускать в железе. А то, в железе запускать, помню, тоже было интересно sm.gif.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Aug 24 2016, 16:29
Сообщение #29


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 403
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(Koluchiy @ Aug 24 2016, 17:52) *

Спасибо! На днях собираюсь опять вернуться к этой теме ибо действительно отладка в железе - это нечто!
Кстати,если фиттер при сборке не ругается - это есть необходимое и достаточное условие для нормального функционирования IP? Дело в том что я немного отошёл от варианта распиновки предложенного скриптом, но фиттер проглотил и не ругается. А вот если я выложу здесь схему подключения SDRAM к FPGA найдутся ли желающие окинуть её зорким оком? Ребята, очень на вас надеюсь, ситуация совсем поганая...
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Aug 25 2016, 06:55
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



По мне, так лучше выложить qsf файл.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th September 2017 - 16:34
Рейтинг@Mail.ru


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