Kapsik 0 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба Добрый день. Возник следующий вопрос, как просимулировать дизайн для 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 в старом проекта. Какие действия необходимо предпринять, какие библиотеки и модули необходимо для этого скомпилировать? Рис.1 Среда: Quartus 15.0 ModelSim Altera Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба Добрый день. Возник следующий вопрос, как просимулировать дизайн для 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 в старом проекта. Какие действия необходимо предпринять, какие библиотеки и модули необходимо для этого скомпилировать? Рис.1 Среда: Quartus 15.0 ModelSim Altera а в конце не было галочек типа генерировать тестбенч? обычно есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба а в конце не было галочек типа генерировать тестбенч? обычно есть Сейчас гляну. А если этот ТБ сгенерируется, как мне его прикрутить к моему? Тут идея максимально безболезненно перейти от on-chip к DDR3, в том числе и в части симуляции/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
goodsoul 0 12 августа, 2015 Опубликовано 12 августа, 2015 · Жалоба Сейчас гляну. А если этот ТБ сгенерируется, как мне его прикрутить к моему? Тут идея максимально безболезненно перейти от on-chip к DDR3, в том числе и в части симуляции/ Скорее всего Вам еще понадобится модель самой DDR3 памяти. Ее можно скачать с сайта производителя. Micron, по крайней мере выкладывает Verilog-модели для своих чипов (ищите по конкретному партномеру). Подключаете этот модуль к DDR3 интерфейсу и гоняете свой тестбенч. Совет капитанский, конечно, но вдруг пригодится )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба Скорее всего Вам еще понадобится модель самой DDR3 памяти. Ее можно скачать с сайта производителя. Micron, по крайней мере выкладывает Verilog-модели для своих чипов (ищите по конкретному партномеру). Подключаете этот модуль к DDR3 интерфейсу и гоняете свой тестбенч. Совет капитанский, конечно, но вдруг пригодится )) Модель скачал. Но тут такое дело, подключить я ее подключу, но она работать не будет, у меня сигналы DDR3 не дергаются вообще. Какие-то странные клоки, по 3 импульса, на адекватную работу совсем не похоже. Прикрепляю скрин, того что сейчас показывает ModelSim. Может кто нибудь пошагово объяснит как оживить симуляцию. Или даже какой нибудь тестовый проектик покажет :laughing: . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeneS 0 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба Добрый день. Возник следующий вопрос, как просимулировать дизайн для 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 в старом проекта. Какие действия необходимо предпринять, какие библиотеки и модули необходимо для этого скомпилировать? Рис.1 Среда: Quartus 15.0 ModelSim Altera А почитать emi.pdf, главу "Simulation Walkthrough with UniPHY IP"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба А почитать emi.pdf, главу "Simulation Walkthrough with UniPHY IP"? Это первое что предлагает google на запрос "Altera ddr3 core simulate", скачал еще вчера - сижу читаю. За наводку на главу спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба Добрый день. Заводил темку с подобной проблемой. Так и не смог получить никакие данные, от hard controller. Пытался моделировать в двух разных программах, результат одинаковый и неутешительный. Такое ощущение, я я не смог правильно подключить hard controoler в свой тестовый VHDL проект. Чтение разных документов мне не помогло :(. Потом навалились договора и уже не до новых разработок стало. Сейчас и в ближайшее время некогда этим заниматься. Но есть необходимость это осилить. Не могли бы вы как запустите моделирование выложить сюда свой проект или скинуть мне на почту :rolleyes: . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба А почитать emi.pdf, главу "Simulation Walkthrough with UniPHY IP"? "Дай человеку удочку и он сам поймает рыбу" Кой что поймалось, но не совсем то... Удалось запустить симуляцию примера от Альтеры, а вот прикрутить это дело к моему дизайну пока не выходит. Из альтеровского примера, передрал все библиотеки и файлы которые необходимо скомпилить, прикрутил модель памяти к своему тест бенчу и тишина. Удивляет разное поведение, сигналов после сброса ресета. Рис.1 скрин с альтры, рис. 2 с моего проекта Рис.1 Рис.2 Добрый день. Заводил темку с подобной проблемой. Так и не смог получить никакие данные, от hard controller. Пытался моделировать в двух разных программах, результат одинаковый и неутешительный. Такое ощущение, я я не смог правильно подключить hard controoler в свой тестовый VHDL проект. Чтение разных документов мне не помогло :(. Потом навалились договора и уже не до новых разработок стало. Сейчас и в ближайшее время некогда этим заниматься. Но есть необходимость это осилить. Не могли бы вы как запустите моделирование выложить сюда свой проект или скинуть мне на почту :rolleyes: . Хорошо, если будет результат, отпишусь :1111493779: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба Несколько раз моделировал разные DDR2/DDR3 в QuestaSim. Дело это хлопотное и главное - бесполезное. Оценить пропускную способность можно и тут . При правильном схемотехническом подключении контроллер гарантированно заработает. Контроллер имеет стандартный авалон или амба акси нтерфейс и можно легко для моделирования или верификации просто подключить свой блок с временными задержками из мануала на память! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 13 августа, 2015 Опубликовано 13 августа, 2015 · Жалоба Несколько раз моделировал разные DDR2/DDR3 в QuestaSim. Дело это хлопотное и главное - бесполезное. Оценить пропускную способность можно и тут . При правильном схемотехническом подключении контроллер гарантированно заработает. Контроллер имеет стандартный авалон или амба акси нтерфейс и можно легко для моделирования или верификации просто подключить свой блок с временными задержками из мануала на память! Немного не понял, вы предлагаете для симуляции подключить обычную память, но через avalon, и так отлаживаться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 14 августа, 2015 Опубликовано 14 августа, 2015 · Жалоба Вчера вечером подумал, наверное я не совсем корректно задаю вопрос. Симулировать DDR3, не в смысле тайминги какого-то конкретного чипа, а скорее общее поведение применительно к моему дизайну. Задача стоит такая, есть отработанный дизайн, где есть расчет довольно хитрой формулы, много промежуточных данных которые я записывать и извлекаю в/из on-chip. У внутренней памяти тривиальное управление, addr, data,wr,rd я подключал параллельно сразу несколько штук для разных коэффициентов, вычитывал их одновременно считал формулу и записывал обратно, все работало весьма быстро. Теперь когда планируется использовать DDR3 появляется avalon и последовательное считывание всех коэффициентов перед выполнением арифметических операция. Вот мне и необходимо проверить, правильно ли я переписал алгоритм, с учетом обращения к памяти по avalon и всех замедлений связанных с последовательной обработкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 14 августа, 2015 Опубликовано 14 августа, 2015 · Жалоба По крайней мере я вас правильно понял. Но не забывайте, что DRAM расчитана на пакетный режим передачи и есть моменты в которые она не доступна для чтения/записи (refresh). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 14 августа, 2015 Опубликовано 14 августа, 2015 · Жалоба я дал ссылку на производительность памяти. Можно подключить свой авалон слейв и на нем прописать соответствующие задержки! И будет счастье. Но скажу сразу, что рандомный доступ к DDR3 - это примерно 10-15% от нормальной пропускной способности! Иначе ставить СРАМ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kapsik 0 14 августа, 2015 Опубликовано 14 августа, 2015 · Жалоба я дал ссылку на производительность памяти. Можно подключить свой авалон слейв и на нем прописать соответствующие задержки! И будет счастье. Но скажу сразу, что рандомный доступ к DDR3 - это примерно 10-15% от нормальной пропускной способности! Иначе ставить СРАМ. Ссылку я глянул. Вопрос то пока более общий. Добиться хоть какого то отклика при симуляции. Например записать по адресу значение, потом считать его и все это увидеть на временных диаграммах. Я в #9 выложил скриншоты, с неживыми линиями в IP-core, вот где главная проблема. для моделирования или верификации просто подключить свой блок с временными задержками из мануала на память! По какую память вы говорите? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться