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

Добрый день. Возник следующий вопрос, как просимулировать дизайн для FPGA от Altera с IP ядром DDR3.

Ситуация такая, есть рабочий дизайн с on-chip памятью, но в связи с грядущим расширением, решили часть данных хранить в DDR3. Возник вопрос, как прикрутить IP корку, а главное, как это все дело симулировать.

В данный момент сделал следующее, создал чистый проект, подключил, пока софтовое, IP-ядро DDR3 (настройки на рис.1). QSYS не подключал, написал простенький автомат, который инкрементирует адрес и данные, при постоянном стробе wr(avl_write_req), по достижению определенного значения адреса, строб wr в 0, rd(avl_read_req) в 1, смотрю все это дело в SignalTap, данные бегают, в целом все в порядке. Дальше попытался простимулировать и вот тут затык. Вижу папку ..._sim там даже есть скрипт msim_setup.tcl, но правильно распорядится им не получается. В дальнейшем, хотелось бы использовать свой, уже давно написанный, testbench в старом проекта. Какие действия необходимо предпринять, какие библиотеки и модули необходимо для этого скомпилировать?

post-78086-1439380990_thumb.png

Рис.1

Среда: Quartus 15.0

ModelSim Altera

 

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


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

Добрый день. Возник следующий вопрос, как просимулировать дизайн для FPGA от Altera с IP ядром DDR3.

Ситуация такая, есть рабочий дизайн с on-chip памятью, но в связи с грядущим расширением, решили часть данных хранить в DDR3. Возник вопрос, как прикрутить IP корку, а главное, как это все дело симулировать.

В данный момент сделал следующее, создал чистый проект, подключил, пока софтовое, IP-ядро DDR3 (настройки на рис.1). QSYS не подключал, написал простенький автомат, который инкрементирует адрес и данные, при постоянном стробе wr(avl_write_req), по достижению определенного значения адреса, строб wr в 0, rd(avl_read_req) в 1, смотрю все это дело в SignalTap, данные бегают, в целом все в порядке. Дальше попытался простимулировать и вот тут затык. Вижу папку ..._sim там даже есть скрипт msim_setup.tcl, но правильно распорядится им не получается. В дальнейшем, хотелось бы использовать свой, уже давно написанный, testbench в старом проекта. Какие действия необходимо предпринять, какие библиотеки и модули необходимо для этого скомпилировать?

post-78086-1439380990_thumb.png

Рис.1

Среда: Quartus 15.0

ModelSim Altera

а в конце не было галочек типа генерировать тестбенч?

обычно есть

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


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

а в конце не было галочек типа генерировать тестбенч?

обычно есть

Сейчас гляну. А если этот ТБ сгенерируется, как мне его прикрутить к моему? Тут идея максимально безболезненно перейти от on-chip к DDR3, в том числе и в части симуляции/

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


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

Сейчас гляну. А если этот ТБ сгенерируется, как мне его прикрутить к моему? Тут идея максимально безболезненно перейти от on-chip к DDR3, в том числе и в части симуляции/

 

Скорее всего Вам еще понадобится модель самой DDR3 памяти. Ее можно скачать с сайта производителя. Micron, по крайней мере выкладывает Verilog-модели для своих чипов (ищите по конкретному партномеру). Подключаете этот модуль к DDR3 интерфейсу и гоняете свой тестбенч.

Совет капитанский, конечно, но вдруг пригодится ))

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


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

Скорее всего Вам еще понадобится модель самой DDR3 памяти. Ее можно скачать с сайта производителя. Micron, по крайней мере выкладывает Verilog-модели для своих чипов (ищите по конкретному партномеру). Подключаете этот модуль к DDR3 интерфейсу и гоняете свой тестбенч.

Совет капитанский, конечно, но вдруг пригодится ))

Модель скачал. Но тут такое дело, подключить я ее подключу, но она работать не будет, у меня сигналы DDR3 не дергаются вообще. Какие-то странные клоки, по 3 импульса, на адекватную работу совсем не похоже. Прикрепляю скрин, того что сейчас показывает ModelSim.

 

post-78086-1439443188_thumb.png

 

Может кто нибудь пошагово объяснит как оживить симуляцию. Или даже какой нибудь тестовый проектик покажет :laughing: .

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


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

Добрый день. Возник следующий вопрос, как просимулировать дизайн для FPGA от Altera с IP ядром DDR3.

Ситуация такая, есть рабочий дизайн с on-chip памятью, но в связи с грядущим расширением, решили часть данных хранить в DDR3. Возник вопрос, как прикрутить IP корку, а главное, как это все дело симулировать.

В данный момент сделал следующее, создал чистый проект, подключил, пока софтовое, IP-ядро DDR3 (настройки на рис.1). QSYS не подключал, написал простенький автомат, который инкрементирует адрес и данные, при постоянном стробе wr(avl_write_req), по достижению определенного значения адреса, строб wr в 0, rd(avl_read_req) в 1, смотрю все это дело в SignalTap, данные бегают, в целом все в порядке. Дальше попытался простимулировать и вот тут затык. Вижу папку ..._sim там даже есть скрипт msim_setup.tcl, но правильно распорядится им не получается. В дальнейшем, хотелось бы использовать свой, уже давно написанный, testbench в старом проекта. Какие действия необходимо предпринять, какие библиотеки и модули необходимо для этого скомпилировать?

post-78086-1439380990_thumb.png

Рис.1

Среда: Quartus 15.0

ModelSim Altera

 

А почитать emi.pdf, главу "Simulation Walkthrough with UniPHY IP"?

 

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


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

А почитать emi.pdf, главу "Simulation Walkthrough with UniPHY IP"?

Это первое что предлагает google на запрос "Altera ddr3 core simulate", скачал еще вчера - сижу читаю. За наводку на главу спасибо.

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


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

Добрый день.

Заводил темку с подобной проблемой. Так и не смог получить никакие данные, от hard controller. Пытался моделировать в двух разных программах, результат одинаковый и неутешительный. Такое ощущение, я я не смог правильно подключить hard controoler в свой тестовый VHDL проект. Чтение разных документов мне не помогло :(. Потом навалились договора и уже не до новых разработок стало. Сейчас и в ближайшее время некогда этим заниматься. Но есть необходимость это осилить. Не могли бы вы как запустите моделирование выложить сюда свой проект или скинуть мне на почту :rolleyes: .

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


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

А почитать emi.pdf, главу "Simulation Walkthrough with UniPHY IP"?

"Дай человеку удочку и он сам поймает рыбу"

Кой что поймалось, но не совсем то... Удалось запустить симуляцию примера от Альтеры, а вот прикрутить это дело к моему дизайну пока не выходит.

Из альтеровского примера, передрал все библиотеки и файлы которые необходимо скомпилить, прикрутил модель памяти к своему тест бенчу и тишина. Удивляет разное поведение, сигналов после сброса ресета. Рис.1 скрин с альтры, рис. 2 с моего проекта

 

post-78086-1439461017_thumb.png

Рис.1

post-78086-1439461013_thumb.png

Рис.2

 

Добрый день.

Заводил темку с подобной проблемой. Так и не смог получить никакие данные, от hard controller. Пытался моделировать в двух разных программах, результат одинаковый и неутешительный. Такое ощущение, я я не смог правильно подключить hard controoler в свой тестовый VHDL проект. Чтение разных документов мне не помогло :(. Потом навалились договора и уже не до новых разработок стало. Сейчас и в ближайшее время некогда этим заниматься. Но есть необходимость это осилить. Не могли бы вы как запустите моделирование выложить сюда свой проект или скинуть мне на почту :rolleyes: .

Хорошо, если будет результат, отпишусь :1111493779:

 

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


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

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

Оценить пропускную способность можно и тут .

При правильном схемотехническом подключении контроллер гарантированно заработает. Контроллер имеет стандартный авалон или амба акси нтерфейс и можно легко для моделирования или верификации просто подключить свой блок с временными задержками из мануала на память!

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


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

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

Оценить пропускную способность можно и тут .

При правильном схемотехническом подключении контроллер гарантированно заработает. Контроллер имеет стандартный авалон или амба акси нтерфейс и можно легко для моделирования или верификации просто подключить свой блок с временными задержками из мануала на память!

Немного не понял, вы предлагаете для симуляции подключить обычную память, но через avalon, и так отлаживаться?

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


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

Вчера вечером подумал, наверное я не совсем корректно задаю вопрос. Симулировать DDR3, не в смысле тайминги какого-то конкретного чипа, а скорее общее поведение применительно к моему дизайну. Задача стоит такая, есть отработанный дизайн, где есть расчет довольно хитрой формулы, много промежуточных данных которые я записывать и извлекаю в/из on-chip. У внутренней памяти тривиальное управление, addr, data,wr,rd я подключал параллельно сразу несколько штук для разных коэффициентов, вычитывал их одновременно считал формулу и записывал обратно, все работало весьма быстро. Теперь когда планируется использовать DDR3 появляется avalon и последовательное считывание всех коэффициентов перед выполнением арифметических операция. Вот мне и необходимо проверить, правильно ли я переписал алгоритм, с учетом обращения к памяти по avalon и всех замедлений связанных с последовательной обработкой.

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


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

По крайней мере я вас правильно понял. Но не забывайте, что DRAM расчитана на пакетный режим передачи и есть моменты в которые она не доступна для чтения/записи (refresh).

 

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


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

я дал ссылку на производительность памяти. Можно подключить свой авалон слейв и на нем прописать соответствующие задержки! И будет счастье. Но скажу сразу, что рандомный доступ к DDR3 - это примерно 10-15% от нормальной пропускной способности! Иначе ставить СРАМ.

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


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

я дал ссылку на производительность памяти. Можно подключить свой авалон слейв и на нем прописать соответствующие задержки! И будет счастье. Но скажу сразу, что рандомный доступ к DDR3 - это примерно 10-15% от нормальной пропускной способности! Иначе ставить СРАМ.

Ссылку я глянул. Вопрос то пока более общий. Добиться хоть какого то отклика при симуляции. Например записать по адресу значение, потом считать его и все это увидеть на временных диаграммах. Я в #9 выложил скриншоты, с неживыми линиями в IP-core, вот где главная проблема.

для моделирования или верификации просто подключить свой блок с временными задержками из мануала на память!

По какую память вы говорите?

 

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


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

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

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

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

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

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

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

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

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

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